home *** CD-ROM | disk | FTP | other *** search
- /*
- * Program: SDK_EX1.C
- * Author: Philip VanBaren
- * Purpose: This program demonstrates how to use the Media Vision SDK routines
- * to do output a single block of data.
- */
-
- #include <math.h>
- #include <stdio.h>
- #include <conio.h>
-
- #include <pcmio.h>
-
- extern int DMARunning; /* SDK flag that indicates when DMA has been started */
-
- #define IRQ -1 /* -1 means use the default value */
- #define DMA -1 /* -1 means use the default value */
- #define DMASize 16 /* 16k DMA buffer */
- #define DMADivisions 4 /* 4 divisions in this buffer */
-
- #define SamplingRate 22050
- #define StereoFlag 0 /* If this flag is 1, data is interleaved left/right */
- #define CompressionFlag 0
- #define SampleSize 16 /* Size of samples, 8 or 16 bits */
-
- #define BUF_LEN 20000
-
- int out_buf[BUF_LEN];
-
- void main(void)
- {
- /*
- * Put some meaningful information in out_buf here
- */
- int i;
- for(i=0;i<BUF_LEN;i++)
- out_buf[i]=floor(20000*sin(2*M_PI*0.1*i));
-
- /*
- * Initialize ProAudio stuff
- */
- if(OpenPCMBuffering(DMA,IRQ,DMASize,DMADivisions)!=0)
- puts("Error trying to open PCM buffering.");
- else if(PCMState(SamplingRate,StereoFlag,CompressionFlag,SampleSize)!=0)
- puts("Error setting sample rate.");
- else
- {
- if(PlayThisBlock((char *)out_buf,(long)BUF_LEN*2,NULL)!=0)
- {
- ClosePCMBuffering();
- puts("Error playing block.");
- }
- else
- {
- /*
- * Wait for the DMA to end (which means playback is complete).
- */
- while(!kbhit() && DMARunning);
- }
- }
- /*
- * You MUST call this function before ending the program, else things won't
- * work right the next time you try to run the program. This is critical to
- * remember when debugging the program, because in debugging you often quit the
- * program before it runs to completion. The only way I know of to recover
- * if this function is NOT called is to reboot the computer!
- */
- ClosePCMBuffering();
- }
-
-