SpiCreateStream - Example Code

The following code illustrates how to create a stream handler between a source and target stream handler.

#include        "os2.h"
#include        "os2me.h"
#include        "string.h"

  ULONG         ulRC;             /* Error return code */
  HID           hidSource,        /* Source handler ID */
                hidTarget,        /* Target handler ID */
                hidunused;        /* Dummy handler ID  */
  SPCBKEY       spcbkey;          /* Data type to stream */
  DCB_AUDIOSH   dcb;        /* Audio device driver information */
  PDCB          pdcbTgt;          /* Pointer to DCB */
  IMPL_EVCB     evcb;       /* Event control block for
                                  /*  implicit events */
  HSTREAM       hStream;          /* Stream handle */
  HEVENT        hEvent;           /* Event handle for implicit */
                                  /* events */
                            .
                            .
                            .
/*--------------------------------------------------------*/
/*  Initialize the audio card and get the                 */
/*  dcb.hSysFileNum for "AUDIO01$".                       */
/*--------------------------------------------------------*/
                            .
                            .
                            .
/*--------------------------------------------------------*/
/*  Get the stream handler ID for the file stream handler.*/
/*--------------------------------------------------------*/
  if (ulRC = SpiGetHandler("FSSH",&hidSource, &hidunused))
     return(ulRC);          /* error! */

/*--------------------------------------------------*/
/*  Get the stream handler ID for the digital audio */
/*  stream handler.                                 */
/*--------------------------------------------------*/
  if (ulRC = SpiGetHandler("AUDIOSH$",&hidunused, &hidTarget))
     return(ulRC);          /* error! */

/*----------------------------------------------------*/
/*  Create a data stream from the file system to      */
/*  the digital audio card connected to the speakers. */
/*----------------------------------------------------*/
  spcbkey.ulDataType    = DATATYPE_WAVEFORM;
  spcbkey.ulDataSubType = WAVE_FORMAT_4S16;
  spcbkey.ulIntKey       = 0;
  strcpy(dcb.szDevName,"AUDIO01$");
  pdcbTgt = (PDCB)&dcb;

  if (ulRC = SpiCreateStream (hidSource,
                            hidTarget,
                            &spcbkey,
                            NULL,
                            pdcbTgt,
                            &evcb,
                            (PEVFN) EventsRtn,
                            0,
                            &hStream,
                            &hEvent))
    return(ulRC);   /* error! */

/*-----------------------------------------------------*/
/*  Event routine                                      */
/*-----------------------------------------------------*/

 ULONG APIENTRY EventsRtn(PEVCB pevcb)
 {
                            .
                            .
                      Process events.
                            .
                            .
     return(0);
 }


[Back: SpiCreateStream - Related Messages]
[Next: SpiCreateStream - Topics]