asx.h

Go to the documentation of this file.
00001 /*****************************************************************************************
00002 * $Header: /Repository/apps/asx/asx.h,v 1.438.2.2 2008/10/31 15:12:44 as-tfe Exp $
00003 *
00004 * ASX.H
00005 * Definitions for cross platform/API audio class library
00006 *
00007 * Copyright (C) AudioScience 2003
00008 *****************************************************************************************/
00009 
00010 #ifndef _ASX_H_
00011 #define _ASX_H_
00012 
00013 #if ASX_USE_WX_THREADS
00014 #error Your Makefile is defining the obsolete ASX_USE_WX_THREADS symbol, please use ASX_USE_PTHREADS.
00015 #endif
00016 
00017 #if ASX_USE_PTHREADS
00018 #include <time.h>
00019 #define TRUE 1
00020 #define FALSE 0
00021 #define TEXT
00022 #endif
00023 
00024 #ifndef ARRAY_SIZE
00025 #define  ARRAY_SIZE(X) (sizeof(X)/sizeof(X[0]))
00026 #endif
00027 
00159 #ifdef __cplusplus
00160 extern "C" {
00161 #endif
00162 
00163 // The following ifdef block is the standard way of creating macros which make exporting
00164 // from a DLL simpler. All files within this DLL are compiled with the ASX32_EXPORTS
00165 // symbol defined on the command line. this symbol should not be defined on any project
00166 // that uses this DLL. This way any other project whose source files include this file see
00167 // ASX32_API functions as being imported from a DLL, wheras this DLL sees symbols
00168 // defined with this macro as being exported.
00169 #ifdef ASX32_EXPORTS
00170 #define ASX32_API __declspec(dllexport)
00171 #endif
00172 #ifdef ASX32_IMPORTS
00173 #define ASX32_API __declspec(dllimport)
00174 #endif
00175 #ifndef ASX32_API
00176 #define ASX32_API
00177 #endif
00178 
00179 #ifndef ASX_VERSION
00180 #define ASX_VERSION_CONSTRUCTOR(maj,min,rel)  (((maj) <<16 ) + ((min) << 8) + (rel))
00181 
00182 #define ASX_VER_MAJOR(v) ((v)>>16)
00183 #define ASX_VER_MINOR(v) (((v)>>8) & 0xFF )
00184 #define ASX_VER_RELEASE(v) ((v) & 0xFF )
00185 
00186 /* Use single digits for versions less that 10 to avoid octal. */
00187 #define ASX_VERSION ASX_VERSION_CONSTRUCTOR( 3, 12, 2 )
00188 #endif
00189 
00190 /**************************
00191  * Defines
00192  **************************/
00193 
00194 #define ASX_SYSTEM_TYPE_HPI 0       
00195 #define ASX_SYSTEM_TYPE_WAVE 1      
00196 #define ASX_SYSTEM_TYPE_ALSA 2      
00197 #define ASX_SYSTEM_TYPE_DIRECTX 3   
00198 #define ASX_SYSTEM_TYPE_PORTAUDIO 4 
00199 #define ASX_SYSTEM_TYPE_PCXTOOLS 5  
00200 #define ASX_SYSTEM_TYPE_SNMP 6      
00201 #define ASX_SYSTEM_TYPE_HPIUDP 7    
00202 #define ASX_SYSTEM_TYPE_DUMMY  8  
00203 #define ASX_SYSTEM_TYPE_COUNT 9     
00204 
00205 #define ASX_SHORT_STRING 32     
00206 #define ASX_LONG_STRING 128         
00207 #define ASX_LONGLONG_STRING 256     
00208 
00209 #if !linux
00210 #include <crtdbg.h>
00211 #endif
00212 
00213 #ifndef _RPT0
00214 #define _RPT0(l,s) printf(s)        
00215 #define _RPT1(l,s,d1) printf(s,d1)  
00216 #endif
00217 
00218 /**************************
00219  * Enums
00220  **************************/
00221 
00223 enum asxERROR {
00224     asxERROR_NO_ERROR=0,                
00225     // leave a gap here so that any 8-bit bit enums will never map to error codes.
00226     asxERROR_ASXOBJECT=256,             
00227     asxERROR_INDEX_OUT_OF_RANGE=257,        
00228     asxERROR_UNIMPLEMENTED=258,             
00229     asxERROR_COMMUNICATING_WITH_DEVICE=259, 
00230     asxERROR_STARTING_DEVICE=260,           
00231     asxERROR_NOT_OPEN=261,                  
00232     asxERROR_ALREADY_OPEN=262,              
00233     asxERROR_INVALID_FORMAT=263,            
00234     asxERROR_INTERNAL_BUFFERING_ERROR=264,  
00235     asxERROR_AES18=265,                     
00236     asxERROR_INVALID_OPERATION=266,         
00237     asxERROR_ENUMERATE_INDEX_OUT_OF_RANGE=267,      
00238     asxERROR_BUFFER_TOO_SMALL=268,          
00239     asxERROR_OUTOFMEMORY=269,               
00240     asxERROR_DEPRECATED=270,                
00241     asxERROR_TOO_MANY_CLIENTS=271,          
00242 
00243     asxERROR_INVALID_CONTROL=304,           
00244     asxERROR_INVALID_CONTROL_VALUE=305,     
00245     asxERROR_INVALID_CONTROL_NOT_FOUND=306, 
00246     asxERROR_INVALID_NUMBER_OF_CHANNELS=307,
00247     asxERROR_INVALID_CONTROL_ATTRIBUTE=308, 
00248     asxERROR_UNSUPPORTED_CONTROL_ATTRIBUTE=309, 
00249     asxERROR_INVALID_CONTROL_OPERATION=310, 
00250 
00251     asxERROR_FILE_OPEN_FAILED=336,          
00252 
00253     asxERROR_PLAYER_INTERNAL_STATE_FAILURE=384, 
00254     asxERROR_PLAYER_TIME_OUT=385,               
00255     asxERROR_PLAYER_OUT_OF_SEQUENCE_CALL=386,   
00256     asxERROR_PLAYER_TWAV=387,                   
00257     asxERROR_PLAYER_NOFILE=388,                 
00258     asxERROR_PLAYER_INVALIDFILEFORMAT=389,      
00259     asxERROR_PLAYER_UNSUPPORTEDFORMAT=390,      
00260     asxERROR_PLAYER_FILEREADERROR=391,          
00261     asxERROR_PLAYER_FILEOPENERROR=392,          
00262 
00263     asxERROR_RECORDER_INTERNAL_STATE_FAILURE=448,
00264     asxERROR_RECORDER_TIME_OUT=449,             
00265     asxERROR_RECORDER_OUT_OF_SEQUENCE_CALL=450, 
00266     asxERROR_RECORDER_TWAV=451,                 
00267     asxERROR_RECORDER_FILECREATEERROR=452,      
00268     asxERROR_RECORDER_FILEWRITEERROR=453,       
00269     asxERROR_RECORDER_FORMATMISMATCH=454,       
00270     asxERROR_RECORDER_INVALIDFILENAME=455,      
00271 
00272     asxERROR_MIXER_SAVECONTROLSTATE=460,        
00273 
00274     asxERROR_UNKNOWN=4095                       
00275 };
00276 
00278 enum asxNODE {
00279     asxNODE_NONE=0,         
00280     asxNODE_INVALID=400,    
00281 
00282     asxNODE_ADAPTER=401,        
00283     asxNODE_PLAYER=402,         
00284     asxNODE_LINE_IN=403,        
00285     asxNODE_AESEBU_IN=404,      
00286     asxNODE_TUNER_IN=405,       
00287     asxNODE_RADIO_FREQ_IN=406,  
00288     asxNODE_CLOCK_SOURCE_IN=407,
00289     asxNODE_BITSTREAM_IN=408,   
00290     asxNODE_MICROPHONE_IN=409,  
00291     asxNODE_COBRANET_IN=410,    
00292     asxNODE_COBRANET_RECEIVER=411,  
00293     asxNODE_ANALOG_IN=412,      
00294 
00295     asxNODE_LAST_SOURCE_NODE=413,   
00296 
00297     asxNODE_FIRST_DEST_NODE=450,    
00298     asxNODE_RECORDER=450,       
00299     asxNODE_LINE_OUT=451,       
00300     asxNODE_AESEBU_OUT=452, 
00301     asxNODE_RADIO_FREQ_OUT=453, 
00302     asxNODE_SPEAKER_OUT=454,    
00303     asxNODE_COBRANET_OUT=455,   
00304     asxNODE_COBRANET_TRANSMITTER=456,   
00305     asxNODE_ANALOG_OUT=457,     
00306 
00307     asxNODE_LAST_DEST_NODE=458
00308 };
00309 
00311 enum asxCONTROL {
00312     asxCONTROL_INVALID=500,     
00313 
00314     asxCONTROL_CONNECTION=501,      
00315     asxCONTROL_VOLUME=502,          
00316     asxCONTROL_METER=503,           
00317     asxCONTROL_MUTE=504,            
00318     asxCONTROL_MULTIPLEXER=505,     
00319     asxCONTROL_AESEBU_TRANSMITTER=506, 
00320     asxCONTROL_AESEBU_RECEIVER=507, 
00321     asxCONTROL_LEVEL=508,           
00322     asxCONTROL_TUNER=509,           
00323     asxCONTROL_RDS=510,             
00324     asxCONTROL_VOX=511,             
00325     asxCONTROL_AES18_TRANSMITTER=512, 
00326     asxCONTROL_AES18_RECEIVER=513,  
00327     asxCONTROL_AES18_BLOCK_GENERATOR=514, 
00328     asxCONTROL_CHANNEL_MODE=515,    
00329     asxCONTROL_BIT_STREAM=516,      
00330     asxCONTROL_SAMPLE_CLOCK=517,    
00331     asxCONTROL_MICROPHONE=518,      
00332     asxCONTROL_PARAMETRIC_EQ=519,   
00333     asxCONTROL_COMPANDER=520,       
00334     asxCONTROL_COBRANET=521,        
00335     asxCONTROL_PLAYER=522,          
00336     asxCONTROL_RECORDER=523,        
00337     asxCONTROL_GPIO=524,            
00338     asxCONTROL_RESERVED_525=525,    
00339     asxCONTROL_RESERVED_526=526,    
00340     asxCONTROL_RESERVED_527=527,    
00341     asxCONTROL_RESERVED_528=528,    
00342     asxCONTROL_GENERIC=529,         
00343     asxCONTROL_TONEDETECTOR=530,    
00344     asxCONTROL_SILENCEDETECTOR=531, 
00345     asxCONTROL_COBRANET_TRANSMITTER=532,
00346     asxCONTROL_COBRANET_RECEIVER=533,
00347     asxCONTROL_PAD=534,     
00348     asxCONTROL_SRC=535,     
00349 
00350     asxCONTROL_LAST_CONTROL=536
00351 };
00352 
00353 /****************************************
00354  * Various control enums
00355 *****************************************/
00356 
00358 enum asxVOLUME_AUTOFADE {
00359     asxVOLUME_AUTOFADE_LOG,                     
00360     asxVOLUME_AUTOFADE_LINEAR                   
00361 };
00362 
00364 enum asxMETER_TYPE {
00365     asxMETER_PEAK,  
00366     asxMETER_RMS    
00367 };
00368 
00370 enum asxCHANNELMODE {
00371     asxCHANNELMODE_ILLEGAL=1000,        
00372     asxCHANNELMODE_NORMAL=1001,         
00373     asxCHANNELMODE_SWAP=1002,           
00374     asxCHANNELMODE_STEREOTOLEFT=1003,   
00375     asxCHANNELMODE_STEREOTORIGHT=1004,  
00376     asxCHANNELMODE_LEFTTOSTEREO=1005,   
00377     asxCHANNELMODE_RIGHTTOSTEREO=1006   
00378 };
00380 enum asxADAPTERMODE {
00381     asxADAPTERMODE_ILLEGAL=1100,        
00382     asxADAPTERMODE_4_PLAY=1101,         
00383     asxADAPTERMODE_6_PLAY=1102,         
00384     asxADAPTERMODE_8_PLAY=1103,         
00385     asxADAPTERMODE_9_PLAY=1104,         
00386     asxADAPTERMODE_12_PLAY=1105,        
00387     asxADAPTERMODE_16_PLAY=1106,        
00388     asxADAPTERMODE_1_PLAY=1107,         
00389     asxADAPTERMODE_MODE_1=1108,         
00390     asxADAPTERMODE_MODE_2=1109,         
00391     asxADAPTERMODE_MODE_3=1110,         
00392     asxADAPTERMODE_MULTICHANNEL=1111    
00393 };
00395 // NOTE - the order of these enums MUST match the order of the HPI band enums or the code will FAIL!!
00396 enum asxTUNERBAND {
00397     asxTUNERBAND_AM=1200,           
00398     asxTUNERBAND_FM=1201,           
00399     asxTUNERBAND_TV=1202,           
00400     asxTUNERBAND_FM_STEREO=1203,    
00401     asxTUNERBAND_AUX=1204,          
00402     asxTUNERBAND_TV_PAL_BG=1205,    
00403     asxTUNERBAND_TV_PAL_I=1206,     
00404     asxTUNERBAND_TV_PAL_DK=1207,        
00405     asxTUNERBAND_TV_SECAM_L=1208        
00406 };
00408 enum asxTUNERDEEMPHASIS {
00409     asxTUNERDEEMPHASIS_50=1240, 
00410     asxTUNERDEEMPHASIS_75=1241, 
00411     asxTUNERDEEMPHASIS_none=1242,   
00412 };
00414 enum asxTUNERMODE {
00415     asxTUNERMODE_RSS=1250,          
00416     asxTUNERMODE_RSS_ENABLE=1251,   
00417     asxTUNERMODE_RSS_DISABLE=1252   
00418 };
00420 enum asxTUNERPROGRAM {
00421     asxTUNERPROGRAM_none=1260,      
00422     asxTUNERPROGRAM_1=1261,     
00423     asxTUNERPROGRAM_2=1262,     
00424     asxTUNERPROGRAM_3=1263,     
00425     asxTUNERPROGRAM_4=1264,     
00426     asxTUNERPROGRAM_5=1265,     
00427     asxTUNERPROGRAM_6=1266,     
00428     asxTUNERPROGRAM_7=1267,     
00429     asxTUNERPROGRAM_8=1268,     
00430 };
00432 enum asxSAMPLE_CLOCK_SOURCE {
00433     asxSAMPLE_CLOCK_SOURCE_ADAPTER=1400,
00434     asxSAMPLE_CLOCK_SOURCE_AESEBUSYNC=1401, 
00435     asxSAMPLE_CLOCK_SOURCE_WORD=1402,       
00436     asxSAMPLE_CLOCK_SOURCE_WORD_HEADER=1403, 
00437     asxSAMPLE_CLOCK_SOURCE_SMPTE=1404,      
00438     asxSAMPLE_CLOCK_SOURCE_NETWORK=1405,    
00439     asxSAMPLE_CLOCK_SOURCE_AESEBUAUTO=1406, 
00440     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT1=1407,
00441     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT2=1408,
00442     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT3=1409,
00443     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT4=1410,
00444     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT5=1411,
00445     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT6=1412,
00446     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT7=1413,
00447     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT8=1414,
00448     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT9=1415,
00449     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT10=1416,
00450     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT11=1417,
00451     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT12=1418,
00452     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT13=1419,
00453     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT14=1420,
00454     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT15=1421,
00455     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT16=1422,
00456     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT17=1423,
00457     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT18=1424,
00458     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT19=1425,
00459     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT20=1426,
00460     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT21=1427,
00461     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT22=1428,
00462     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT23=1429,
00463     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT24=1430,
00464     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT25=1431,
00465     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT26=1432,
00466     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT27=1433,
00467     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT28=1434,
00468     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT29=1435,
00469     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT30=1436,
00470     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT31=1437,
00471     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT32=1438,
00472     asxSAMPLE_CLOCK_SOURCE_LOCAL=1439,        
00473     asxSAMPLE_CLOCK_SOURCE_PREV_MODULE=1440,  
00474     asxSAMPLE_CLOCK_SOURCE_UNDEFINED=1441,  
00475     asxSAMPLE_CLOCK_SOURCE_LIVEWIRE=1442  
00476 };
00477 
00479 enum asxAESEBU_FORMAT {
00480     asxAESEBU_FORMAT_AESEBU=1450,   
00481     asxAESEBU_FORMAT_SPDIF=1451,        
00482     asxAESEBU_FORMAT_UNDEFINED=1452     
00483 };
00485 enum asxEQBANDTYPE {
00486     asxEQBANDTYPE_BYPASS=1460,      
00487     asxEQBANDTYPE_LOWSHELF=1461,        
00488     asxEQBANDTYPE_HIGHSHELF=1462,       
00489     asxEQBANDTYPE_EQUALIZER=1463,       
00490     asxEQBANDTYPE_LOWPASS=1464,         
00491     asxEQBANDTYPE_HIGHPASS=1465,        
00492     asxEQBANDTYPE_BANDPASS=1466,        
00493     asxEQBANDTYPE_BANDSTOP=1467,        
00494 };
00496 enum asxCOBRANET_MODE {
00497     asxCOBRANET_MODE_NETWORK=1470,  
00498     asxCOBRANET_MODE_TETHERED=1471  
00499 };
00501 enum asxADPROPENUM_MODE {
00502     asxADPROPENUM_MODE_PROPERTIES=1480, 
00503     asxADPROPENUM_MODE_SETTINGS=1481    
00504 };
00506 enum asxCOBRANET_LATENCY {
00507     asxCOBRANET_LATENCY_133ms=1490, 
00508     asxCOBRANET_LATENCY_266ms=1491, 
00509     asxCOBRANET_LATENCY_533ms=1492  
00510 };
00511 
00512 /****************************************
00513  * Various player and recorder enums
00514 *****************************************/
00515 
00517 enum asxFILE_FORMAT {
00518     asxFILE_FORMAT_WAV=10000,   
00519     asxFILE_FORMAT_RAW=10001    
00520 };
00522 enum asxFILE_MODE {
00523     asxFILE_MODE_CREATE=10100,  
00524     asxFILE_MODE_APPEND=10101   
00525 };
00527 enum asxAUDIO_FORMAT {
00528     asxAUDIO_FORMAT_PCM8=10200,     
00529     asxAUDIO_FORMAT_PCM16=10201,        
00530     asxAUDIO_FORMAT_PCM24=10202,        
00531     asxAUDIO_FORMAT_PCM32=10203,        
00532     asxAUDIO_FORMAT_PCM32_FLOAT=10204,  
00533     asxAUDIO_FORMAT_MPEG_L2=10205,      
00534     asxAUDIO_FORMAT_MPEG_L3=10206,      
00535     asxAUDIO_FORMAT_MPEG_AACPLUS=10207, 
00536     asxAUDIO_FORMAT_DOLBY_AC2=10208,    
00537     asxAUDIO_FORMAT_PCM20=10209,        
00538     asxAUDIO_FORMAT_NONE=10210      
00539 };
00540 
00541 
00543 enum asxRECORD_MODE {
00544     asxRECORD_MODE_STEREO=10300,    
00545     asxRECORD_MODE_JOINT_STEREO,    
00546     asxRECORD_MODE_DUAL_MONO,       
00547     asxRECORD_MODE_MONO,            
00548     asxRECORD_MODE_DONT_CARE        
00549 };
00551 enum asxPLAYER_STATE{
00552     asxPLAYER_INIT=10400,           
00553     asxPLAYER_OPEN=10401,           
00554     asxPLAYER_PREFILL=10402,        
00555     asxPLAYER_RUNNING=10403,        
00556     asxPLAYER_PAUSED=10404,         
00557     asxPLAYER_DONE=10405,           
00558     asxPLAYER_DESTROY=10406         
00559 };
00561 enum asxRECORDER_STATE{
00562     asxRECORDER_INIT=10500,         
00563     asxRECORDER_OPEN=10501,         
00564     asxRECORDER_RUNNING=10502,      
00565     asxRECORDER_PAUSED=10503,       
00566     asxRECORDER_DONE=10504,         
00567     asxRECORDER_DESTROY=10505       
00568 };
00569 
00571 enum asxTIMESCALE {
00572     asxTIMESCALE_INVALID=10600,         
00573     asxTIMESCALE_BYTES=10601,           
00574     asxTIMESCALE_MILLISECONDS=10602,    
00575     asxTIMESCALE_SAMPLES=10603          
00576 };
00577 
00579 enum asxSAMPLE_RATE {
00580     asxSAMPLE_RATE_8000=10700,
00581     asxSAMPLE_RATE_11025=10701,
00582     asxSAMPLE_RATE_16000=10702,
00583     asxSAMPLE_RATE_22050=10703,
00584     asxSAMPLE_RATE_24000=10704,
00585     asxSAMPLE_RATE_32000=10705,
00586     asxSAMPLE_RATE_44100=10706,
00587     asxSAMPLE_RATE_48000=10707,
00588     asxSAMPLE_RATE_64000=10708,
00589     asxSAMPLE_RATE_88200=10709,
00590     asxSAMPLE_RATE_96000=10710,
00591     asxSAMPLE_RATE_192000=10711,
00592     asxSAMPLE_RATE_12000=10712,
00593     asxSAMPLE_RATE_UNDEFINED=10799
00594 };
00595 
00597 enum asxMSG_LOGGING {
00598     asxMSG_LOGGING_DISABLE=10800,   
00599     asxMSG_LOGGING_ERROR=10801, 
00600     asxMSG_LOGGING_WARNING=10802,   
00601     asxMSG_LOGGING_NOTICE=10803,    
00602     asxMSG_LOGGING_INFO=10804,  
00603     asxMSG_LOGGING_DEBUG=10805, 
00604     asxMSG_LOGGING_VERBOSE=10806    
00605 };
00606 
00607 /******************************************************************************************************
00608  * The following enums apply to bitfields and other settings and therefore not translatable by #ASXSTRING_EnumToString();
00609  ******************************************************************************************************/
00610 
00612 enum asxTUNER_STATUS {
00613     asxTUNER_STATUS_VIDEO_VALID=1,              
00614     asxTUNER_STATUS_VIDEO_COLOR_PRESENT=2,      
00615     asxTUNER_STATUS_VIDEO_IS_60HZ=4,            
00616     asxTUNER_STATUS_VIDEO_HORZ_SYNC_MISSING=8,  
00617     asxTUNER_STATUS_PLL_LOCKED=16,              
00618     asxTUNER_STATUS_FM_STEREO=32,               
00619     asxTUNER_STATUS_DIGITAL=64,             
00620     asxTUNER_STATUS_MULTIPROGRAM=128            
00621 };
00622 
00624 enum asxTUNER_RDS_TYPE {
00625     asxTUNER_RDS_TYPE_RDS=0,        
00626     asxTUNER_RDS_TYPE_RBDS=1,       
00627 };
00628 
00629 
00630 
00632 enum asxAESEBU_STATUS {
00633     asxAESEBU_ERROR=0x01,               
00634     asxAESEBU_ERROR_NOT_LOCKED=0x02,        
00635     asxAESEBU_ERROR_POOR_QUALITY=0x04,      
00636     asxAESEBU_ERROR_PARITY_ERROR=0x08,      
00637     asxAESEBU_ERROR_BIPHASE_VIOLATION=0x10,     
00638     asxAESEBU_ERROR_VALIDITY=0x20,          
00639     asxAESEBU_ERROR_CHANNELSTATUS_CRC=0x40      
00640 };
00641 
00643 enum asxHANDLE_TYPE {
00644     asxHANDLE_INVALID,  
00645     asxHANDLE_SYSTEM,   
00646     asxHANDLE_ADAPTER,  
00647     asxHANDLE_MIXER,    
00648     asxHANDLE_NODE,     
00649     asxHANDLE_CONTROL,  
00650     asxHANDLE_LAST      
00651     };
00652 
00653 /**************************
00654  * Typedefs
00655  **************************/
00656 
00657 typedef void * ASX_HANDLE;  
00658 typedef enum asxERROR ASX_ERROR;    
00659 typedef enum asxNODE ASX_NODE;      
00660 typedef int ASX_TIME;               
00661 typedef void ASX_ERROR_CALLBACK(ASX_HANDLE hASX_Object,const char *pszCallingFunction,void *pUser1,void *pUser2);   
00662 
00663 #ifndef ASX_H_DEFS_ONLY
00664 /**************************************************************************************
00665  * Functions
00666  **************************************************************************************/
00667 
00668 /*******************************************************************/
00687 ASX32_API ASX_ERROR ASX_System_Create( const int asxSystemType, ASX_HANDLE *phSystem );
00688 
00702 ASX32_API ASX_ERROR ASX_System_CreateSubSystem( const int asxSystemType, ASX_HANDLE *pio_hSystem );
00703 
00710 ASX32_API ASX_ERROR ASX_System_SetHostNetworkInterface( const char *szInterface );
00711 
00721 ASX32_API ASX_ERROR ASX_System_Delete( ASX_HANDLE hSystem );
00722 
00736 ASX32_API ASX_ERROR ASX_System_RegisterErrorCallback(
00737                             ASX_HANDLE hSystem,
00738                             ASX_ERROR_CALLBACK *pCallback,
00739                             void *pUser1,
00740                             void *pUser2);
00741 
00760 ASX32_API ASX_ERROR ASX_System_GetName(
00761                             ASX_HANDLE hSystem,
00762                             char *pszName,
00763                             const int nStringLength,
00764                             int *pnRequiredLength );
00778 ASX32_API ASX_ERROR ASX_System_GetVersion( ASX_HANDLE hSystem,
00779                                           char *pszSystemVersion,
00780                                           const int nSystemVersionLength,
00781                                           int *pnRequiredSystemVersionLength,
00782                                           char *pszSubSystemVersion,
00783                                           const int nSubSystemVersionLength,
00784                                           int *pnRequiredSubSystemVersionLength);
00791 ASX32_API ASX_ERROR ASX_System_GetAdapterCount( ASX_HANDLE hSystem, int *pnCount );
00799 ASX32_API ASX_ERROR ASX_System_GetAdapter( ASX_HANDLE hSystem, const int nAdapter, ASX_HANDLE *p_hAdapter );
00806 ASX32_API ASX_ERROR ASX_System_SetMessageLogging( ASX_HANDLE hSystem, const enum asxMSG_LOGGING eLog);
00813 ASX32_API ASX_ERROR ASX_System_GetMessageLogging( ASX_HANDLE hSystem, enum asxMSG_LOGGING *eLog);
00814  // end of System group
00816 
00817 
00818 /*******************************************************************
00819  * Handle functions
00820  */
00830 ASX32_API enum asxHANDLE_TYPE ASX_Handle_GetType(ASX_HANDLE hHandle); // end of Handle group
00832 
00833 /*******************************************************************
00834  * Error functions
00835  */
00849 ASX32_API ASX_ERROR ASX_Error_GetLast(
00850                             ASX_HANDLE hASXObject,
00851                             ASX_ERROR *pnAsxErrorCode,
00852                             int *pnAsxSubSystemErrorCode);
00853 
00869 ASX32_API ASX_ERROR ASX_Error_GetLastString(
00870                             ASX_HANDLE hASXObject,
00871                             char *pszAsxErrorString,
00872                             const int nAsxErrorStringLength,
00873                             int *pnRequiredAsxErrorStringLength,
00874                             char *pszAsxSubSystemErrorString,
00875                             const int nAsxSubSystemErrorStringLength,
00876                             int *pnRequiredAsxSubSystemErrorStringLength);
00877 
00878 
00884 ASX32_API ASX_ERROR ASX_Error_Clear(
00885                             ASX_HANDLE hASXObject);
00886  // end of Error group
00888 
00893 /*******************************************************************
00894  * Adapter functions
00895  */
00911 ASX32_API ASX_ERROR ASX_Adapter_CheckSubSystems(
00912         ASX_HANDLE hAdapter,
00913         unsigned int *pnSubSystemMask,
00914         unsigned int *pnSubSystemOkMask);
00915 
00916 
00945 ASX32_API ASX_ERROR ASX_Adapter_GetName(
00946                             ASX_HANDLE hAdapter,
00947                             char *pszName,
00948                             const int nStringLength,
00949                             int *RequiredLength );
00950 
00967 ASX32_API ASX_ERROR ASX_Adapter_GetIndex(
00968                             ASX_HANDLE hAdapter,
00969                             int *pnIndex );
00978 ASX32_API ASX_ERROR ASX_Adapter_GetSerialNumber(
00979                             ASX_HANDLE hAdapter,
00980                             unsigned long *pdwSerialNumber );
00981 
00993  ASX32_API ASX_ERROR ASX_Adapter_GetHardwareRevision(
00994                             ASX_HANDLE hAdapter,
00995                             char *pszRevision);
00996 
01006  ASX32_API ASX_ERROR ASX_Adapter_GetFirmwareRevision(
01007                             ASX_HANDLE hAdapter,
01008                             char *pszRevision);
01009 
01019  ASX32_API ASX_ERROR ASX_Adapter_GetMacAddress(
01020                             ASX_HANDLE hAdapter,
01021                             char *pszMAC);
01022 
01032  ASX32_API ASX_ERROR ASX_Adapter_GetIpAddress(
01033                             ASX_HANDLE hAdapter,
01034                             char *pszIP);
01035 
01046 ASX32_API ASX_ERROR ASX_Adapter_GetDspUtilization(
01047                             ASX_HANDLE hAdapter,
01048                             const int nDspIndex,
01049                             int *pnDspUtilization);
01050 
01058 ASX32_API ASX_ERROR ASX_Adapter_GetMixer(
01059                             ASX_HANDLE hAdapter,
01060                             ASX_HANDLE *p_hMixer );
01061 
01062 
01071 ASX32_API ASX_ERROR ASX_Adapter_EnumerateMode( ASX_HANDLE hAdapter, const int nIndex, enum asxADAPTERMODE *peMode, int *pnCount);
01078 ASX32_API ASX_ERROR ASX_Adapter_GetMode( ASX_HANDLE hAdapter, enum asxADAPTERMODE *peMode);
01085 ASX32_API ASX_ERROR ASX_Adapter_SetMode( ASX_HANDLE hAdapter, const enum asxADAPTERMODE eMode);
01095 ASX32_API ASX_ERROR ASX_Adapter_EnumerateProperty( ASX_HANDLE hAdapter, const int nIndex, const enum asxADPROPENUM_MODE eMode, const int nSubIndex, unsigned long *pdwSetting);
01104 ASX32_API ASX_ERROR ASX_Adapter_ReadProperty( ASX_HANDLE hAdapter, const int nIndex, unsigned short *pwParm1, unsigned short *pwParm2);
01113 ASX32_API ASX_ERROR ASX_Adapter_WriteProperty( ASX_HANDLE hAdapter, const int nIndex, const unsigned short wParm1, const unsigned short wParm2);
01121 ASX32_API ASX_ERROR ASX_Adapter_WriteNvMem( ASX_HANDLE hAdapter, const int nAddress, const unsigned char cValue);
01129 ASX32_API ASX_ERROR ASX_Adapter_ReadNvMem( ASX_HANDLE hAdapter, const int nAddress, unsigned char *pcValue);
01136 ASX32_API ASX_ERROR ASX_Adapter_GetNvMemSizeInBytes( ASX_HANDLE hAdapter, int *pnCount);
01137 
01138  // end of Adapter group
01140 
01145 /*******************************************************************
01146  * Mixer functions
01147  */
01165 ASX32_API ASX_ERROR ASX_Mixer_ResetControls(
01166                     ASX_HANDLE hMixer);
01167 
01174 ASX32_API ASX_ERROR ASX_Mixer_GetSourceNodeCount(
01175                     ASX_HANDLE hMixer,
01176                     int *pnCount);
01177 
01186 ASX32_API ASX_ERROR ASX_Mixer_GetSourceNode(
01187                     ASX_HANDLE hMixer,
01188                     const int nSourceNode,
01189                     ASX_HANDLE *p_hNode );
01190 
01191 
01198 ASX32_API ASX_ERROR ASX_Mixer_GetDestinationNodeCount(
01199                     ASX_HANDLE hMixer,
01200                     int *pnCount);
01201 
01210 ASX32_API ASX_ERROR ASX_Mixer_GetDestinationNode(
01211                     ASX_HANDLE hMixer,
01212                     const int nDestinationNode,
01213                     ASX_HANDLE *p_hNode );
01214 
01225 ASX32_API ASX_ERROR ASX_Mixer_GetNodeByType(
01226                     ASX_HANDLE hMixer,
01227                     const enum asxNODE eType,
01228                     const int nIndex,
01229                     ASX_HANDLE *p_hNode);
01230 
01240 ASX32_API ASX_ERROR ASX_Mixer_GetNodeTypeCount(
01241                     ASX_HANDLE hMixer,
01242                     const enum asxNODE eType,
01243                     int *pnCount);
01244 
01245 
01246 
01253 ASX32_API ASX_ERROR ASX_Mixer_GetControlCount(
01254                     ASX_HANDLE hMixer,
01255                     int *pnControls);
01256 
01264 ASX32_API ASX_ERROR ASX_Mixer_GetControl(
01265                     ASX_HANDLE hMixer,
01266                     const int nControl,
01267                     ASX_HANDLE *p_hControlBase );
01268 
01280 ASX32_API ASX_ERROR ASX_Mixer_GetControlByNode(
01281                     const ASX_HANDLE hMixer,
01282                     const ASX_HANDLE hSourceNode,
01283                     const ASX_HANDLE hDestinationNode,
01284                     const enum asxCONTROL eControlType,
01285                     ASX_HANDLE *p_hControlBase );
01286 
01300 ASX32_API ASX_ERROR ASX_Mixer_GetControlByNodeTypeAndIndex(
01301                     ASX_HANDLE hMixer,
01302                     const enum asxNODE nSourceNodeType,
01303                     const int nSourceIndex,
01304                     const enum asxNODE nDestinationNodeType,
01305                     const int nDestinationIndex,
01306                     const enum asxCONTROL eControlType,
01307                     ASX_HANDLE *p_hControlBase );
01308 
01309 
01310  // end of Mixer group
01312 
01313 /*******************************************************************
01314  * Node functions
01315  */
01331 ASX32_API ASX_ERROR ASX_Node_GetType(
01332                     ASX_HANDLE hNode,
01333                     enum asxNODE *peType);
01334 
01343 ASX32_API ASX_ERROR ASX_Node_GetIndex(
01344                     ASX_HANDLE hNode,
01345                     int *pnIndex);
01346 
01358 ASX32_API ASX_ERROR ASX_Node_GetLocation(
01359                     ASX_HANDLE hNode,
01360                     int *pnModuleSlot,
01361                     int *pnNodeIndexOnSlot,
01362                     char *pszModuleName,
01363                     const int nStringLength);
01364 
01371 ASX32_API ASX_ERROR ASX_Node_GetSubSystem(
01372                     ASX_HANDLE hNode,
01373                     ASX_HANDLE *p_hSubSystem);
01374 
01382 ASX32_API ASX_ERROR ASX_Node_GetName(
01383             ASX_HANDLE hNode,
01384             char *pszNodeName,
01385             const int nStringLength
01386             );
01387 
01391 ASX32_API ASX_ERROR ASX_Mixer_GetNodeType(
01392                     ASX_HANDLE hNode,
01393                     enum asxNODE *peType);
01394 
01398 ASX32_API ASX_ERROR ASX_Mixer_GetNodeIndex(
01399                     ASX_HANDLE hNode,
01400                     int *pnIndex);
01401  // end of Node group
01403 
01408 /******************************************************************
01409  * Control functions
01410  */
01424 ASX32_API ASX_ERROR ASX_Control_GetType( ASX_HANDLE hControl, enum asxCONTROL *peControl);
01431 ASX32_API ASX_ERROR ASX_Control_GetSourceNode( ASX_HANDLE hControl, ASX_HANDLE *p_hNode );
01438 ASX32_API ASX_ERROR ASX_Control_GetDestinationNode( ASX_HANDLE hControl, ASX_HANDLE *p_hNode );
01454 ASX32_API ASX_ERROR ASX_Control_GetHpiControl( ASX_HANDLE hControl, void **pphHpiSubSys, unsigned int *phHpiControl );
01461 ASX32_API ASX_ERROR ASX_Control_GetSubSystem(
01462                     ASX_HANDLE hControl,
01463                     ASX_HANDLE *p_hSubSystem);
01464 
01465 
01466 /*
01467 enum asxCONTROL_PROPERTY {
01468     asxCONTROL_PROPERTY_TUNER_HDRADIO_SIGNAL_QUALITY,
01469     asxCONTROL_PROPERTY_TUNER_HDRADIO_SDK_VERSION,
01470     asxCONTROL_PROPERTY_TUNER_HDRADIO_DSP_VERSION
01471 };
01472 
01473 ASX32_API ASX_ERROR ASX_Control_GetProperty( ASX_HANDLE hControl, enum asxCONTROL_PROPERTY eProperty, unsigned long dwProperty1, unsigned long dwProperty2 );
01474 */
01475  // end of Control group
01477 
01478 #if (DISABLE_PLAYREC_CONTROLS!=1)
01479 /*******************************************************************
01480  * Player Control
01481  */
01572 ASX32_API ASX_ERROR ASX_Player_Open( ASX_HANDLE hPlayer, const char *pszFile);
01579 ASX32_API ASX_ERROR ASX_Player_Format_GetString( ASX_HANDLE hPlayer, char **pszFormat);
01589 ASX32_API ASX_ERROR ASX_Player_Format_GetDetails( ASX_HANDLE hPlayer,
01590                                                 enum asxAUDIO_FORMAT *peFormat,
01591                                                 int *pnChannnels,
01592                                                 int *pnSampleRate,
01593                                                 int *pnBitRate);
01607 ASX32_API ASX_ERROR ASX_Player_PreLoad( ASX_HANDLE hPlayer, const enum asxTIMESCALE nType, const unsigned long lPosition);
01613 ASX32_API ASX_ERROR ASX_Player_Start( ASX_HANDLE hPlayer);
01620 ASX32_API ASX_ERROR ASX_Player_Pause( ASX_HANDLE hPlayer);
01627 ASX32_API ASX_ERROR ASX_Player_Stop( ASX_HANDLE hPlayer);
01634 ASX32_API ASX_ERROR ASX_Player_Wait( ASX_HANDLE hPlayer);
01640 ASX32_API ASX_ERROR ASX_Player_Close( ASX_HANDLE hPlayer);
01650 ASX32_API ASX_ERROR ASX_Player_GetPosition( ASX_HANDLE hPlayer, const enum asxTIMESCALE nType, unsigned long *plPosition);
01657 ASX32_API ASX_ERROR ASX_Player_GetState( ASX_HANDLE hPlayer, enum asxPLAYER_STATE *pnState);
01667 ASX32_API ASX_ERROR ASX_Player_SetTimeScale( ASX_HANDLE hPlayer, const float fTimeScale);
01676 ASX32_API ASX_ERROR ASX_Player_GetTimeScale( ASX_HANDLE hPlayer, float *pfTimeScale);
01686 ASX32_API ASX_ERROR ASX_Player_GetFilename( ASX_HANDLE hPlayer, char *pszFilename, const int nStringLength, int *pnRequiredLength );
01694 ASX32_API ASX_ERROR ASX_Player_SetLoopMode( ASX_HANDLE hPlayer, const int nLooping );
01702 ASX32_API ASX_ERROR ASX_Player_GetLoopMode( ASX_HANDLE hPlayer, int *pnLooping );
01703  // end of Player group
01705 
01744 /******************************************************************
01745  * Recorder Control
01746  */
01826 ASX32_API ASX_ERROR ASX_Recorder_Open(
01827     ASX_HANDLE hRecorder, const char *pszFile,
01828     const enum asxFILE_FORMAT nFileType,
01829     const enum asxFILE_MODE nFileMode,
01830     const int nChannels,
01831     const enum asxAUDIO_FORMAT nFormat,
01832     const long lSampleRate,
01833     const long lBitrate,
01834     const enum asxRECORD_MODE nMode
01835     );
01841 ASX32_API ASX_ERROR ASX_Recorder_Start( ASX_HANDLE hRecorder );
01847 ASX32_API ASX_ERROR ASX_Recorder_Stop( ASX_HANDLE hRecorder);
01853 ASX32_API ASX_ERROR ASX_Recorder_Pause( ASX_HANDLE hRecorder);
01859 ASX32_API ASX_ERROR ASX_Recorder_Close( ASX_HANDLE hRecorder);
01867 ASX32_API ASX_ERROR ASX_Recorder_GetPosition( ASX_HANDLE hRecorder, const enum asxTIMESCALE nType, unsigned long *plPosition);
01874 ASX32_API ASX_ERROR ASX_Recorder_GetState( ASX_HANDLE hRecorder, enum asxRECORDER_STATE *peState);
01884 ASX32_API ASX_ERROR ASX_Recorder_GetFilename( ASX_HANDLE hRecorder, char *pszFilename, const int nStringLength, int *pnRequiredLength );
01893 ASX32_API ASX_ERROR ASX_Recorder_EnumerateFormat( ASX_HANDLE hRecorder, const int nIndex, enum asxAUDIO_FORMAT *peFormat, int *pnCount); // end of Recorder group
01895 
01946 #endif
01947 /*******************************************************************
01948  * Meter Control
01949  */
01960 ASX32_API ASX_ERROR ASX_Meter_GetChannels( ASX_HANDLE hMeter, int *pnChannels);
01961 
01981 ASX32_API ASX_ERROR ASX_Meter_GetPeak( ASX_HANDLE hMeter, float *fdB, const int nChannels);
01995 ASX32_API ASX_ERROR ASX_Meter_GetRMS(  ASX_HANDLE hMeter, float *fdB, const int nChannels);
02083 ASX32_API ASX_ERROR ASX_Meter_SetBallistics( ASX_HANDLE hMeter, const enum asxMETER_TYPE nMeterType, const float fAttackTimeMs, const float fDecayTimeMs); // end of Meter group
02085 
02090 /********************************************************************
02091  * Volume Control
02092  */
02103 ASX32_API ASX_ERROR ASX_Volume_GetChannels( ASX_HANDLE hVolume, int *pnChannels);
02111 ASX32_API ASX_ERROR ASX_Volume_SetGain( ASX_HANDLE hVolume, float *fSetdB, const int nChannels);
02119 ASX32_API ASX_ERROR ASX_Volume_GetGain( ASX_HANDLE hVolume, float *fdB, const int nChannels);
02128 ASX32_API ASX_ERROR ASX_Volume_GetRange( ASX_HANDLE hVolume,
02129                              float *fMinGain,
02130                              float *fMaxGain,
02131                              float *fGainStep);
02144 ASX32_API ASX_ERROR ASX_Volume_SetAutofade( ASX_HANDLE hVolume, const float *fSetdB, const int nChannels, const ASX_TIME nDuration, const enum asxVOLUME_AUTOFADE eProfile); // end of Volume group
02146 
02147 /*******************************************************************
02148  * Level Control
02149  */
02161 ASX32_API ASX_ERROR ASX_Level_Set( ASX_HANDLE hLevel, const float fGain);
02168 ASX32_API ASX_ERROR ASX_Level_Get( ASX_HANDLE hLevel, float *fGain);
02177 ASX32_API ASX_ERROR ASX_Level_GetRange( ASX_HANDLE hLevel,
02178                              float *fMinGain,
02179                              float *fMaxGain,
02180                              float *fGainStep);
02181  // end of Level group
02183 
02184 /*******************************************************************
02185  * Multiplexer Control
02186  */
02204 ASX32_API ASX_ERROR ASX_Multiplexer_Enumerate( ASX_HANDLE hMux, const int nIndex, enum asxNODE *peNode, int *pnNodeIndex, int *pnCount);
02212 ASX32_API ASX_ERROR ASX_Multiplexer_Get( ASX_HANDLE hMux, enum asxNODE *peNode, int *pnNodeIndex);
02220 ASX32_API ASX_ERROR ASX_Multiplexer_Set( ASX_HANDLE hMux, const enum asxNODE eNode, const int nNodeIndex); // end of Multiplexer group
02225 /******************************************************************
02226  * Channel Mode Control
02227  */
02241 ASX32_API ASX_ERROR ASX_ChannelMode_Enumerate( ASX_HANDLE hMode, const int nIndex, enum asxCHANNELMODE *peMode, int *pnCount);
02248 ASX32_API ASX_ERROR ASX_ChannelMode_Get( ASX_HANDLE hMode, enum asxCHANNELMODE *peMode);
02255 ASX32_API ASX_ERROR ASX_ChannelMode_Set( ASX_HANDLE hMode, const enum asxCHANNELMODE eMode); // end of ChannelMode group
02257 
02258 /******************************************************************
02259  * Tuner Control
02260  */
02273 ASX32_API ASX_ERROR ASX_Tuner_EnumerateBand( ASX_HANDLE hTuner, const int nIndex, enum asxTUNERBAND *peBand, int *pnCount);
02280 ASX32_API ASX_ERROR ASX_Tuner_GetBand( ASX_HANDLE hTuner, enum asxTUNERBAND *peBand);
02287 ASX32_API ASX_ERROR ASX_Tuner_SetBand( ASX_HANDLE hTuner, const enum asxTUNERBAND eBand);
02295 ASX32_API ASX_ERROR ASX_Tuner_SetFrequency( ASX_HANDLE hTuner, const unsigned long nFreq);
02302 ASX32_API ASX_ERROR ASX_Tuner_GetFrequency( ASX_HANDLE hTuner, unsigned long *plFreq);
02303 
02313 ASX32_API ASX_ERROR ASX_Tuner_GetFrequencyRange(ASX_HANDLE hTuner,
02314             const enum asxTUNERBAND eBand,
02315             unsigned long *plMin, unsigned long *plMax,
02316             unsigned long *plStep);
02317 
02327 ASX32_API ASX_ERROR ASX_Tuner_GetGainRange(ASX_HANDLE hTuner, float *fMin, float *fMax, float *fStep);
02334 ASX32_API ASX_ERROR ASX_Tuner_SetGain(ASX_HANDLE hTuner, const float fTunerGain);
02341 ASX32_API ASX_ERROR ASX_Tuner_GetGain(ASX_HANDLE hTuner, float *pfTunerGain);
02348 ASX32_API ASX_ERROR ASX_Tuner_GetRFLevel(ASX_HANDLE hTuner, float *nRFLevel);
02355 ASX32_API ASX_ERROR ASX_Tuner_GetRawRFLevel(ASX_HANDLE hTuner, int *nRawRFLevel);
02365 ASX32_API ASX_ERROR ASX_Tuner_GetStatus(
02366             ASX_HANDLE hTuner,
02367             unsigned int *puErrorStatusMask,
02368             unsigned int *puErrorStatus);
02377 ASX32_API ASX_ERROR ASX_Tuner_GetMode(ASX_HANDLE hTuner,
02378             const enum asxTUNERMODE eMode,
02379             enum asxTUNERMODE *peSetting);
02380 
02389 ASX32_API ASX_ERROR ASX_Tuner_SetMode(ASX_HANDLE hTuner,
02390             const enum asxTUNERMODE eMode,
02391             const enum asxTUNERMODE eSetting);
02392 
02401 ASX32_API ASX_ERROR ASX_Tuner_EnumerateDeemphasis(ASX_HANDLE hTuner,
02402             const int nIndex,
02403             enum asxTUNERDEEMPHASIS *peDeemphasis,
02404             int *pnCount);
02405 
02412 ASX32_API ASX_ERROR ASX_Tuner_SetDeemphasis(ASX_HANDLE hTuner,
02413             const enum asxTUNERDEEMPHASIS eDeemphasis
02414             );
02415 
02422 ASX32_API ASX_ERROR ASX_Tuner_GetDeemphasis(ASX_HANDLE hTuner,
02423             enum asxTUNERDEEMPHASIS *peDeemphasis
02424             );
02425 
02434 ASX32_API ASX_ERROR ASX_Tuner_EnumerateProgram(ASX_HANDLE hTuner,
02435             const int nIndex,
02436             enum asxTUNERPROGRAM *peProgram,
02437             int *pnCount);
02438 
02445 ASX32_API ASX_ERROR ASX_Tuner_SetProgram(ASX_HANDLE hTuner,