home *** CD-ROM | disk | FTP | other *** search
/ The Best of Mecomp Multimedia 1 / Mecomp-CD.iso / amiga / player / ahi / developer / examples / bestaudioid_test.c next >
Encoding:
C/C++ Source or Header  |  1996-03-30  |  1.7 KB  |  62 lines

  1. /* Simple (and useless) test for AHI_BestAudioID() */
  2.  
  3. #include <devices/ahi.h>
  4. #include <proto/exec.h>
  5. #include <proto/dos.h>
  6. #include <proto/ahi.h>
  7. #include <stdlib.h>
  8.  
  9. struct Library    *AHIBase;
  10. struct MsgPort    *AHImp=NULL;
  11. struct AHIRequest *AHIio=NULL;
  12. BYTE               AHIDevice=-1;
  13.  
  14. void cleanup(LONG rc)
  15. {
  16.   if(!AHIDevice)
  17.     CloseDevice((struct IORequest *)AHIio);
  18.   DeleteIORequest((struct IORequest *)AHIio);
  19.   DeleteMsgPort(AHImp);
  20.   exit(rc);
  21. }
  22.  
  23. void main(void)
  24. {
  25.   ULONG id=0;
  26.  
  27.   if(AHImp=CreateMsgPort())
  28.     if(AHIio=(struct AHIRequest *)CreateIORequest(AHImp,sizeof(struct AHIRequest))) {
  29.       AHIio->ahir_Version=1;
  30.       AHIDevice=OpenDevice(AHINAME,AHI_NO_UNIT,(struct IORequest *)AHIio,NULL);
  31.       }
  32.  
  33.   if(AHIDevice) {
  34.     Printf("Unable to open %s version 1\n",AHINAME);
  35.     cleanup(RETURN_FAIL);
  36.   }
  37.   AHIBase=(struct Library *)AHIio->ahir_Std.io_Device;
  38.  
  39.   id=AHI_BestAudioID(AHIDB_Stereo,TRUE,
  40.                      AHIDB_Volume,TRUE,
  41.                      AHIDB_Bits,8,
  42.                      AHIDB_MaxChannels,4,
  43.                      TAG_DONE);
  44.   Printf("Best mode for modules: 0x%08lx.\n",id);
  45.  
  46.   id=AHI_BestAudioID(AHIDB_Stereo,FALSE,
  47.                      AHIDB_MaxChannels,1,
  48.                      AHIDB_MinMixFreq,8000,
  49.                      AHIDB_MaxMixFreq,8000,
  50.                      TAG_DONE);
  51.   Printf("Best mode for mono sample at 8000 Hz: 0x%08lx.\n",id);
  52.  
  53.   id=AHI_BestAudioID(AHIDB_AudioID,id,
  54.                      AHIDB_Stereo,TRUE,
  55.                      AHIDB_Volume,TRUE,
  56.                      AHIDB_Bits,8,
  57.                      AHIDB_MaxChannels,4,
  58.                      TAG_DONE);
  59.   Printf("Best mode for modules, using the same hardware as the last one: 0x%08lx.\n",id);
  60.   cleanup(0);
  61. }
  62.