View Raw SPL
/*****************************************************************************
*                                                                            *
*   SETSYMBOLINTERVAL.SPL  Copyright (C) 2011 DSP Development Corporation    *
*                               All Rights Reserved                          *
*                                                                            *
*   Author:      Randy Race                                                  *
*                                                                            *
*   Synopsis:    Sets the plot interval of a symbol                          *
*                                                                            *
*   Revisions:   31 Jan 2011  RRR  Creation                                  *
*                                                                            *
*****************************************************************************/

#include 

#if @HELP_SETSYMBOLINTERVAL

    SETSYMBOLINTERVAL

    Purpose: Sets the plot interval of a series.

    Syntax:  SETSYMBOLINTERVAL(series, interval, item)

                series - Optional, a series. Defaults to current window

              interval - An integer, the plot interval.

                  item - Optional, an integer. The series number if the 
                         target is a Window with more than one series.
                         Defaults to 1.

    Returns: Nothing, sets the plotting interval for a series with symbols.

    Example:
             W1: 1..20;setsym(14);setsymbolinterval(5);setsymboloffset(3)

             W1 contains a 20 point series where a circle is used as a 
             symbol plotted every 5 points starting a the 3rd point

    Remarks:
             The SYMBOLOFFSET only takes effect if SYMBOLINTERVAL > 1.

    See Also:
             Getsymbol
             Getsymbolinterval
             Getsymboloffset
             Getsymbolsize
             Setsymbol
             Setsymboloffset
             Setsymbolsize
#endif


/* set the symbol plot interval */
setsymbolinterval(s, intv, item, member)
{
        local sym, offset;

        (s, intv, item, member) = setsymbolinterval_parse_args(s, intv, item, member);

        if (isstring(s)) s = refwindow(w0);

        sym    = getsymbol(s, 0, item, member);
        offset = getsymboloffset(s, item, member);

        setsymbol(s, sym, item, intv, offset, member);
}


setsymbolinterval_parse_args(s, intv, item, member)
{
        if (argc < 4)
        {
                if (argc < 3)
                {
                        if (argc < 2)
                        {
                                if (argc < 1) s = "";
                                
                                intv = -1;
                        }
                        
                        item = -1;
                }
                
                member = -1;
        }

        if (isscalar(s))
        {
                member = item;
                item   = intv;
                intv   = s;
                s      = "";
        }

        if (item < 0) item   = 1;
        if (intv < 0) intv   = 0;
        
        return(s, intv, item, member);
}