v02i003: A program for view 16 bit digital signals, Part02/02

Mike Wexler mikew at wyse.wyse.com
Sat Oct 15 04:42:39 AEST 1988


Submitted-by: gatech.edu!gt-eedsp!jensen  
Posting-number: Volume 2, Issue 3
Archive-name: xscope/part02

#! /bin/sh
# This is a shell archive.  Remove anything before this line, then unpack
# it by saving it into a file and typing "sh file".  To overwrite existing
# files, type "sh file -c".  You can also feed this as standard input via
# unshar, or by typing "sh <file", e.g..  If this archive is complete, you
# will see the following message at the end:
#		"End of archive 2 (of 2)."
# Contents:  DeleteSignal.c GCInit.c InitData.c MapSample.c Mark.c
#   NewEnd.c NewStart.c Quit.c QuitPane.c Scope.c Scrolled.c
#   SetThumbShown.c SetThumbTop.c Syntax.c Thumbed.c Thumbed2.c
#   UnMark.c WriteMSignal.c WriteSignal.c Zoom.c
# Wrapped by mikew at wyse on Fri Oct 14 11:39:50 1988
PATH=/bin:/usr/bin:/usr/ucb ; export PATH
if test -f 'DeleteSignal.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'DeleteSignal.c'\"
else
echo shar: Extracting \"'DeleteSignal.c'\" \(920 characters\)
sed "s/^X//" >'DeleteSignal.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid DeleteSignal(widget, pane, callData)
X    Widget widget;
X    sigbox *pane;
X    caddr_t callData;
X{
X    int fd,mask,nbytes,ldata,rdata,nsamp;
X    float top,shown;
X    char snsamp[30];
X    Arg arg[4];
X
X    if( pane->s == NULL ) return;
X    ldata = pane->lmark * sizeof(short);
X    rdata = pane->rmark * sizeof(short);
X    nbytes = pane->s->sig_len - rdata;
X    bcopy(&pane->s->sig_data[rdata],
X	&pane->s->sig_data[ldata], nbytes);
X    pane->s->sig_nsamp -= pane->rmark - pane->lmark + 1;
X    pane->lmark = pane->first;
X    pane->last -= pane->rmark - pane->lmark + 1;
X    pane->rmark = pane->last;
X    sprintf(snsamp,"%d Samples", pane->s->sig_nsamp);
X    XtSetArg(arg[0], XtNlabel, snsamp );
X    XtSetValues( pane->text_nsamp, arg, ONE );
X    sprintf(snsamp,"%d", pane->s->sig_nsamp);
X    XtSetValues( pane->endval, arg, ONE );
X    XtCallCallbacks(pane->draw,XtNcallback,NULL);
X}
END_OF_FILE
if test 920 -ne `wc -c <'DeleteSignal.c'`; then
    echo shar: \"'DeleteSignal.c'\" unpacked with wrong size!
fi
# end of 'DeleteSignal.c'
fi
if test -f 'GCInit.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'GCInit.c'\"
else
echo shar: Extracting \"'GCInit.c'\" \(751 characters\)
sed "s/^X//" >'GCInit.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
Xstatic GC makegc(op, canvas, display, gc)
X    long op;
X    Widget canvas;
X    Display *display;
X    GC gc;
X{
X	register GC	ngc;
X	XGCValues	gcv;
X
X	ngc = XCreateGC(display, XtWindow(canvas), 0, &gcv);
X	XCopyGC(display, gc, ~0, ngc);
X	XSetFunction(display, ngc, op);
X	return (ngc);
X}
X
Xgc_init(pane)
X    sigbox *pane;
X{
X    Display *display;
X    GC gc;
X
X    display = XtDisplay(pane->toplevel);
X    gc = DefaultGC(display, DefaultScreen(display));
X    pane->gccache[PAINT] = makegc(PAINT, pane->canvas, display, gc);
X    pane->gccache[ERASE] = makegc(ERASE, pane->canvas, display, gc);
X    pane->gccache[INV_PAINT] = makegc(INV_PAINT, pane->canvas, display, gc);
X    pane->gccache[MERGE] = makegc(MERGE, pane->canvas, display, gc);
X}
END_OF_FILE
if test 751 -ne `wc -c <'GCInit.c'`; then
    echo shar: \"'GCInit.c'\" unpacked with wrong size!
fi
chmod +x 'GCInit.c'
# end of 'GCInit.c'
fi
if test -f 'InitData.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'InitData.c'\"
else
echo shar: Extracting \"'InitData.c'\" \(886 characters\)
sed "s/^X//" >'InitData.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
Xvoid init_data(pane)
X    sigbox *pane;
X{
X    static XtCallbackRec callback[2]; /* K&R: initialized to NULL */
X    static XtCallbackRec thumbcall[2]; /* K&R: initialized to NULL */
X    float shown,top;
X    Widget box,data;
X    int narg;
X    Arg arg[10];
X
X    narg = 0;
X    XtSetArg( arg[narg], XtNvertPane, TRUE ); narg++;
X    XtSetArg( arg[narg], XtNwidth, 150 ); narg++;
X    XtSetArg( arg[narg], XtNheight, 2*MENUHIGH); narg++;
X    data = XtCreateManagedWidget("data", menuPaneWidgetClass,
X			pane->box, arg, narg);
X
X    narg =  0;
X    XtSetArg( arg[narg], XtNlabel, "0 Samples"); narg++;
X    pane->text_nsamp = XtCreateManagedWidget( "label", labelWidgetClass,
X					data, arg, narg );
X
X    narg = 0;
X    XtSetArg( arg[narg], XtNlabel, "Sample -1 Value 0"); narg++;
X    pane->picksamp = XtCreateManagedWidget( "label", labelWidgetClass,
X					data, arg, narg );
X}
END_OF_FILE
if test 886 -ne `wc -c <'InitData.c'`; then
    echo shar: \"'InitData.c'\" unpacked with wrong size!
fi
# end of 'InitData.c'
fi
if test -f 'MapSample.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'MapSample.c'\"
else
echo shar: Extracting \"'MapSample.c'\" \(885 characters\)
sed "s/^X//" >'MapSample.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid MapSample(pane,x,y,snum,sval)
X    sigbox *pane;
X    int x,y,*snum,*sval;
X{
X    int height,width, nsamp, halfheight, maxsamp;
X    int start_samp, end_samp;
X    short *data;
X    Arg args[3];
X
X#define Sig pane->s
X#define Canvas pane->canvas
X
X    if(Sig == NULL) {
X	*snum = -1;
X	*sval = 0;
X	return;
X    }
X
X    XtSetArg(args[0], XtNwidth, &width);
X    XtSetArg(args[1], XtNheight, &height);
X    XtGetValues(Canvas, args, TWO);
X    start_samp = pane->first;
X    end_samp = pane->last;
X    nsamp = end_samp - start_samp + 1;
X
X    data = ((short *) Sig->sig_data);
X    end_samp = start_samp + nsamp - 1;
X    /* Truncate so point range looks like   |    *     |    *    | */
X    /* Rounding would yield   |*       |*        | */
X    *snum = ((float)start_samp) + (((float) x)*((float)nsamp))/((float)width) + .5;
X    *sval = data[*snum];
X    return;
X}
END_OF_FILE
if test 885 -ne `wc -c <'MapSample.c'`; then
    echo shar: \"'MapSample.c'\" unpacked with wrong size!
fi
# end of 'MapSample.c'
fi
if test -f 'Mark.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Mark.c'\"
else
echo shar: Extracting \"'Mark.c'\" \(951 characters\)
sed "s/^X//" >'Mark.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Mark(pane,snum)
X    sigbox *pane;
X    long snum;
X{
X    int x1,y1,x2,y2,i, oldx1, hincr, nscan;
X    int height,width, start_samp, nsamp, halfheight, maxsamp;
X    float xincr, x;
X    short *data;
X    char sstart[30], slast[30];
X    XPoint *vlist;
X    Arg args[3];
X
X#define Sig pane->s
X#define Start pane->sb_start
X#define Last pane->sb_last
X#define Canvas pane->canvas
X#define GCCache pane->gccache
X
X    if(Sig == NULL) return;
X
X    XtSetArg(args[0], XtNwidth, &width);
X    XtSetArg(args[1], XtNheight, &height);
X    XtGetValues(Canvas, args, TWO);
X    start_samp = pane->first;
X    nsamp = pane->last - pane->first + 1;
X
X    if( start_samp > (Sig->sig_nsamp-2)) start_samp = Sig->sig_nsamp-2;
X    if(nsamp < 2) nsamp = 2;
X    xincr = ((float) width) / ((float) nsamp);
X
X    x1=xincr*(snum-start_samp) ; y1=height; x2=x1; y2=1;
X    XDrawLine(XtDisplay(Canvas), XtWindow(Canvas), GCCache[PAINT], x1,y1,x2,y2);
X}
END_OF_FILE
if test 951 -ne `wc -c <'Mark.c'`; then
    echo shar: \"'Mark.c'\" unpacked with wrong size!
fi
# end of 'Mark.c'
fi
if test -f 'NewEnd.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'NewEnd.c'\"
else
echo shar: Extracting \"'NewEnd.c'\" \(764 characters\)
sed "s/^X//" >'NewEnd.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid NewEnd(button, pane, dummy)
X    Widget button;
X    sigbox *pane;
X    caddr_t dummy;
X{
X    Arg args[2];
X    char *newvalue, actval[40];
X    float percent;
X
X    newvalue = XtDialogGetValueString( XtParent(button));
X    sscanf(newvalue,"%d",&(pane->last));
X    if(pane->first >= pane->last) pane->last = pane->first+1;
X    if( pane->last >= pane->s->sig_nsamp ) pane->last = pane->s->sig_nsamp - 1;
X    percent = ((float) pane->last) / ((float) pane->s->sig_nsamp);
X    SetThumbTop(pane->sb_last, percent);
X    SetThumbShown(pane->sb_start, percent);
X    sprintf(actval,"%d",pane->last);
X    XtSetArg( args[0], XtNlabel, actval);
X    XtSetValues( pane->endval, args, ONE);
X    XtCallCallbacks(pane->draw,XtNcallback,NULL);
X}
END_OF_FILE
if test 764 -ne `wc -c <'NewEnd.c'`; then
    echo shar: \"'NewEnd.c'\" unpacked with wrong size!
fi
# end of 'NewEnd.c'
fi
if test -f 'NewStart.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'NewStart.c'\"
else
echo shar: Extracting \"'NewStart.c'\" \(695 characters\)
sed "s/^X//" >'NewStart.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid NewStart(button, pane, dummy)
X    Widget button;
X    sigbox *pane;
X    caddr_t dummy;
X{
X    Arg args[2];
X    float percent;
X    char *newvalue, actval[40];
X
X    newvalue = XtDialogGetValueString( XtParent(button));
X    sscanf(newvalue,"%d",&(pane->first));
X    if( pane->first < 0 ) pane->first = 0;
X    if( pane->first >= pane->last ) pane->first = pane->last - 1;
X    percent = ((float) pane->first) / ((float) pane->s->sig_nsamp);
X    SetThumbTop(pane->sb_start, percent);
X    sprintf(actval,"%d",pane->first);
X    XtSetArg( args[0], XtNlabel, actval);
X    XtSetValues( pane->startval, args, ONE);
X    XtCallCallbacks(pane->draw,XtNcallback,NULL);
X}
END_OF_FILE
if test 695 -ne `wc -c <'NewStart.c'`; then
    echo shar: \"'NewStart.c'\" unpacked with wrong size!
fi
# end of 'NewStart.c'
fi
if test -f 'Quit.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Quit.c'\"
else
echo shar: Extracting \"'Quit.c'\" \(204 characters\)
sed "s/^X//" >'Quit.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Quit(widget,closure,callData)
X    Widget widget;
X    caddr_t closure;		/* Widget */
X    caddr_t callData;
X{
X    XtDestroyWidget((Widget)closure);
X    exit(1);
X}
X
END_OF_FILE
if test 204 -ne `wc -c <'Quit.c'`; then
    echo shar: \"'Quit.c'\" unpacked with wrong size!
fi
# end of 'Quit.c'
fi
if test -f 'QuitPane.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'QuitPane.c'\"
else
echo shar: Extracting \"'QuitPane.c'\" \(149 characters\)
sed "s/^X//" >'QuitPane.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid QuitPane(widget,pane,callData)
X    Widget widget;
X    sigbox *pane;
X    caddr_t callData;
X{
X    exit(0);
X}
END_OF_FILE
if test 149 -ne `wc -c <'QuitPane.c'`; then
    echo shar: \"'QuitPane.c'\" unpacked with wrong size!
fi
# end of 'QuitPane.c'
fi
if test -f 'Scope.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Scope.c'\"
else
echo shar: Extracting \"'Scope.c'\" \(633 characters\)
sed "s/^X//" >'Scope.c' <<'END_OF_FILE'
X#include "xsignal.h"
X/* ARGSUSED */
Xvoid Scope(scrollbar, toplevel, percent)
X    Widget scrollbar;
X    Widget toplevel;
X    float percent;
X{
X    Arg arg[5];
X    sigbox *sigpane;
X
X    sigpane = (sigbox *) calloc(1, sizeof(sigbox));
X    sigpane->toplevel = XtCreateApplicationShell( "xscope",
X			topLevelShellWidgetClass, arg, NULL );
X    sigpane->outer = XtCreateManagedWidget( "vpaned",
X			vPanedWidgetClass, sigpane->toplevel, arg, NULL );
X    sigpane->box = XtCreateManagedWidget( "signal",
X			boxWidgetClass, sigpane->outer, arg, NULL );
X    init_signal( sigpane );
X    XtRealizeWidget(sigpane->toplevel);
X    gc_init(sigpane);
X}
END_OF_FILE
if test 633 -ne `wc -c <'Scope.c'`; then
    echo shar: \"'Scope.c'\" unpacked with wrong size!
fi
# end of 'Scope.c'
fi
if test -f 'Scrolled.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Scrolled.c'\"
else
echo shar: Extracting \"'Scrolled.c'\" \(874 characters\)
sed "s/^X//" >'Scrolled.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Scrolled(scrollbar, pane, position)
X    Widget scrollbar;
X    sigbox *pane;
X    int position;
X{
X    float percent;
X    int length;
X    int nsamp;
X    char labelval[40];
X    Arg args[2];
X
X    XtSetArg(args[0], XtNlength, &length);
X    XtGetValues(scrollbar, args, ONE);
X    percent = ((float) abs(position)) / ((float) (length));
X    SetThumbTop( scrollbar, percent );
X    if(pane->s != NULL) {
X	nsamp = percent * ((float) pane->s->sig_nsamp);
X        pane->first = nsamp;
X	if( pane->first >= pane->last ) pane->first = pane->last - 1;
X	sprintf(&labelval[0],"%d",nsamp);
X	XtSetArg( args[0], XtNlabel, &labelval[0]);
X	XtSetValues( pane->startval, args, ONE);
X	sprintf(&labelval[0],"%d",nsamp);
X	XtSetArg( args[0], XtNlabel, &labelval[0]);
X	XtSetValues( pane->endval, args, ONE);
X	XtCallCallbacks(pane->draw,XtNcallback,NULL);
X    }
X}
END_OF_FILE
if test 874 -ne `wc -c <'Scrolled.c'`; then
    echo shar: \"'Scrolled.c'\" unpacked with wrong size!
fi
# end of 'Scrolled.c'
fi
if test -f 'SetThumbShown.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'SetThumbShown.c'\"
else
echo shar: Extracting \"'SetThumbShown.c'\" \(275 characters\)
sed "s/^X//" >'SetThumbShown.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
XSetThumbShown(scrollbar,thumbsize)
XWidget scrollbar;
Xfloat thumbsize;
X{
X    float top;
X    int length;
X    Arg args[2];
X
X    XtSetArg(args[0], XtNtop, &top);
X    XtGetValues(scrollbar, args, ONE);
X    XtScrollBarSetThumb( scrollbar, top, thumbsize );
X}
END_OF_FILE
if test 275 -ne `wc -c <'SetThumbShown.c'`; then
    echo shar: \"'SetThumbShown.c'\" unpacked with wrong size!
fi
# end of 'SetThumbShown.c'
fi
if test -f 'SetThumbTop.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'SetThumbTop.c'\"
else
echo shar: Extracting \"'SetThumbTop.c'\" \(275 characters\)
sed "s/^X//" >'SetThumbTop.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
XSetThumbTop(scrollbar,top)
XWidget scrollbar;
Xfloat top;
X{
X    float thumbsize;
X    int length;
X    Arg args[2];
X
X    XtSetArg(args[0], XtNshown, &thumbsize);
X    XtGetValues(scrollbar, args, ONE);
X    XtScrollBarSetThumb( scrollbar, top, thumbsize );
X}
END_OF_FILE
if test 275 -ne `wc -c <'SetThumbTop.c'`; then
    echo shar: \"'SetThumbTop.c'\" unpacked with wrong size!
fi
# end of 'SetThumbTop.c'
fi
if test -f 'Syntax.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Syntax.c'\"
else
echo shar: Extracting \"'Syntax.c'\" \(121 characters\)
sed "s/^X//" >'Syntax.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Syntax(call)
Xchar *call;
X{
X    fprintf(stderr,"%s: Invalid Syntax\n", call);
X}
END_OF_FILE
if test 121 -ne `wc -c <'Syntax.c'`; then
    echo shar: \"'Syntax.c'\" unpacked with wrong size!
fi
# end of 'Syntax.c'
fi
if test -f 'Thumbed.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Thumbed.c'\"
else
echo shar: Extracting \"'Thumbed.c'\" \(652 characters\)
sed "s/^X//" >'Thumbed.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Thumbed(scrollbar, pane, percent)
X    Widget scrollbar;
X    sigbox *pane;
X    float percent;
X{
X    Arg args[2];
X    int nsamp;
X    char labelval[40];
X
X    if(pane->s != NULL) {
X	nsamp = percent * ((float) pane->s->sig_nsamp);
X	pane->first = nsamp;
X	if( pane->first >= pane->last ) pane->first = pane->last - 1;
X	sprintf(&labelval[0], "%d",nsamp);
X	XtSetArg( args[0], XtNlabel, &labelval[0]);
X	XtSetValues( pane->startval, args, ONE);
X	sprintf(&labelval[0], "%d",nsamp);
X	XtSetArg( args[0], XtNlabel, &labelval[0]);
X	XtSetValues( pane->endval, args, ONE);
X	XtCallCallbacks(pane->draw,XtNcallback,NULL);
X    }
X}
END_OF_FILE
if test 652 -ne `wc -c <'Thumbed.c'`; then
    echo shar: \"'Thumbed.c'\" unpacked with wrong size!
fi
# end of 'Thumbed.c'
fi
if test -f 'Thumbed2.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Thumbed2.c'\"
else
echo shar: Extracting \"'Thumbed2.c'\" \(724 characters\)
sed "s/^X//" >'Thumbed2.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Thumbed2(scrollbar, pane, percent)
X    Widget scrollbar;
X    sigbox *pane;
X    float percent;
X{
X    int nsamp;
X    char labelval[40];
X    Arg args[2];
X
X    SetThumbShown( pane->sb_start, percent);
X    if(pane->s != NULL) {
X	nsamp = percent * (pane->s->sig_nsamp);
X	if( pane->first >= nsamp ) nsamp = pane->first + 1;
X	if( nsamp >= pane->s->sig_nsamp ) nsamp = pane->s->sig_nsamp - 1;
X	pane->last = nsamp;
X	percent = ((float) nsamp) / ((float) pane->s->sig_nsamp);
X	SetThumbShown( pane->sb_start, percent);
X	sprintf(&labelval[0], "%d",nsamp);
X	XtSetArg( args[0], XtNlabel, &labelval[0]);
X	XtSetValues( pane->endval, args, ONE);
X	XtCallCallbacks(pane->draw,XtNcallback,NULL);
X    }
X}
END_OF_FILE
if test 724 -ne `wc -c <'Thumbed2.c'`; then
    echo shar: \"'Thumbed2.c'\" unpacked with wrong size!
fi
# end of 'Thumbed2.c'
fi
if test -f 'UnMark.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'UnMark.c'\"
else
echo shar: Extracting \"'UnMark.c'\" \(953 characters\)
sed "s/^X//" >'UnMark.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid UnMark(pane,snum)
X    sigbox *pane;
X    long snum;
X{
X    int x1,y1,x2,y2,i, oldx1, hincr, nscan;
X    int height,width, start_samp, nsamp, halfheight, maxsamp;
X    float xincr, x;
X    short *data;
X    char sstart[30], slast[30];
X    XPoint *vlist;
X    Arg args[3];
X
X#define Sig pane->s
X#define Start pane->sb_start
X#define Last pane->sb_last
X#define Canvas pane->canvas
X#define GCCache pane->gccache
X
X    if(Sig == NULL) return;
X
X    XtSetArg(args[0], XtNwidth, &width);
X    XtSetArg(args[1], XtNheight, &height);
X    XtGetValues(Canvas, args, TWO);
X    start_samp = pane->first;
X    nsamp = pane->last - pane->first + 1;
X
X    if( start_samp > (Sig->sig_nsamp-2)) start_samp = Sig->sig_nsamp-2;
X    if(nsamp < 2) nsamp = 2;
X    xincr = ((float) width) / ((float) nsamp);
X
X    x1=xincr*(snum-start_samp) ; y1=height; x2=x1; y2=1;
X    XDrawLine(XtDisplay(Canvas), XtWindow(Canvas), GCCache[ERASE], x1,y1,x2,y2);
X}
END_OF_FILE
if test 953 -ne `wc -c <'UnMark.c'`; then
    echo shar: \"'UnMark.c'\" unpacked with wrong size!
fi
# end of 'UnMark.c'
fi
if test -f 'WriteMSignal.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'WriteMSignal.c'\"
else
echo shar: Extracting \"'WriteMSignal.c'\" \(756 characters\)
sed "s/^X//" >'WriteMSignal.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid WriteMarkedSignal(widget, pane, callData)
X    Widget widget;
X    sigbox *pane;
X    caddr_t callData;
X{
X    char *signalfile;
X    short *data;
X    int fd,mask,nbytes;
X    float top,shown;
X    char snsamp[30];
X    Arg arg[4];
X
X    signalfile = XtDialogGetValueString( XtParent(widget));
X    mask = 0644;
X    if( (fd = open(signalfile,O_RDWR | O_CREAT,mask)) == -1) {
X	perror(signalfile);
X        fprintf(stderr,"Signal file '%s' cannot be opened\n",signalfile);
X	return;
X    }
X    data =  ((short *) pane->s->sig_data) + pane->lmark;
X    nbytes = (pane->rmark - pane->lmark + 1) * sizeof(short);
X    write(fd, (char *) data, nbytes);
X    close(fd);
X    XtDestroyWidget(pane->file);
X    pane->file = (Widget) NULL;
X}
END_OF_FILE
if test 756 -ne `wc -c <'WriteMSignal.c'`; then
    echo shar: \"'WriteMSignal.c'\" unpacked with wrong size!
fi
# end of 'WriteMSignal.c'
fi
if test -f 'WriteSignal.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'WriteSignal.c'\"
else
echo shar: Extracting \"'WriteSignal.c'\" \(723 characters\)
sed "s/^X//" >'WriteSignal.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid WriteSignal(widget, pane, callData)
X    Widget widget;
X    sigbox *pane;
X    caddr_t callData;
X{
X    char *signalfile;
X    short *data;
X    int fd,mask,nbytes;
X    float top,shown;
X    char snsamp[30];
X    Arg arg[4];
X
X    signalfile = XtDialogGetValueString( XtParent(widget));
X    mask = 0644;
X    if( (fd = open(signalfile,O_RDWR | O_CREAT,mask)) == -1) {
X	perror(signalfile);
X        fprintf(stderr,"Signal file '%s' cannot be opened\n",signalfile);
X	return;
X    }
X    data =  ((short *) pane->s->sig_data);
X    nbytes = pane->s->sig_nsamp * sizeof(short);
X    write(fd, (char *) data, nbytes);
X    close(fd);
X    XtDestroyWidget(pane->file);
X    pane->file = (Widget) NULL;
X}
END_OF_FILE
if test 723 -ne `wc -c <'WriteSignal.c'`; then
    echo shar: \"'WriteSignal.c'\" unpacked with wrong size!
fi
# end of 'WriteSignal.c'
fi
if test -f 'Zoom.c' -a "${1}" != "-c" ; then 
  echo shar: Will not clobber existing file \"'Zoom.c'\"
else
echo shar: Extracting \"'Zoom.c'\" \(935 characters\)
sed "s/^X//" >'Zoom.c' <<'END_OF_FILE'
X#include "xsignal.h"
X
X/* ARGSUSED */
Xvoid Zoom(widget, pane, callData)
X    Widget widget;
X    sigbox *pane;
X    caddr_t callData;
X{
X    char *signalfile;
X    int fd,mask;
X    float top,shown;
X    char snsamp[30];
X    Arg arg[4];
X
X    if( pane->s == NULL ) return;
X    pane->first = pane->lmark;
X    pane->last = pane->rmark;
X    sprintf(snsamp,"%d", pane->first);
X    XtSetArg( arg[0], XtNlabel, snsamp );
X    XtSetValues( pane->startval, arg, ONE );
X    sprintf(snsamp,"%d", pane->last);
X    XtSetArg( arg[0], XtNlabel, snsamp );
X    XtSetValues( pane->endval, arg, ONE );
X    top = ((float) pane->first) / ((float) pane->s->sig_nsamp);
X    shown = ((float) pane->last) / ((float) pane->s->sig_nsamp);
X    SetThumbTop(pane->sb_start, top);
X    SetThumbShown(pane->sb_start, shown);
X    top = ((float) pane->last) / ((float) pane->s->sig_nsamp);
X    SetThumbTop(pane->sb_last, top);
X    XtCallCallbacks(pane->draw,XtNcallback,NULL);
X}
END_OF_FILE
if test 935 -ne `wc -c <'Zoom.c'`; then
    echo shar: \"'Zoom.c'\" unpacked with wrong size!
fi
# end of 'Zoom.c'
fi
echo shar: End of archive 2 \(of 2\).
cp /dev/null ark2isdone
MISSING=""
for I in 1 2 ; do
    if test ! -f ark${I}isdone ; then
	MISSING="${MISSING} ${I}"
    fi
done
if test "${MISSING}" = "" ; then
    echo You have unpacked both archives.
    rm -f ark[1-9]isdone
else
    echo You still need to unpack the following archives:
    echo "        " ${MISSING}
fi
##  End of shell archive.
exit 0
-- 
Mike Wexler(wyse!mikew)    Phone: (408)433-1000 x1330
Moderator of comp.sources.x



More information about the Comp.sources.x mailing list