home *** CD-ROM | disk | FTP | other *** search
/ Vectronix 2 / VECTRONIX2.iso / FILES_01 / PC_V11_B.LZH / DEMO_PC / XBAR.C < prev    next >
C/C++ Source or Header  |  1992-09-02  |  4KB  |  149 lines

  1. #include <osbind.h>
  2. #include <obdefs.h>
  3. #include <gemdefs.h>
  4. #include "sndbind.h"
  5. #include "xbar.h"
  6. #include "dspbind.h"
  7.  
  8. #define HIDE_MOUSE graf_mouse(256,&dummy)
  9. #define SHOW_MOUSE graf_mouse(257,&dummy)
  10.  
  11. char buffer[1000];    /* This buffer needs to be the size of DSP program */
  12.  
  13. int contrl[12], intin[256], ptsin[256], intout[256], ptsout[256];
  14.  
  15. main()
  16. {
  17. short handle, dummy;
  18. short cod,dsp,dma,ext;
  19. short curadder,curadc;
  20. short retval;
  21. short charw, charh, boxw, boxh;
  22. short xdial,ydial,wdial,hdial;
  23. short x,y,w,h;
  24. long xav,yav;
  25. char *rambuf;
  26.  
  27. OBJECT *tree;
  28.  
  29. /* Set the system up to do GEM calls*/
  30.  
  31. appl_init();
  32.  
  33. /* Get the handle of the desktop */
  34.  
  35. handle=graf_handle(&charw,&charh,&boxw,&boxh);
  36.  
  37. graf_mouse(ARROW,&dummy);
  38.  
  39. rsrc_load("xbar.rsc");
  40.  
  41. rsrc_gaddr(0,ROOT,&tree);
  42.  
  43. form_center ( tree, &xdial, &ydial, &wdial, &hdial );
  44.  
  45. form_dial ( 0, x, y, w, h, xdial, ydial, wdial, hdial );
  46.  
  47. locksnd();
  48.  
  49. Dsp_Lock();
  50.  
  51. Dsp_Available(&xav,&yav);
  52. Dsp_Reserve(xav,yav);
  53. if (Dsp_GetProgAbility() != 1234)
  54.     Dsp_LoadProg("FLANG203.LOD",1234,buffer,);
  55.  
  56. soundcmd(LTATTEN,0x0);            /* Set Left Attenuation to 0 */
  57. soundcmd(RTATTEN,0x0);            /* Set Right Attenuation to 0 */
  58. soundcmd(LTGAIN,0x80);        /* Set Left Gain to 8 */
  59. soundcmd(RTGAIN,0x80);        /* Set Right Gain to 8 */
  60.  
  61. curadder=soundcmd(ADDERIN,INQUIRE);
  62. soundcmd(ADDERIN,2);            /* Adder input from Matrix only */
  63.  
  64. curadc=soundcmd(ADCINPUT,INQUIRE);            /* ADC inputs from microphone */
  65. soundcmd(ADCINPUT,0);            /* ADC inputs from microphone */
  66.  
  67. dsptristate(ENABLE,ENABLE);    /* Allow DSP to talk to matrix */
  68.  
  69. rambuf=(char *)Malloc(1000000L);
  70.  
  71. setmode(STEREO16);
  72.  
  73. setbuffer(0,&rambuf[0],&rambuf[100000L]);
  74. setbuffer(1,&rambuf[0],&rambuf[100000L]);
  75.  
  76. buffoper(PLAY_ENABLE|PLAY_REPEAT|RECORD_ENABLE|RECORD_REPEAT);
  77.  
  78. objc_draw ( tree, ROOT, MAX_DEPTH, xdial, ydial, wdial, hdial );
  79.  
  80. do
  81.     {
  82.     cod=0;
  83.     dsp=0;
  84.     dma=0;
  85.     ext=0;
  86.  
  87.     if (tree[CODCOD].ob_state == SELECTED) cod |= DAC;
  88.  
  89.     if (tree[CODDSP].ob_state == SELECTED) dsp |= DAC;
  90.  
  91.     if (tree[CODDMA].ob_state == SELECTED) dma |= DAC;
  92.  
  93.     if (tree[CODEXT].ob_state == SELECTED) ext |= DAC;
  94.  
  95.     if (tree[DSPCOD].ob_state == SELECTED) cod |= DSPRECV;
  96.  
  97.     if (tree[DSPDSP].ob_state == SELECTED) dsp |= DSPRECV;
  98.  
  99.     if (tree[DSPDMA].ob_state == SELECTED) dma |= DSPRECV;
  100.  
  101.     if (tree[DSPEXT].ob_state == SELECTED) ext |= DSPRECV;
  102.  
  103.     if (tree[DMACOD].ob_state == SELECTED) cod |= DMAREC;
  104.  
  105.     if (tree[DMADSP].ob_state == SELECTED) dsp |= DMAREC;
  106.  
  107.     if (tree[DMADMA].ob_state == SELECTED) dma |= DMAREC;
  108.  
  109.     if (tree[DMAEXT].ob_state == SELECTED) ext |= DMAREC;
  110.  
  111.     if (tree[EXTCOD].ob_state == SELECTED) cod |= EXTOUT;
  112.  
  113.     if (tree[EXTDSP].ob_state == SELECTED) dsp |= EXTOUT;
  114.  
  115.     if (tree[EXTDMA].ob_state == SELECTED) dma |= EXTOUT;
  116.  
  117.     if (tree[EXTEXT].ob_state == SELECTED) ext |= EXTOUT;
  118.  
  119.     devconnect (ADC,cod,CLK_25M,CLK50K,NO_SHAKE);
  120.     devconnect (EXTINP,ext,CLK_25M,CLK50K,NO_SHAKE);
  121.     devconnect (DSPXMIT,dsp,CLK_25M,CLK50K,NO_SHAKE);
  122.     devconnect (DMAPLAY,dma,CLK_25M,CLK50K,NO_SHAKE);
  123.  
  124.     if (tree[ADDER].ob_state == SELECTED) 
  125.         soundcmd(ADDERIN,3);
  126.     else
  127.         soundcmd(ADDERIN,2);
  128.  
  129.     retval=form_do ( tree, 0 ); 
  130.  
  131.     } while (retval!=DONE);
  132.  
  133. buffoper(0);
  134. dsptristate(TRISTATE,TRISTATE);    /* Disconnect DSP from matrix */
  135.  
  136. soundcmd(ADDERIN,curadder);
  137. soundcmd(ADCINPUT,curadc);
  138.  
  139. Dsp_Unlock();
  140.  
  141. form_dial ( 0, x, y, w, h, xdial, ydial, wdial, hdial );
  142.  /* Release GEM calls */
  143.  
  144. unlocksnd();
  145.  
  146. appl_exit();
  147.  
  148. }
  149.