ASX Version4.20.14

asx.h

Go to the documentation of this file.
00001 /*****************************************************************************************
00002 * $Header: /home/eliot/asi/repo/cvsrepo/Repository/apps/asx/asx.h,v 1.691 2012/01/23 04:12:48 as-sgt 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 
00172 #ifdef __cplusplus
00173 extern "C" {
00174 #endif
00175 
00176 // The following ifdef block is the standard way of creating macros which make exporting
00177 // from a DLL simpler. All files within this DLL are compiled with the ASX32_EXPORTS
00178 // symbol defined on the command line. this symbol should not be defined on any project
00179 // that uses this DLL. This way any other project whose source files include this file see
00180 // ASX32_API functions as being imported from a DLL, wheras this DLL sees symbols
00181 // defined with this macro as being exported.
00182 #ifdef ASX32_EXPORTS
00183 #define ASX32_API __declspec(dllexport)
00184 #endif
00185 #ifdef ASX32_IMPORTS
00186 #define ASX32_API __declspec(dllimport)
00187 #endif
00188 #ifndef ASX32_API
00189 #define ASX32_API
00190 #endif
00191 
00192 /**************************
00193  * Defines
00194  **************************/
00199 #define ASX_SYSTEM_TYPE_HPI 0       ///< Use this to select ASI's HPI interface when calling ASX_System_Create().
00200 #define ASX_SYSTEM_TYPE_WAVE 1      ///< Use this to select Microsoft's WAVE interface when calling ASX_System_Create().
00201 #define ASX_SYSTEM_TYPE_ALSA 2      ///< Use this to select the Linux ALSA interface when calling ASX_System_Create().
00202 #define ASX_SYSTEM_TYPE_DIRECTX 3   ///< Use this to select Microsoft's DirectX interface when calling ASX_System_Create().
00203 #define ASX_SYSTEM_TYPE_PORTAUDIO 4 ///< Use this to select the PortAudio interface when calling ASX_System_Create().
00204 #define ASX_SYSTEM_TYPE_PCXTOOLS 5  ///< Use this to select Digigram's PCX interface when calling ASX_System_Create().
00205 #define ASX_SYSTEM_TYPE_SNMP 6      ///< Use this to select Cobranet SNMP interface when calling ASX_System_Create().
00206 #define ASX_SYSTEM_TYPE_HPIUDP 7    ///< Use this to select ASI's HPI interface over UDP when calling ASX_System_Create().  Also supports HPI.
00207 #define ASX_SYSTEM_TYPE_DUMMY  8    ///< Dummy backend
00208 #define ASX_SYSTEM_TYPE_ANY 9       ///< Wild card - any subsystem (reserved).
00209 #define ASX_SYSTEM_TYPE_ASIO 10     ///< Use this to select Stienberg's ASIO interface when calling ASX_System_Create().
00210 #define ASX_SYSTEM_TYPE_AVB_1722_1 11   ///< Use this to select the IEEE 1722.1 system for controlling AVB devices when calling ASX_System_Create().
00211 #define ASX_SYSTEM_TYPE_COUNT 12    ///< Indicates the number of subsystems defined.
00212  // end of SubSystemTypes group
00213 
00214 #define ASX_SHORT_STRING 32     ///< Short string size for adapter, node, control, enum translations.
00215 #define ASX_LONG_STRING 128         ///< Long string size for error strings, filenames and PADs strings.
00216 #define ASX_LONGLONG_STRING 256     ///< LongLong string size for PADs comment string.
00217 
00218 #ifdef HPI_OS_WIN32_USER
00219 #include <crtdbg.h>
00220 #endif
00221 
00222 #ifndef _RPT0
00223 #define _RPT0(l,s) printf(s)        ///< A debug helper function, 0 arguments.
00224 #define _RPT1(l,s,d1) printf(s,d1)  ///< A debug helper function, 1 argument.
00225 #endif
00226 
00227 /**************************
00228  * Enums
00229  **************************/
00230 
00232 enum asxERROR {
00233     asxERROR_NO_ERROR=0,            
00234     // leave a gap here so that any 8-bit bit enums will never map to error codes.
00235     asxERROR_ASXOBJECT=256,         
00236     asxERROR_INDEX_OUT_OF_RANGE=257,    
00237     asxERROR_UNIMPLEMENTED=258,     
00238     asxERROR_COMMUNICATING_WITH_DEVICE=259, 
00239     asxERROR_STARTING_DEVICE=260,       
00240     asxERROR_NOT_OPEN=261,          
00241     asxERROR_ALREADY_OPEN=262,      
00242     asxERROR_INVALID_FORMAT=263,        
00243     asxERROR_INTERNAL_BUFFERING_ERROR=264,  
00244     asxERROR_AES18=265,         
00245     asxERROR_INVALID_OPERATION=266,     
00246     asxERROR_ENUMERATE_INDEX_OUT_OF_RANGE=267,
00247     asxERROR_BUFFER_TOO_SMALL=268,      
00248     asxERROR_OUTOFMEMORY=269,       
00249     asxERROR_DEPRECATED=270,        
00250     asxERROR_TOO_MANY_CLIENTS=271,      
00251 
00252     asxERROR_COBRANET_NODE_NOT_FOUND=272,   
00253     asxERROR_COBRANET_NODE_FOUND=273,   
00254     asxERROR_NO_IP_ADDRESSES_AVAILABLE=274, 
00255     asxERROR_IP_ASSIGNED=275,       
00256     asxERROR_IP_CHANGED=276,        
00257     asxERROR_IP_AUTOASSIGN_DISABLED=277,    
00258     asxERROR_PCAP_ERROR=278,        
00259     asxERROR_DISCO_DLL_NOT_FOUND=279,   
00260     asxERROR_HOST_NOT_FOUND=280,        
00261     asxERROR_COBRANET_NODE_UNREACHABLE=281, 
00262     asxERROR_DUPLICATE_ADAPTER_INDEX=282,   
00263     asxERROR_AVDECC_DLL_NOT_FOUND = 283,    
00264 
00265     asxERROR_INVALID_CONTROL=304,           
00266     asxERROR_INVALID_CONTROL_VALUE=305,     
00267     asxERROR_INVALID_CONTROL_NOT_FOUND=306,     
00268     asxERROR_INVALID_NUMBER_OF_CHANNELS=307,    
00269     asxERROR_INVALID_CONTROL_ATTRIBUTE=308,     
00270     asxERROR_UNSUPPORTED_CONTROL_ATTRIBUTE=309,     
00271     asxERROR_INVALID_CONTROL_OPERATION=310,     
00272     asxERROR_CONTROL_NOT_READY=311,         
00273 
00274     asxERROR_FILE_OPEN_FAILED=336,          
00275 
00276     asxERROR_PLAYER_INTERNAL_STATE_FAILURE=384, 
00277     asxERROR_PLAYER_TIME_OUT=385,           
00278     asxERROR_PLAYER_OUT_OF_SEQUENCE_CALL=386,   
00279     asxERROR_PLAYER_TWAV=387,           
00280     asxERROR_PLAYER_NOFILE=388,         
00281     asxERROR_PLAYER_INVALIDFILEFORMAT=389,      
00282     asxERROR_PLAYER_UNSUPPORTEDFORMAT=390,      
00283     asxERROR_PLAYER_FILEREADERROR=391,      
00284     asxERROR_PLAYER_FILEOPENERROR=392,      
00285 
00286     asxERROR_RECORDER_INTERNAL_STATE_FAILURE=448,   
00287     asxERROR_RECORDER_TIME_OUT=449,         
00288     asxERROR_RECORDER_OUT_OF_SEQUENCE_CALL=450, 
00289     asxERROR_RECORDER_TWAV=451,         
00290     asxERROR_RECORDER_FILECREATEERROR=452,      
00291     asxERROR_RECORDER_FILEWRITEERROR=453,       
00292     asxERROR_RECORDER_FORMATMISMATCH=454,       
00293     asxERROR_RECORDER_INVALIDFILENAME=455,      
00294 
00295     asxERROR_MIXER_SAVECONTROLSTATE=460,        
00296 
00297     asxERROR_UNKNOWN=4095               
00298 };
00299 
00301 enum asxNODE {
00302     asxNODE_NONE=0,         
00303     asxNODE_INVALID=400,        
00304 
00305     asxNODE_ADAPTER=401,        
00306     asxNODE_PLAYER=402,     
00307     asxNODE_LINE_IN=403,        
00308     asxNODE_AESEBU_IN=404,      
00309     asxNODE_TUNER_IN=405,       
00310     asxNODE_RADIO_FREQ_IN=406,  
00311     asxNODE_CLOCK_SOURCE_IN=407,    
00312     asxNODE_BITSTREAM_IN=408,   
00313     asxNODE_MICROPHONE_IN=409,  
00314     asxNODE_COBRANET_IN=410,    
00315     asxNODE_COBRANET_RECEIVER=411,  
00316     asxNODE_ANALOG_IN=412,      
00317     asxNODE_SDI_IN=413,     
00318     asxNODE_RTP_DESTINATION_IN=414, 
00319     asxNODE_INTERNAL_IN=416,    
00320     asxNODE_AVB_IN_STREAM=417,  
00321     asxNODE_BLULINK_IN=418,         
00322     asxNODE_AVB_IN_AUDIO = 419, 
00323 
00324     asxNODE_LAST_SOURCE_NODE=420,   
00325 
00326     asxNODE_FIRST_DEST_NODE=450,    
00327     asxNODE_RECORDER=450,       
00328     asxNODE_LINE_OUT=451,       
00329     asxNODE_AESEBU_OUT=452,     
00330     asxNODE_RADIO_FREQ_OUT=453, 
00331     asxNODE_SPEAKER_OUT=454,    
00332     asxNODE_COBRANET_OUT=455,   
00333     asxNODE_COBRANET_TRANSMITTER=456,
00334     asxNODE_ANALOG_OUT=457,     
00335     asxNODE_SDI_OUT=458,        
00336     asxNODE_RTP_SOURCE_OUT=459, 
00337     asxNODE_AVB_OUT_STREAM=460, 
00338     asxNODE_INTERNAL_OUT=461,   
00339     asxNODE_BLULINK_OUT=462,        
00340     asxNODE_AVB_OUT_AUDIO = 463,    
00341 
00342     asxNODE_LAST_DEST_NODE=464  
00343 };
00344 
00346 enum asxCONTROL {
00347     asxCONTROL_INVALID=500,         
00348 
00349     asxCONTROL_CONNECTION=501,      
00350     asxCONTROL_VOLUME=502,          
00351     asxCONTROL_METER=503,           
00352     asxCONTROL_MUTE=504,            
00353     asxCONTROL_MULTIPLEXER=505,     
00354     asxCONTROL_AESEBU_TRANSMITTER=506,  
00355     asxCONTROL_AESEBU_RECEIVER=507,     
00356     asxCONTROL_LEVEL=508,           
00357     asxCONTROL_TUNER=509,           
00358     asxCONTROL_RDS=510,         
00359     asxCONTROL_VOX=511,         
00360     asxCONTROL_AES18_TRANSMITTER=512,   
00361     asxCONTROL_AES18_RECEIVER=513,      
00362     asxCONTROL_AES18_BLOCK_GENERATOR=514,   
00363     asxCONTROL_CHANNEL_MODE=515,        
00364     asxCONTROL_BIT_STREAM=516,      
00365     asxCONTROL_SAMPLE_CLOCK=517,        
00366     asxCONTROL_MICROPHONE=518,      
00367     asxCONTROL_PARAMETRIC_EQ=519,       
00368     asxCONTROL_COMPANDER=520,       
00369     asxCONTROL_COBRANET=521,        
00370     asxCONTROL_PLAYER=522,          
00371     asxCONTROL_RECORDER=523,        
00372     asxCONTROL_GPIO=524,            
00373     asxCONTROL_RESERVED_525=525,        
00374     asxCONTROL_RESERVED_526=526,        
00375     asxCONTROL_RESERVED_527=527,        
00376     asxCONTROL_RESERVED_528=528,        
00377     asxCONTROL_GENERIC=529,         
00378     asxCONTROL_TONEDETECTOR=530,        
00379     asxCONTROL_SILENCEDETECTOR=531,     
00380     asxCONTROL_COBRANET_TRANSMITTER=532,    
00381     asxCONTROL_COBRANET_RECEIVER=533,   
00382     asxCONTROL_PAD=534,         
00383     asxCONTROL_SRC=535,         
00384     asxCONTROL_BLOCK=536,           
00385 
00386     asxCONTROL_LAST_CONTROL=537
00387 };
00388 
00389 /****************************************
00390  * Various control enums
00391 *****************************************/
00392 
00394 enum asxVOLUME_AUTOFADE {
00395     asxVOLUME_AUTOFADE_LOG,     
00396     asxVOLUME_AUTOFADE_LINEAR   
00397 };
00398 
00400 enum asxMETER_TYPE {
00401     asxMETER_PEAK,  
00402     asxMETER_RMS    
00403 };
00404 
00406 enum asxCHANNELMODE {
00407     asxCHANNELMODE_ILLEGAL=1000,        
00408     asxCHANNELMODE_NORMAL=1001,     
00409     asxCHANNELMODE_SWAP=1002,       
00410     asxCHANNELMODE_STEREOTOLEFT=1003,   
00411     asxCHANNELMODE_STEREOTORIGHT=1004,  
00412     asxCHANNELMODE_LEFTTOSTEREO=1005,   
00413     asxCHANNELMODE_RIGHTTOSTEREO=1006   
00414 };
00416 enum asxADAPTERMODE {
00417     asxADAPTERMODE_ILLEGAL=1100,        
00418     asxADAPTERMODE_4_PLAY=1101,     
00419     asxADAPTERMODE_6_PLAY=1102,     
00420     asxADAPTERMODE_8_PLAY=1103,     
00421     asxADAPTERMODE_9_PLAY=1104,     
00422     asxADAPTERMODE_12_PLAY=1105,        
00423     asxADAPTERMODE_16_PLAY=1106,        
00424     asxADAPTERMODE_1_PLAY=1107,     
00425     asxADAPTERMODE_MODE_1=1108,     
00426     asxADAPTERMODE_MODE_2=1109,     
00427     asxADAPTERMODE_MODE_3=1110,     
00428     asxADAPTERMODE_MULTICHANNEL=1111,   
00429     asxADAPTERMODE_MONO=1112,       
00430     asxADAPTERMODE_LOW_LATENCY=1113, 
00431     asxADAPTERMODE_24_PLAY=1114,        
00432     asxADAPTERMODE_32_PLAY = 1115       
00433 };
00435 // NOTE - the order of these enums MUST match the order of the HPI band enums or the code will FAIL!!
00436 enum asxTUNERBAND {
00437     asxTUNERBAND_AM=1200,       
00438     asxTUNERBAND_FM=1201,       
00439     asxTUNERBAND_TV=1202,       
00440     asxTUNERBAND_FM_STEREO=1203,    
00441     asxTUNERBAND_AUX=1204,      
00442     asxTUNERBAND_TV_PAL_BG=1205,    
00443     asxTUNERBAND_TV_PAL_I=1206, 
00444     asxTUNERBAND_TV_PAL_DK=1207,    
00445     asxTUNERBAND_TV_SECAM_L=1208,   
00446     asxTUNERBAND_DAB=1209
00447 };
00449 enum asxTUNERDEEMPHASIS {
00450     asxTUNERDEEMPHASIS_50=1240, 
00451     asxTUNERDEEMPHASIS_75=1241, 
00452     asxTUNERDEEMPHASIS_NONE=1242,   
00453 };
00455 enum asxTUNERMODE {
00456     asxTUNERMODE_RSS=1250,      
00457     asxTUNERMODE_RSS_ENABLE=1251,   
00458     asxTUNERMODE_RSS_DISABLE=1252   
00459 };
00461 enum asxTUNERPROGRAM {
00462     asxTUNERPROGRAM_NONE=1260,  
00463     asxTUNERPROGRAM_1=1261,     
00464     asxTUNERPROGRAM_2=1262,     
00465     asxTUNERPROGRAM_3=1263,     
00466     asxTUNERPROGRAM_4=1264,     
00467     asxTUNERPROGRAM_5=1265,     
00468     asxTUNERPROGRAM_6=1266,     
00469     asxTUNERPROGRAM_7=1267,     
00470     asxTUNERPROGRAM_8=1268,     
00471 };
00473 enum asxTUNERHDBLEND {
00474     asxTUNERHDBLEND_AUTO=1280,  
00475     asxTUNERHDBLEND_ANALOG=1281,    
00476 };
00477 
00478 
00480 enum asxSAMPLE_CLOCK_SOURCE {
00481     asxSAMPLE_CLOCK_SOURCE_ADAPTER=1400,    
00482     asxSAMPLE_CLOCK_SOURCE_AESEBUSYNC=1401, 
00483     asxSAMPLE_CLOCK_SOURCE_WORD=1402,   
00484     asxSAMPLE_CLOCK_SOURCE_WORD_HEADER=1403,
00485     asxSAMPLE_CLOCK_SOURCE_SMPTE=1404,  
00486     asxSAMPLE_CLOCK_SOURCE_NETWORK=1405,    
00487     asxSAMPLE_CLOCK_SOURCE_AESEBUAUTO=1406, 
00488     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT1=1407,
00489     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT2=1408,
00490     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT3=1409,
00491     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT4=1410,
00492     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT5=1411,
00493     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT6=1412,
00494     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT7=1413,
00495     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT8=1414,
00496     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT9=1415,
00497     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT10=1416,
00498     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT11=1417,
00499     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT12=1418,
00500     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT13=1419,
00501     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT14=1420,
00502     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT15=1421,
00503     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT16=1422,
00504     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT17=1423,
00505     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT18=1424,
00506     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT19=1425,
00507     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT20=1426,
00508     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT21=1427,
00509     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT22=1428,
00510     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT23=1429,
00511     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT24=1430,
00512     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT25=1431,
00513     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT26=1432,
00514     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT27=1433,
00515     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT28=1434,
00516     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT29=1435,
00517     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT30=1436,
00518     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT31=1437,
00519     asxSAMPLE_CLOCK_SOURCE_AESEBUINPUT32=1438,
00520     asxSAMPLE_CLOCK_SOURCE_LOCAL=1439,        
00521     asxSAMPLE_CLOCK_SOURCE_PREV_MODULE=1440,  
00522     asxSAMPLE_CLOCK_SOURCE_UNDEFINED=1441,  
00523     asxSAMPLE_CLOCK_SOURCE_LIVEWIRE=1442,   
00524     asxSAMPLE_CLOCK_SOURCE_BLULINK=1443 
00525 };
00526 
00528 enum asxAESEBU_FORMAT {
00529     asxAESEBU_FORMAT_AESEBU=1450,       
00530     asxAESEBU_FORMAT_SPDIF=1451,        
00531     asxAESEBU_FORMAT_UNDEFINED=1452     
00532 };
00534 enum asxEQBANDTYPE {
00535     asxEQBANDTYPE_BYPASS=1460,      
00536     asxEQBANDTYPE_LOWSHELF=1461,        
00537     asxEQBANDTYPE_HIGHSHELF=1462,       
00538     asxEQBANDTYPE_EQUALIZER=1463,       
00539     asxEQBANDTYPE_LOWPASS=1464,         
00540     asxEQBANDTYPE_HIGHPASS=1465,        
00541     asxEQBANDTYPE_BANDPASS=1466,        
00542     asxEQBANDTYPE_BANDSTOP=1467,        
00543 };
00545 enum asxCOBRANET_MODE {
00546     asxCOBRANET_MODE_NETWORK=1470,      
00547     asxCOBRANET_MODE_TETHERED=1471      
00548 };
00550 enum asxADPROPENUM_MODE {
00551     asxADPROPENUM_MODE_PROPERTIES=1480, 
00552     asxADPROPENUM_MODE_SETTINGS=1481    
00553 };
00555 enum asxADPROPENUM_SSX2 {
00556     asxADPROPENUM_SSX2_OFF=1488,        
00557     asxADPROPENUM_SSX2_ON=1489      
00558 };
00560 enum asxCOBRANET_LATENCY {
00561     asxCOBRANET_LATENCY_133ms=1490,     
00562     asxCOBRANET_LATENCY_266ms=1491,     
00563     asxCOBRANET_LATENCY_533ms=1492      
00564 };
00565 /****************************************
00566  * Various player and recorder enums
00567 *****************************************/
00568 
00570 enum asxFILE_FORMAT {
00571     asxFILE_FORMAT_WAV=10000,   
00572     asxFILE_FORMAT_RAW=10001    
00573 };
00575 enum asxFILE_MODE {
00576     asxFILE_MODE_CREATE=10100,  
00577     asxFILE_MODE_APPEND=10101   
00578 };
00580 enum asxAUDIO_FORMAT {
00581     asxAUDIO_FORMAT_PCM8=10200,     
00582     asxAUDIO_FORMAT_PCM16=10201,        
00583     asxAUDIO_FORMAT_PCM24=10202,        
00584     asxAUDIO_FORMAT_PCM32=10203,        
00585     asxAUDIO_FORMAT_PCM32_FLOAT=10204,  
00586     asxAUDIO_FORMAT_MPEG_L2=10205,      
00587     asxAUDIO_FORMAT_MPEG_L3=10206,      
00588     asxAUDIO_FORMAT_MPEG_AACPLUS=10207, 
00589     asxAUDIO_FORMAT_DOLBY_AC2=10208,    
00590     asxAUDIO_FORMAT_PCM20=10209,        
00591     asxAUDIO_FORMAT_NONE=10210      
00592 };
00593 
00594 
00596 enum asxRECORD_MODE {
00597     asxRECORD_MODE_STEREO=10300,        
00598     asxRECORD_MODE_JOINT_STEREO=10301,  
00599     asxRECORD_MODE_DUAL_MONO=10302,     
00600     asxRECORD_MODE_MONO=10303,      
00601     asxRECORD_MODE_DONT_CARE=10304      
00602 };
00604 enum asxPLAYER_STATE{
00605     asxPLAYER_INIT=10400,           
00606     asxPLAYER_OPEN=10401,           
00607     asxPLAYER_PREFILL=10402,        
00608     asxPLAYER_RUNNING=10403,        
00609     asxPLAYER_PAUSED=10404,         
00610     asxPLAYER_DONE=10405,           
00611     asxPLAYER_DESTROY=10406         
00612 };
00614 enum asxRECORDER_STATE{
00615     asxRECORDER_INIT=10500,         
00616     asxRECORDER_OPEN=10501,         
00617     asxRECORDER_RUNNING=10502,      
00618     asxRECORDER_PAUSED=10503,       
00619     asxRECORDER_DONE=10504,         
00620     asxRECORDER_DESTROY=10505       
00621 };
00622 
00624 enum asxTIMESCALE {
00625     asxTIMESCALE_INVALID=10600,         
00626     asxTIMESCALE_BYTES=10601,           
00627     asxTIMESCALE_MILLISECONDS=10602,        
00628     asxTIMESCALE_SAMPLES=10603,         
00629     asxTIMESCALE_BYTES_REMAINING=10604,     
00630     asxTIMESCALE_MILLISECONDS_REMAINING=10605,  
00631     asxTIMESCALE_SAMPLES_REMAINING=10606        
00632 };
00633 
00635 enum asxSAMPLE_RATE {
00636     asxSAMPLE_RATE_8000=10700,
00637     asxSAMPLE_RATE_11025=10701,
00638     asxSAMPLE_RATE_16000=10702,
00639     asxSAMPLE_RATE_22050=10703,
00640     asxSAMPLE_RATE_24000=10704,
00641     asxSAMPLE_RATE_32000=10705,
00642     asxSAMPLE_RATE_44100=10706,
00643     asxSAMPLE_RATE_48000=10707,
00644     asxSAMPLE_RATE_64000=10708,
00645     asxSAMPLE_RATE_88200=10709,
00646     asxSAMPLE_RATE_96000=10710,
00647     asxSAMPLE_RATE_192000=10711,
00648     asxSAMPLE_RATE_12000=10712,
00649     asxSAMPLE_RATE_176400=10713,
00650     asxSAMPLE_RATE_UNDEFINED=10799
00651 };
00652 
00654 enum asxMSG_LOGGING {
00655     asxMSG_LOGGING_DISABLE=10800,   
00656     asxMSG_LOGGING_ERROR=10801, 
00657     asxMSG_LOGGING_WARNING=10802,   
00658     asxMSG_LOGGING_NOTICE=10803,    
00659     asxMSG_LOGGING_INFO=10804,  
00660     asxMSG_LOGGING_DEBUG=10805, 
00661     asxMSG_LOGGING_VERBOSE=10806    
00662 };
00663 
00664 /******************************************************************************************************
00665  * The following enums apply to bitfields and other settings and therefore not translatable by #ASXSTRING_EnumToString();
00666  ******************************************************************************************************/
00668 enum asxPLAYER_FLAGS {
00669     asxPLAYER_FILE_COMPLETE=1,      
00670     asxPLAYER_FILELIST_COMPLETE=2,      
00671     asxPLAYER_FILE_START=4,         
00672 };
00673 
00675 enum asxTUNER_STATUS {
00676     asxTUNER_STATUS_VIDEO_VALID=1,              
00677     asxTUNER_STATUS_VIDEO_COLOR_PRESENT=2,          
00678     asxTUNER_STATUS_VIDEO_IS_60HZ=4,            
00679     asxTUNER_STATUS_VIDEO_HORZ_SYNC_MISSING=8,      
00680     asxTUNER_STATUS_PLL_LOCKED=16,              
00681     asxTUNER_STATUS_FM_STEREO=32,               
00682     asxTUNER_STATUS_DIGITAL=64,             
00683     asxTUNER_STATUS_MULTIPROGRAM=128,           
00684     asxTUNER_STATUS_FIRMWARE_LOADING=256            
00685 };
00686 
00688 enum asxTUNER_RDS_TYPE {
00689     asxTUNER_RDS_TYPE_RDS=0,        
00690     asxTUNER_RDS_TYPE_RBDS=1,       
00691 };
00692 
00694 enum asxAESEBU_STATUS {
00695     asxAESEBU_ERROR=0x01,               
00696     asxAESEBU_ERROR_NOT_LOCKED=0x02,        
00697     asxAESEBU_ERROR_POOR_QUALITY=0x04,      
00698     asxAESEBU_ERROR_PARITY_ERROR=0x08,      
00699     asxAESEBU_ERROR_BIPHASE_VIOLATION=0x10,     
00700     asxAESEBU_ERROR_VALIDITY=0x20,          
00701     asxAESEBU_ERROR_CHANNELSTATUS_CRC=0x40      
00702 };
00703 
00705 enum asxCOMPANDER_INDEX {
00706     asxCOMPANDER_INDEX_NOISEGATE=0, 
00707     asxCOMPANDER_INDEX_COMPANDER=1  
00708 };
00709 
00711 enum asxHANDLE_TYPE {
00712     asxHANDLE_INVALID,  
00713     asxHANDLE_SYSTEM,   
00714     asxHANDLE_ADAPTER,  
00715     asxHANDLE_MIXER,    
00716     asxHANDLE_NODE,     
00717     asxHANDLE_CONTROL,  
00718     asxHANDLE_LAST      
00719     };
00720 
00722 enum asxUCONTROL_PTYPE {
00723     asxPARAM_TYPE_NONE       = 0,
00724     asxPARAM_TYPE_INTEGER    = 3,
00725     asxPARAM_TYPE_FLOAT      = 4,
00726     asxPARAM_TYPE_DOUBLE     = 5,
00727     asxPARAM_TYPE_STRING     = 6,
00728     //asxPARAM_TYPE_ENUMERATED = 7
00729     asxPARAM_TYPE_IP4_ADDRESS= 8,
00730     asxPARAM_TYPE_IP6_ADDRESS= 9,
00731     asxPARAM_TYPE_MAC_ADDRESS= 10,
00732     asxPARAM_TYPE_BOOLEAN= 11
00733 };
00734 
00736 enum asxUCONTROL_RTYPE {
00737     asxPARAM_RANGE_NONE         = 0,
00738     asxPARAM_RANGE_STEPPED_INTEGER      = 1,
00739     asxPARAM_RANGE_STEPPED_FLOAT        = 2,
00740     asxPARAM_RANGE_ENUMERATED_INTEGER   = 3,
00741     asxPARAM_RANGE_ENUMERATED_FLOAT     = 4,
00742     asxPARAM_RANGE_ENUMERATED       = 5,
00743     asxPARAM_RANGE_STRING_LENGTH        = 6,
00744     asxPARAM_RANGE_NUMBER_OF_BITS       = 7
00745 };
00746 
00748 enum asxUCONTROL_PFLAGS {
00749     asxPARAM_FLAG_WRITEABLE   = 1, 
00750     asxPARAM_FLAG_READABLE    = 2, 
00751     asxPARAM_FLAG_VOLATILE    = 4 
00752 };
00753 
00755 enum asxCOBRANET_IFSTATUS {
00756     asxCOBRANET_IFSTATUS_LINK_ESTABLISHED=0x01, 
00757     asxCOBRANET_IFSTATUS_FULL_DUPLEX=0x02,      
00758     asxCOBRANET_IFSTATUS_ACTIVE_CONNECTION=0x04 
00759 };
00760 
00762 enum asxAVDECC_NOTIFY {
00763     asxAVDECC_NOTIFY_NO_MATCH_FOUND = 0,                
00764     asxAVDECC_NOTIFY_END_STATION_CONNECTED = 1,         
00765     asxAVDECC_NOTIFY_END_STATION_DISCONNECTED = 2,      
00766     asxAVDECC_NOTIFY_COMMAND_TIMEOUT = 3,               
00767     asxAVDECC_NOTIFY_RESPONSE_RECEIVED = 4,             
00768     asxAVDECC_NOTIFY_END_STATION_READ_COMPLETED = 5,    
00769     asxAVDECC_NOTIFY_UNSOLICITED_RESPONSE_RECEIVED = 6, 
00770     asxAVDECC_NOTIFY_UNKNOWN = 7,                       
00771     asxAVDECC_NOTIFY_TOTAL_NUM_OF_NOTIFICATIONS = 8
00772 };
00773 
00775 enum asxADAPTER_PROPERTY {
00776         asxADAPTER_PROPERTY_ERRATA_1=1, 
00777         asxADAPTER_PROPERTY_SSX2_SETTING=2, 
00778         asxADAPTER_PROPERTY_SYNC_HEADER_CONNECTIONS=3, 
00779         asxADAPTER_PROPERTY_SUPPORT_SSX2=4, 
00780         asxADAPTER_PROPERTY_SUPPORTS_FW_UPDATE=5, 
00781         asxADAPTER_PROPERTY_FIRMWARE_ID=6, 
00782     asxADAPTER_PROPERTY_SUPPORTS_SNMP = 7 
00783 };
00784 
00785 /**************************
00786  * Typedefs
00787  **************************/
00788 
00789 typedef void *ASX_HANDLE;       
00790 typedef enum asxERROR ASX_ERROR;    
00791 typedef enum asxNODE ASX_NODE;      
00792 typedef int ASX_BOOL;
00793 typedef int ASX_TIME;           
00794 
00795 typedef void ASX_ERROR_CALLBACK(
00796         ASX_HANDLE hASX_Object,
00797         const char *pszCallingFunction,
00798         void *pUser1,
00799         void *pUser2);
00801 typedef void ASX_AVDECC_NOTFICATION_CALLBACK(
00802         ASX_HANDLE hASX_Object,
00803         enum asxAVDECC_NOTIFY notify,
00804         const char *pszMsg,
00805         void *pUser1,
00806         void *pUser2);
00808 typedef void ASX_PLAYER_CALLBACK(
00809         ASX_HANDLE hASX_Player_Object,
00810         const enum asxPLAYER_FLAGS flags,
00811         void *pUser1);
00812 
00813 struct asxParameterRangeInfo_NamedEnumerated {
00814         int value;
00815         char name[ASX_SHORT_STRING];
00816 };
00817 
00818 struct asxParameterRangeInfo {
00819     enum asxUCONTROL_RTYPE type;
00820     union {
00821         struct {
00822             int min;
00823             int max;
00824             int step;
00825         } integer;
00826         struct {
00827             unsigned int count;
00828             int *value;
00829         } enumerated_integer;
00830         struct {
00831             unsigned int count;
00832             float *value;
00833         } enumerated_float;
00834         struct {
00835             unsigned int count;
00836             struct asxParameterRangeInfo_NamedEnumerated *enums;
00837         } enumerated;
00838         struct {
00839             float fmin;
00840             float fmax;
00841             float fstep;
00842         } floating;
00843         struct {
00844             unsigned int max_len;
00845         } string;
00846     } u;
00847 };
00848 
00849 struct asxParameterValue {
00850     enum asxUCONTROL_PTYPE eType;
00851     unsigned int uItems;
00852     size_t size;
00853     void *value;
00854 };
00855 
00856 struct asxCobranetIpAutoassignParameters {
00857     char addr_start[20];
00858     char addr_end[20];
00859     int autoassign;
00860 };
00861 
00862 #ifndef ASX_H_DEFS_ONLY
00863 /**************************************************************************************
00864  * Functions
00865  **************************************************************************************/
00866 
00867 /*******************************************************************/
00879 ASX32_API int ASX_System_SupportsSubSystem(const int asxSystemType);
00880 
00890 ASX32_API ASX_ERROR ASX_System_Create( const int asxSystemType, ASX_HANDLE *phSystem );
00891 
00900 ASX32_API ASX_ERROR ASX_System_CreateSubSystem( const int asxSystemType, ASX_HANDLE *pio_hSystem );
00901 
00908 ASX32_API ASX_ERROR ASX_System_SetHostNetworkInterface( const char *szInterface );
00909 
00916 ASX32_API ASX_ERROR ASX_System_SetAvdeccInterface(const char *szInterface);
00917 
00927 ASX32_API ASX_ERROR ASX_System_Delete( ASX_HANDLE hSystem );
00928 
00942 ASX32_API ASX_ERROR ASX_System_RegisterErrorCallback(   ASX_HANDLE hSystem,
00943                             ASX_ERROR_CALLBACK *pCallback,
00944                             void *pUser1,
00945                             void *pUser2);
00946 
00955 ASX32_API ASX_ERROR ASX_System_RegisterAvdeccNotificationCallback(ASX_HANDLE hSystem,
00956     ASX_AVDECC_NOTFICATION_CALLBACK *pCallback,
00957     void *pUser1,
00958     void *pUser2);
00959 
00978 ASX32_API ASX_ERROR ASX_System_GetName( ASX_HANDLE hSystem,
00979                     char *pszName,
00980                     const int nStringLength,
00981                     int *pnRequiredLength );
00995 ASX32_API ASX_ERROR ASX_System_GetVersion( ASX_HANDLE hSystem,
00996                       char *pszSystemVersion,
00997                       const int nSystemVersionLength,
00998                       int *pnRequiredSystemVersionLength,
00999                       char *pszSubSystemVersion,
01000                       const int nSubSystemVersionLength,
01001                       int *pnRequiredSubSystemVersionLength);
01008 ASX32_API ASX_ERROR ASX_System_GetAdapterCount( ASX_HANDLE hSystem, int *pnCount );
01016 ASX32_API ASX_ERROR ASX_System_GetAdapter( ASX_HANDLE hSystem, const int nAdapter, ASX_HANDLE *p_hAdapter );
01023 ASX32_API ASX_ERROR ASX_System_SetMessageLogging( ASX_HANDLE hSystem, const enum asxMSG_LOGGING eLog);
01030 ASX32_API ASX_ERROR ASX_System_GetMessageLogging( ASX_HANDLE hSystem, enum asxMSG_LOGGING *eLog);
01038 ASX32_API ASX_ERROR ASX_System_SetCobranetAutoassignParms( const struct asxCobranetIpAutoassignParameters *pCAP );
01044 ASX32_API ASX_ERROR ASX_System_GetCobranetAutoassignParms( struct asxCobranetIpAutoassignParameters *pCAP );
01045  // end of System group
01047 
01048 
01049 /*******************************************************************
01050  * Handle functions
01051  */
01061 ASX32_API enum asxHANDLE_TYPE ASX_Handle_GetType(ASX_HANDLE hHandle);
01062     
01069 ASX32_API int ASX_Handle_GetAdapterIndex(ASX_HANDLE hHandle); // end of Handle group
01071 
01072 /*******************************************************************
01073  * Error functions
01074  */
01088 ASX32_API ASX_ERROR ASX_Error_GetLast(
01089                             ASX_HANDLE hASXObject,
01090                             ASX_ERROR *pnAsxErrorCode,
01091                             int *pnAsxSubSystemErrorCode);
01092 
01108 ASX32_API ASX_ERROR ASX_Error_GetLastString(
01109                             ASX_HANDLE hASXObject,
01110                             char *pszAsxErrorString,
01111                             const int nAsxErrorStringLength,
01112                             int *pnRequiredAsxErrorStringLength,
01113                             char *pszAsxSubSystemErrorString,
01114                             const int nAsxSubSystemErrorStringLength,
01115                             int *pnRequiredAsxSubSystemErrorStringLength);
01116 
01117 
01123 ASX32_API ASX_ERROR ASX_Error_Clear(
01124                             ASX_HANDLE hASXObject);
01125 
01132 ASX32_API ASX_BOOL ASX_Error_SupressCallback(
01133     ASX_HANDLE hASXObject,
01134     ASX_BOOL bSupressCallback);
01135  // end of Error group
01137 
01142 /*******************************************************************
01143  * Adapter functions
01144  */
01160 ASX32_API ASX_ERROR ASX_Adapter_CheckSubSystems(
01161         ASX_HANDLE hAdapter,
01162         unsigned int *pnSubSystemMask,
01163         unsigned int *pnSubSystemOkMask);
01164 
01165 
01194 ASX32_API ASX_ERROR ASX_Adapter_GetName(
01195                             ASX_HANDLE hAdapter,
01196                             char *pszName,
01197                             const int nStringLength,
01198                             int *RequiredLength );
01199 
01216 ASX32_API ASX_ERROR ASX_Adapter_GetIndex(
01217                             ASX_HANDLE hAdapter,
01218                             int *pnIndex );
01219 
01227 ASX32_API ASX_ERROR ASX_Adapter_GetAVDECCController(ASX_HANDLE hAdapter, void ** controller_obj);
01228 
01235 ASX32_API ASX_ERROR ASX_Adapter_GetAVDECCSystem(ASX_HANDLE hAdapter, void ** sys);
01236 
01245 ASX32_API ASX_ERROR ASX_Adapter_GetSerialNumber(
01246                             ASX_HANDLE hAdapter,
01247                             unsigned long *pdwSerialNumber );
01248 
01260  ASX32_API ASX_ERROR ASX_Adapter_GetHardwareRevision(
01261                             ASX_HANDLE hAdapter,
01262                             char *pszRevision);
01263 
01273  ASX32_API ASX_ERROR ASX_Adapter_GetFirmwareRevision(
01274                             ASX_HANDLE hAdapter,
01275                             char *pszRevision);
01276 
01286  ASX32_API ASX_ERROR ASX_Adapter_GetMacAddress(
01287                             ASX_HANDLE hAdapter,
01288                             char *pszMAC);
01289 
01299  ASX32_API ASX_ERROR ASX_Adapter_GetIpAddress(
01300                             ASX_HANDLE hAdapter,
01301                             char *pszIP);
01302 
01313 ASX32_API ASX_ERROR ASX_Adapter_GetDspUtilization(
01314                             ASX_HANDLE hAdapter,
01315                             const int nDspIndex,
01316                             int *pnDspUtilization);
01317 
01325 ASX32_API ASX_ERROR ASX_Adapter_GetMixer(
01326                             ASX_HANDLE hAdapter,
01327                             ASX_HANDLE *p_hMixer );
01328 
01329 
01338 ASX32_API ASX_ERROR ASX_Adapter_EnumerateMode( ASX_HANDLE hAdapter, const int nIndex, enum asxADAPTERMODE *peMode, int *pnCount);
01345 ASX32_API ASX_ERROR ASX_Adapter_GetMode( ASX_HANDLE hAdapter, enum asxADAPTERMODE *peMode);
01352 ASX32_API ASX_ERROR ASX_Adapter_SetMode( ASX_HANDLE hAdapter, const enum asxADAPTERMODE eMode);
01362 ASX32_API ASX_ERROR ASX_Adapter_EnumerateProperty( ASX_HANDLE hAdapter, const int nIndex, const enum asxADPROPENUM_MODE eMode, const int nSubIndex, unsigned long *pdwSetting);
01378 ASX32_API ASX_ERROR ASX_Adapter_ReadProperty( ASX_HANDLE hAdapter, const int nIndex, unsigned short *pwParm1, unsigned short *pwParm2);
01387 ASX32_API ASX_ERROR ASX_Adapter_WriteProperty( ASX_HANDLE hAdapter, const int nIndex, const unsigned short wParm1, const unsigned short wParm2);
01395 ASX32_API ASX_ERROR ASX_Adapter_WriteNvMem( ASX_HANDLE hAdapter, const int nAddress, const unsigned char cValue);
01403 ASX32_API ASX_ERROR ASX_Adapter_ReadNvMem( ASX_HANDLE hAdapter, const int nAddress, unsigned char *pcValue);
01410 ASX32_API ASX_ERROR ASX_Adapter_GetNvMemSizeInBytes( ASX_HANDLE hAdapter, int *pnCount);
01411 
01412  // end of Adapter group
01414 
01419 /*******************************************************************
01420  * Mixer functions
01421  */
01440 ASX32_API ASX_ERROR ASX_Mixer_ResetControls(
01441                     ASX_HANDLE hMixer);
01442 
01449 ASX32_API ASX_ERROR ASX_Mixer_GetSourceNodeCount(
01450                     ASX_HANDLE hMixer,
01451                     int *pnCount);
01452 
01461 ASX32_API ASX_ERROR ASX_Mixer_GetSourceNode(
01462                     ASX_HANDLE hMixer,
01463                     const int nSourceNode,
01464                     ASX_HANDLE *p_hNode );
01465 
01466 
01473 ASX32_API ASX_ERROR ASX_Mixer_GetDestinationNodeCount(
01474                     ASX_HANDLE hMixer,
01475                     int *pnCount);
01476 
01485 ASX32_API ASX_ERROR ASX_Mixer_GetDestinationNode(
01486                     ASX_HANDLE hMixer,
01487                     const int nDestinationNode,
01488                     ASX_HANDLE *p_hNode );
01489 
01500 ASX32_API ASX_ERROR ASX_Mixer_GetNodeByType(
01501                     ASX_HANDLE hMixer,
01502                     const enum asxNODE eType,
01503                     const int nIndex,
01504                     ASX_HANDLE *p_hNode);
01505 
01515 ASX32_API ASX_ERROR ASX_Mixer_GetNodeTypeCount(
01516                     ASX_HANDLE hMixer,
01517                     const enum asxNODE eType,
01518                     int *pnCount);
01519 
01520 
01521 
01528 ASX32_API ASX_ERROR ASX_Mixer_GetControlCount(
01529                     ASX_HANDLE hMixer,
01530                     int *pnControls);
01531 
01539 ASX32_API ASX_ERROR ASX_Mixer_GetControl(
01540                     ASX_HANDLE hMixer,
01541                     const int nControl,
01542                     ASX_HANDLE *p_hControlBase );
01543 
01555 ASX32_API ASX_ERROR ASX_Mixer_GetControlByNode(
01556                     const ASX_HANDLE hMixer,
01557                     const ASX_HANDLE hSourceNode,
01558                     const ASX_HANDLE hDestinationNode,
01559                     const enum asxCONTROL eControlType,
01560                     ASX_HANDLE *p_hControlBase );
01561 
01575 ASX32_API ASX_ERROR ASX_Mixer_GetControlByNodeTypeAndIndex(
01576                     ASX_HANDLE hMixer,
01577                     const enum asxNODE nSourceNodeType,
01578                     const int nSourceIndex,
01579                     const enum asxNODE nDestinationNodeType,
01580                     const int nDestinationIndex,
01581                     const enum asxCONTROL eControlType,
01582                     ASX_HANDLE *p_hControlBase );
01583 
01598 ASX32_API ASX_ERROR ASX_Mixer_GetControlByLocationAndIndex(
01599                     ASX_HANDLE hMixer,
01600                     const enum asxNODE nSourceNodeType,
01601                     const int nSourceIndex,
01602                     const enum asxNODE nDestinationNodeType,
01603                     const int nDestinationIndex,
01604                     const enum asxCONTROL eControlType,
01605                     const int nControlIndex,
01606                     ASX_HANDLE *p_hControlBase );
01607 
01621 ASX32_API ASX_ERROR ASX_Mixer_GetBlockControlByNodeTypeAndIndex(
01622                 ASX_HANDLE hMixer,
01623                 const enum asxNODE nSourceNodeType,
01624                 const int nSourceIndex,
01625                 const enum asxNODE nDestinationNodeType,
01626                 const int nDestinationIndex,
01627                 const char *pszBlockName,
01628                 ASX_HANDLE *p_hControlBase );
01629  // end of Mixer group
01631 
01632 /*******************************************************************
01633  * Node functions
01634  */
01650 ASX32_API ASX_ERROR ASX_Node_GetType(
01651                     ASX_HANDLE hNode,
01652                     enum asxNODE *peType);
01653 
01662 ASX32_API ASX_ERROR ASX_Node_GetIndex(
01663                     ASX_HANDLE hNode,
01664                     int *pnIndex);
01665 
01677 ASX32_API ASX_ERROR ASX_Node_GetLocation(
01678                     ASX_HANDLE hNode,
01679                     int *pnModuleSlot,
01680                     int *pnNodeIndexOnSlot,
01681                     char *pszModuleName,
01682                     const int nStringLength);
01683 
01690 ASX32_API ASX_ERROR ASX_Node_GetSubSystem(
01691                     ASX_HANDLE hNode,
01692                     int *p_nSubSystem);
01693 
01701 ASX32_API ASX_ERROR ASX_Node_GetName(
01702             ASX_HANDLE hNode,
01703             char *pszNodeName,
01704             const int nStringLength
01705             );
01706 
01710 ASX32_API ASX_ERROR ASX_Mixer_GetNodeType(
01711                     ASX_HANDLE hNode,
01712                     enum asxNODE *peType);
01713 
01717 ASX32_API ASX_ERROR ASX_Mixer_GetNodeIndex(
01718                     ASX_HANDLE hNode,
01719                     int *pnIndex);
01720  // end of Node group
01722 
01727 /******************************************************************
01728  * Control functions
01729  */
01743 ASX32_API ASX_ERROR ASX_Control_GetType( ASX_HANDLE hControl, enum asxCONTROL *peControl);
01750 ASX32_API ASX_ERROR ASX_Control_GetSourceNode( ASX_HANDLE hControl, ASX_HANDLE *p_hNode );
01757 ASX32_API ASX_ERROR ASX_Control_GetIndexOnNode( ASX_HANDLE hControl, int *p_index );
01764 ASX32_API ASX_ERROR ASX_Control_GetDestinationNode( ASX_HANDLE hControl, ASX_HANDLE *p_hNode );
01780 ASX32_API ASX_ERROR ASX_Control_GetHpiControl( ASX_HANDLE hControl, void **pphHpiSubSys, unsigned int *phHpiControl );
01787 ASX32_API ASX_ERROR ASX_Control_GetSubSystem(
01788                     ASX_HANDLE hControl,
01789                     int *p_nSubSystem);
01790 
01791 
01792 /*
01793 enum asxCONTROL_PROPERTY {
01794     asxCONTROL_PROPERTY_TUNER_HDRADIO_SIGNAL_QUALITY,
01795     asxCONTROL_PROPERTY_TUNER_HDRADIO_SDK_VERSION,
01796     asxCONTROL_PROPERTY_TUNER_HDRADIO_DSP_VERSION
01797 };
01798 
01799 ASX32_API ASX_ERROR ASX_Control_GetProperty( ASX_HANDLE hControl, enum asxCONTROL_PROPERTY eProperty, unsigned long dwProperty1, unsigned long dwProperty2 );
01800 */
01801  // end of Control group
01803 
01804 #if (DISABLE_PLAYREC_CONTROLS!=1)
01805 /*******************************************************************
01806  * Player Control
01807  */
01898 ASX32_API ASX_ERROR ASX_Player_Open( ASX_HANDLE hPlayer, const char *pszFile);
01905 ASX32_API ASX_ERROR ASX_Player_Format_GetString( ASX_HANDLE hPlayer, char **pszFormat);
01915 ASX32_API ASX_ERROR ASX_Player_Format_GetDetails( ASX_HANDLE hPlayer,
01916                             enum asxAUDIO_FORMAT *peFormat,
01917                             int *pnChannnels,
01918                             int *pnSampleRate,
01919                             int *pnBitRate);
01933 ASX32_API ASX_ERROR ASX_Player_PreLoad( ASX_HANDLE hPlayer, const enum asxTIMESCALE nType, const unsigned long lPosition);
01939 ASX32_API ASX_ERROR ASX_Player_Start( ASX_HANDLE hPlayer);
01946 ASX32_API ASX_ERROR ASX_Player_Pause( ASX_HANDLE hPlayer);
01953 ASX32_API ASX_ERROR ASX_Player_Stop( ASX_HANDLE hPlayer);
01960 ASX32_API ASX_ERROR ASX_Player_Wait( ASX_HANDLE hPlayer);
01966 ASX32_API ASX_ERROR ASX_Player_Close( ASX_HANDLE hPlayer);
01978 ASX32_API ASX_ERROR ASX_Player_GetPosition( ASX_HANDLE hPlayer, const enum asxTIMESCALE nType, unsigned long *plPosition);
01986 ASX32_API ASX_ERROR ASX_Player_SetPosition( ASX_HANDLE hPlayer, const enum asxTIMESCALE nType, const unsigned long lPosition);
01993 ASX32_API ASX_ERROR ASX_Player_GetState( ASX_HANDLE hPlayer, enum asxPLAYER_STATE *pnState);
02003 ASX32_API ASX_ERROR ASX_Player_SetTimeScale( ASX_HANDLE hPlayer, const float fTimeScale);
02012 ASX32_API ASX_ERROR ASX_Player_GetTimeScale( ASX_HANDLE hPlayer, float *pfTimeScale);
02022 ASX32_API ASX_ERROR ASX_Player_GetFilename( ASX_HANDLE hPlayer, char *pszFilename, const int nStringLength, int *pnRequiredLength );
02030 ASX32_API ASX_ERROR ASX_Player_SetLoopMode( ASX_HANDLE hPlayer, const int nLooping );
02038 ASX32_API ASX_ERROR ASX_Player_GetLoopMode( ASX_HANDLE hPlayer, int *pnLooping );
02049 ASX32_API ASX_ERROR ASX_Player_OpenPlaylist(
02050     ASX_HANDLE hPlayer,
02051     const char **pszFileList,
02052     const unsigned int nFiles);
02073 ASX32_API ASX_ERROR ASX_Player_PlaylistStatus(
02074     ASX_HANDLE hPlayer,
02075     unsigned int *nTotalFileCount,
02076     int *nCurrentFile,
02077     char **szCurrentFilename,
02078     unsigned int *nTotalTime_ms,
02079     unsigned int *nCurrentTime_ms
02080 );
02090 ASX32_API ASX_ERROR ASX_Player_RegisterCallback(
02091     ASX_HANDLE hPlayer,
02092     ASX_PLAYER_CALLBACK *pCallback,
02093     const enum asxPLAYER_FLAGS flags,
02094     void *pUser1);
02101 ASX32_API ASX_ERROR ASX_Player_PlaylistWait( ASX_HANDLE hPlayer);
02102  // end of Player group
02104 
02151 /******************************************************************
02152  * Recorder Control
02153  */
02233 ASX32_API ASX_ERROR ASX_Recorder_Open(
02234     ASX_HANDLE hRecorder, const char *pszFile,
02235     const enum asxFILE_FORMAT nFileType,
02236     const enum asxFILE_MODE nFileMode,
02237     const int nChannels,
02238     const enum asxAUDIO_FORMAT nFormat,
02239     const long lSampleRate,
02240     const long lBitrate,
02241     const enum asxRECORD_MODE nMode
02242     );
02248 ASX32_API ASX_ERROR ASX_Recorder_Start( ASX_HANDLE hRecorder );
02254 ASX32_API ASX_ERROR ASX_Recorder_Stop( ASX_HANDLE hRecorder);
02260 ASX32_API ASX_ERROR ASX_Recorder_Pause( ASX_HANDLE hRecorder);
02266 ASX32_API ASX_ERROR ASX_Recorder_Close( ASX_HANDLE hRecorder);
02274 ASX32_API ASX_ERROR ASX_Recorder_GetPosition( ASX_HANDLE hRecorder, const enum asxTIMESCALE nType, unsigned long *plPosition);
02281 ASX32_API ASX_ERROR ASX_Recorder_GetState( ASX_HANDLE hRecorder, enum asxRECORDER_STATE *peState);
02291 ASX32_API ASX_ERROR ASX_Recorder_GetFilename( ASX_HANDLE hRecorder, char *pszFilename, const int nStringLength, int *pnRequiredLength );
02300 ASX32_API ASX_ERROR ASX_Recorder_EnumerateFormat( ASX_HANDLE hRecorder, const int nIndex, enum asxAUDIO_FORMAT *peFormat, int *pnCount); // end of Recorder group
02302 
02353 #endif
02354 /*******************************************************************
02355  * Meter Control
02356  */
02367 ASX32_API ASX_ERROR ASX_Meter_GetChannels( ASX_HANDLE hMeter, int *pnChannels);
02368 
02388 ASX32_API ASX_ERROR ASX_Meter_GetPeak( ASX_HANDLE hMeter, float *fdB, const int nChannels);
02402 ASX32_API ASX_ERROR ASX_Meter_GetRMS(  ASX_HANDLE hMeter, float *fdB, const int nChannels);
02495 ASX32_API ASX_ERROR ASX_Meter_SetBallistics( ASX_HANDLE hMeter, const enum asxMETER_TYPE nMeterType, const float fAttackTimeMs, const float fDecayTimeMs);
02496 
02504  ASX32_API ASX_ERROR ASX_Meter_GetBallistics( ASX_HANDLE hMeter, const enum asxMETER_TYPE nMeterType, float *fAttackTimeMs, float *fDecayTimeMs); // end of Meter group
02506 
02511 /********************************************************************
02512  * Volume Control
02513  */
02524 ASX32_API ASX_ERROR ASX_Volume_GetChannels( ASX_HANDLE hVolume, int *pnChannels);
02532 ASX32_API ASX_ERROR ASX_Volume_SetMute( ASX_HANDLE hVolume, int *mute, const int nChannels);
02540 ASX32_API ASX_ERROR ASX_Volume_GetMute( ASX_HANDLE hVolume, int *mute, const int nChannels);
02548 ASX32_API ASX_ERROR ASX_Volume_SetGain( ASX_HANDLE hVolume, float *fSetdB, const int nChannels);
02556 ASX32_API ASX_ERROR ASX_Volume_GetGain( ASX_HANDLE hVolume, float *fdB, const int nChannels);
02565 ASX32_API ASX_ERROR ASX_Volume_GetRange( ASX_HANDLE hVolume,
02566                              float *fMinGain,
02567                              float *fMaxGain,
02568                              float *fGainStep);
02581 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);
02582 
02591 ASX32_API ASX_ERROR ASX_Volume_HasAutofade(ASX_HANDLE hVolume, const enum asxVOLUME_AUTOFADE eProfile, int *pnSupportsAutoFade);
02592 
02593  // end of Volume group
02595 
02596 /*******************************************************************
02597  * Level Control
02598  */
02610 ASX32_API ASX_ERROR ASX_Level_Set( ASX_HANDLE hLevel, const float fGain);
02617 ASX32_API ASX_ERROR ASX_Level_Get( ASX_HANDLE hLevel, float *fGain);
02626 ASX32_API ASX_ERROR ASX_Level_GetRange( ASX_HANDLE hLevel,
02627                              float *fMinGain,
02628                              float *fMaxGain,
02629                              float *fGainStep);
02630  // end of Level group
02632 
02633 /*******************************************************************
02634  * Multiplexer Control
02635  */
02653 ASX32_API ASX_ERROR ASX_Multiplexer_Enumerate( ASX_HANDLE hMux, const int nIndex, enum asxNODE *peNode, int *pnNodeIndex, int *pnCount);
02661 ASX32_API ASX_ERROR ASX_Multiplexer_Get( ASX_HANDLE hMux, enum asxNODE *peNode, int *pnNodeIndex);
02669 ASX32_API ASX_ERROR ASX_Multiplexer_Set( ASX_HANDLE hMux, const enum asxNODE eNode, const int nNodeIndex); // end of Multiplexer group
02674 /******************************************************************
02675  * Channel Mode Control
02676  */
02690 ASX32_API ASX_ERROR ASX_ChannelMode_Enumerate( ASX_HANDLE hMode, const int nIndex, enum asxCHANNELMODE *peMode, int *pnCount);
02697 ASX32_API ASX_ERROR ASX_ChannelMode_Get( ASX_HANDLE hMode, enum asxCHANNELMODE *peMode);
02704 ASX32_API ASX_ERROR ASX_ChannelMode_Set( ASX_HANDLE hMode, const enum asxCHANNELMODE eMode); // end of ChannelMode group
02706 
02707 /******************************************************************
02708  * Tuner Control
02709  */
02722 ASX32_API ASX_ERROR ASX_Tuner_EnumerateBand( ASX_HANDLE hTuner, const int nIndex, enum asxTUNERBAND *peBand, int *pnCount);
02729 ASX32_API ASX_ERROR ASX_Tuner_GetBand( ASX_HANDLE hTuner, enum asxTUNERBAND *peBand);
02736 ASX32_API ASX_ERROR ASX_Tuner_SetBand( ASX_HANDLE hTuner, const enum asxTUNERBAND eBand);
02746 ASX32_API ASX_ERROR ASX_Tuner_SetFrequency( ASX_HANDLE hTuner, const unsigned long nFreq);
02755 ASX32_API ASX_ERROR ASX_Tuner_GetFrequency( ASX_HANDLE hTuner, unsigned long *plFreq);
02756 
02766 ASX32_API ASX_ERROR ASX_Tuner_GetFrequencyRange(ASX_HANDLE hTuner,
02767             const enum asxTUNERBAND eBand,
02768             unsigned long *plMin, unsigned long *plMax,
02769             unsigned long *plStep);
02770 
02780 ASX32_API ASX_ERROR ASX_Tuner_GetGainRange(ASX_HANDLE hTuner, float *fMin, float *fMax, float *fStep);
02787 ASX32_API ASX_ERROR ASX_Tuner_SetGain(ASX_HANDLE hTuner, const float fTunerGain);
02794 ASX32_API ASX_ERROR ASX_Tuner_GetGain(ASX_HANDLE hTuner, float *pfTunerGain);
02801 ASX32_API ASX_ERROR ASX_Tuner_GetRFLevel(ASX_HANDLE hTuner, float *nRFLevel);
02808 ASX32_API ASX_ERROR ASX_Tuner_GetRawRFLevel(ASX_HANDLE hTuner, int *nRawRFLevel);
02818 ASX32_API ASX_ERROR ASX_Tuner_GetStatus(
02819             ASX_HANDLE hTuner,
02820             unsigned int *puErrorStatusMask,
02821             unsigned int *puErrorStatus);
02830 ASX32_API ASX_ERROR ASX_Tuner_GetMode(ASX_HANDLE hTuner,
02831             const enum asxTUNERMODE eMode,
02832             enum asxTUNERMODE *peSetting);
02833 
02842 ASX32_API ASX_ERROR ASX_Tuner_SetMode(ASX_HANDLE hTuner,
02843             const enum asxTUNERMODE eMode,
02844             const enum asxTUNERMODE eSetting);
02845 
02854 ASX32_API ASX_ERROR ASX_Tuner_EnumerateDeemphasis(ASX_HANDLE hTuner,
02855             const int nIndex,
02856             enum asxTUNERDEEMPHASIS *peDeemphasis,
02857             int *pnCount);
02858 
02865 ASX32_API ASX_ERROR ASX_Tuner_SetDeemphasis(ASX_HANDLE hTuner,
02866             const enum asxTUNERDEEMPHASIS eDeemphasis
02867             );
02868 
02875 ASX32_API ASX_ERROR ASX_Tuner_GetDeemphasis(ASX_HANDLE hTuner,
02876             enum asxTUNERDEEMPHASIS *peDeemphasis
02877             );
02878 
02887 ASX32_API ASX_ERROR ASX_Tuner_EnumerateProgram(ASX_HANDLE hTuner,
02888             const int nIndex,
02889             enum asxTUNERPROGRAM *peProgram,
02890             int *pnCount);
02891 
02898 ASX32_API ASX_ERROR ASX_Tuner_SetProgram(ASX_HANDLE hTuner,
02899             const enum asxTUNERPROGRAM eProgram
02900             );
02901 
02908 ASX32_API ASX_ERROR ASX_Tuner_GetProgram(ASX_HANDLE hTuner,
02909             enum asxTUNERPROGRAM *peProgram
02910             );
02911 
02915 ASX32_API ASX_ERROR ASX_Tuner_GetHdRadioSignalQuality(
02916     ASX_HANDLE hTuner,
02917     int *pnSignalQuality
02918 );
02919 
02926 ASX32_API ASX_ERROR ASX_Tuner_GetDigitalSignalQuality(
02927     ASX_HANDLE hTuner,
02928     int *pnSignalQuality
02929 );
02930 
02931 /*
02932  * Get a Tuner property of type integer
02933  * @param hTuner A handle to an ASX tuner control.
02934  * @param nTunerProperty - tuner property.  One of #asxTUNER_PROPERTY_INT
02935  * @param nPropertyValue - the returned property
02936  * @return Returns 0 if there is no error, otherwise one of #asxERROR is returned.
02937  */
02938 /*
02939 ASX32_API ASX_ERROR ASX_Tuner_GetProperty_Int(ASX_HANDLE hTuner,
02940                 const enum asxTUNER_PROPERTY_INT eTunerProperty,
02941             int *pnPropertyValue
02942             );
02943 */
02944 
02948 ASX32_API ASX_ERROR ASX_Tuner_GetHdRadioSdkVersion(ASX_HANDLE hTuner,
02949             char *szSdkVersion,
02950             const int nStringLength
02951             );
02955 ASX32_API ASX_ERROR ASX_Tuner_GetHdRadioDspVersion(ASX_HANDLE hTuner,
02956             char *szSdkVersion,
02957             const int nStringLength
02958             );
02966 ASX32_API ASX_ERROR ASX_Tuner_GetFirmwareVersion(ASX_HANDLE hTuner,
02967             char *szFirmwareVersion,
02968             const int nStringLength
02969             );
02978 ASX32_API ASX_ERROR ASX_Tuner_EnumerateHdBlend(ASX_HANDLE hTuner,
02979             const int nIndex,
02980             enum asxTUNERHDBLEND *peBlend,
02981             int *pnCount);
02982 
02989 ASX32_API ASX_ERROR ASX_Tuner_SetHdBlend(ASX_HANDLE hTuner,
02990             const enum asxTUNERHDBLEND  nMode
02991             );
02992 
02999 ASX32_API ASX_ERROR ASX_Tuner_GetHdBlend(ASX_HANDLE hTuner,
03000             enum asxTUNERHDBLEND *pnMode
03001             );
03002 
03003 
03011 ASX32_API ASX_ERROR ASX_Tuner_GetDabMultiplexName(ASX_HANDLE hTuner,
03012         char *szMultiplexName,
03013         const int nSize
03014         );
03015 
03022 ASX32_API ASX_ERROR ASX_Tuner_GetDabMultiplexId(ASX_HANDLE hTuner,
03023         unsigned long *dwMultiplexId
03024         );
03025 
03033 ASX32_API ASX_ERROR ASX_Tuner_GetDabAudioServiceCount(ASX_HANDLE hTuner,
03034             int *pnIndex,
03035             int *pnCount
03036             );
03037 
03046 ASX32_API ASX_ERROR ASX_Tuner_GetDabAudioServiceName(ASX_HANDLE hTuner,
03047         char *szAudioServiceName,
03048         const int nSize,
03049         const int nIndex
03050         );
03051 
03058 ASX32_API ASX_ERROR ASX_Tuner_SetDabAudioService(ASX_HANDLE hTuner,
03059         const int nIndex
03060         );
03061 
03068 ASX32_API ASX_ERROR ASX_Tuner_GetDabServiceId(ASX_HANDLE hTuner,
03069         unsigned long *dwServiceId
03070         );
03071 
03079 ASX32_API ASX_ERROR ASX_Tuner_GetDabAudioInfo(ASX_HANDLE hTuner,
03080         char *szAudioInfo,
03081         const int nSize
03082         );
03083  // end of Tuner group
03090 /******************************************************************
03091  * PAD Control
03092  */
03106 ASX32_API ASX_ERROR ASX_PAD_GetChannelName(ASX_HANDLE hPAD,
03107             char *pszChannelName,
03108             const int nStringLength
03109             );
03110 
03119 ASX32_API ASX_ERROR ASX_PAD_GetArtist(ASX_HANDLE hPAD,
03120             char *pszArtist,
03121             const int nStringLength
03122             );
03123 
03132 ASX32_API ASX_ERROR ASX_PAD_GetTitle(ASX_HANDLE hPAD,
03133             char *pszTitle,
03134             const int nStringLength
03135             );
03136 
03145 ASX32_API ASX_ERROR ASX_PAD_GetComment(ASX_HANDLE hPAD,
03146             char *pszComment,
03147             const int nStringLength
03148             );
03149 
03157 ASX32_API ASX_ERROR ASX_PAD_GetProgramType(ASX_HANDLE hPAD,
03158             int *pnProgramType
03159             );
03170 ASX32_API ASX_ERROR ASX_PAD_GetProgramTypeString(ASX_HANDLE hPAD,
03171             const enum asxTUNER_RDS_TYPE eType,
03172             const int nPTY,
03173             char *pszString,
03174             const int nStringLength
03175             );
03176 
03185 ASX32_API ASX_ERROR ASX_PAD_GetRdsPI(ASX_HANDLE hPAD,
03186             int *uPI
03187             );
03188 
03189  // end of pads group
03191 
03192 
03193 /******************************************************************
03194  * Sample Clock Control
03195  */
03203 ASX32_API ASX_ERROR ASX_SampleClock_EnumerateSampleRate( ASX_HANDLE hSampleClock, const int nIndex, enum asxSAMPLE_RATE *peSampleRate, int *pnCount);
03204 
03213 ASX32_API ASX_ERROR ASX_SampleClock_EnumerateLocalRate( ASX_HANDLE hSampleClock, const int nIndex, enum asxSAMPLE_RATE *peSampleRate, int *pnCount);
03214 
03217 ASX32_API ASX_ERROR ASX_SampleClock_SetSampleRate( ASX_HANDLE hSampleClock, const int nSampleRate);
03218 
03225 ASX32_API ASX_ERROR ASX_SampleClock_SetLocalRate( ASX_HANDLE hSampleClock, const int nSampleRate);
03226 
03234 ASX32_API ASX_ERROR ASX_SampleClock_SetLocalRateEx(ASX_HANDLE hSampleClock, const int nSampleRate, const int nSampleRatePPB);
03235 
03242 ASX32_API ASX_ERROR ASX_SampleClock_GetSampleRate( ASX_HANDLE hSampleClock, int *pnSampleRate);
03249 ASX32_API ASX_ERROR ASX_SampleClock_GetLocalRate( ASX_HANDLE hSampleClock, int *pnSampleRate);
03258 ASX32_API ASX_ERROR ASX_SampleClock_EnumerateClockSource( ASX_HANDLE hSampleClock, const int nIndex, enum asxSAMPLE_CLOCK_SOURCE *peClockSource, int *pnCount);
03265 ASX32_API ASX_ERROR ASX_SampleClock_SetClockSource( ASX_HANDLE hSampleClock, const enum asxSAMPLE_CLOCK_SOURCE eClockSource);
03272 ASX32_API ASX_ERROR ASX_SampleClock_GetClockSource( ASX_HANDLE hSampleClock, enum asxSAMPLE_CLOCK_SOURCE *peClockSource);
03279 ASX32_API ASX_ERROR ASX_SampleClock_SetAutoSource( ASX_HANDLE hSampleClock, const int nEnable);
03286 ASX32_API ASX_ERROR ASX_SampleClock_GetAutoSource( ASX_HANDLE hSampleClock, int *pnEnable);
03296 ASX32_API ASX_ERROR ASX_SampleClock_SetLocalRateLock( ASX_HANDLE hSampleClock, const int nLock);
03303 ASX32_API ASX_ERROR ASX_SampleClock_GetLocalRateLock( ASX_HANDLE hSampleClock, int *pnLock); // end of SampleClock group
03305 
03306 /******************************************************************
03307  * AESEBU Receiver Control
03308  **/
03321 ASX32_API ASX_ERROR ASX_AESEBUReceiver_GetErrorStatus(ASX_HANDLE hAESEBURx,
03322                                                       unsigned int *pdwErrorStatusMask, unsigned int *pdwErrorStatus );
03329 ASX32_API ASX_ERROR ASX_AESEBUReceiver_GetSampleRate(ASX_HANDLE hAESEBURx,
03330                                                      unsigned int *pdwSampleRate );
03339 ASX32_API ASX_ERROR ASX_AESEBUReceiver_EnumerateFormat( ASX_HANDLE hAESEBURx, const int nIndex, enum asxAESEBU_FORMAT *peAesebuFormat, int *pnCount);
03340 
03347 ASX32_API ASX_ERROR ASX_AESEBUReceiver_SetFormat(ASX_HANDLE hAESEBURx,
03348                                                  const enum asxAESEBU_FORMAT eAesebuFormat );
03355 ASX32_API ASX_ERROR ASX_AESEBUReceiver_GetFormat(ASX_HANDLE hAESEBURx,
03356                                                  enum asxAESEBU_FORMAT *peAesebuFormat ); // end of AESEBU_Rx group
03358 
03359 /******************************************************************
03360  * AESEBU Transmitter Control
03361  **/
03374 ASX32_API ASX_ERROR ASX_AESEBUTransmitter_EnumerateFormat( ASX_HANDLE hAESEBUTx, const int nIndex, enum asxAESEBU_FORMAT *peAesebuFormat, int *pnCount);
03381 ASX32_API ASX_ERROR ASX_AESEBUTransmitter_SetFormat(ASX_HANDLE hAESEBUTx, const enum asxAESEBU_FORMAT eAesebuFormat );
03388 ASX32_API ASX_ERROR ASX_AESEBUTransmitter_GetFormat(ASX_HANDLE hAESEBUTx, enum asxAESEBU_FORMAT *peAesebuFormat ); // end of AESEBU_Tx group
03390 
03391 /******************************************************************
03392  * GPIO Control
03393  */
03408 ASX32_API ASX_ERROR ASX_GPIO_GetProperties( ASX_HANDLE hGPIO, int *pnNumberOfInputBits,int *pnNumberOfOutputBits);
03420 ASX32_API ASX_ERROR ASX_GPIO_InputGet( ASX_HANDLE hGPIO, int *pnInputBits, const int nNumberOfBits);
03430 ASX32_API ASX_ERROR ASX_GPIO_OutputSet( ASX_HANDLE hGPIO, int *pnOutputBits, const int nNumberOfBits);
03439 ASX32_API ASX_ERROR ASX_GPIO_OutputGet( ASX_HANDLE hGPIO, int *pnOutputBits, const int nNumberOfBits); // end of GPIO group
03441 
03442 /********************************************************************
03443  * Vox Control
03444  */
03455 ASX32_API ASX_ERROR ASX_Vox_SetLevel( ASX_HANDLE hVox, const float fSetLevel);
03462 ASX32_API ASX_ERROR ASX_Vox_GetLevel( ASX_HANDLE hVox, float *fGetLevel);
03471 ASX32_API ASX_ERROR ASX_Vox_GetRange( ASX_HANDLE hVox,
03472                              float *fMinLevel,
03473                              float *fMaxLevel,
03474                              float *fLevelStep); // end of Vox group
03476 
03477 /********************************************************************
03478  * Generic Control
03479  */
03490 ASX32_API ASX_ERROR ASX_GetGenericControlName( ASX_HANDLE hControl, char *pName); // end of Generic group
03492 
03493 /******************************************************************
03494  * Microphone Control
03495  */
03506 ASX32_API ASX_ERROR ASX_Mic_SetPhantomPower( ASX_HANDLE hMic, const int nOnOff);
03513 ASX32_API ASX_ERROR ASX_Mic_GetPhantomPower( ASX_HANDLE hMic, int *pOnOff); // end of MIC group
03515 
03516 /******************************************************************
03517  * Parametric EQ control
03518  */
03530 ASX32_API ASX_ERROR ASX_EQ_GetInfo(
03531         ASX_HANDLE hParmEq,
03532         unsigned short  *pwNumberOfBands,
03533         unsigned short  *pwEnabled
03534         );
03541 ASX32_API ASX_ERROR ASX_EQ_SetState(
03542         ASX_HANDLE hParmEq,
03543         const unsigned short    wOnOff
03544         );
03558 ASX32_API ASX_ERROR ASX_EQ_SetBand(
03559         ASX_HANDLE hParmEq,
03560         const unsigned short        wIndex,
03561         const enum asxEQBANDTYPE    eType,
03562         const unsigned long     dwFrequencyHz,
03563         const short             nQ100,
03564         const short             nGain0_01dB
03565         );
03566 
03580 ASX32_API ASX_ERROR ASX_EQ_GetBand(
03581         ASX_HANDLE hParmEq,
03582         const unsigned short        wIndex,
03583         enum asxEQBANDTYPE  *peType,
03584         unsigned long       *pdwFrequencyHz,
03585         short               *pnQ100,
03586         short               *pnGain0_01dB
03587         ); // end of Parametric Equalizer group
03589 
03590 /******************************************************************
03591  * Compander control
03592  */
03610 ASX32_API ASX_ERROR ASX_Compander_Set(
03611         ASX_HANDLE hCompander,
03612         const unsigned short  wAttack,
03613         const unsigned short  wDecay,
03614         const short           wRatio100,
03615         const short           nThreshold0_01dB,
03616         const short           nMakeupGain0_01dB
03617         );
03618 
03632 ASX32_API ASX_ERROR ASX_Compander_Get(
03633         ASX_HANDLE hCompander,
03634         unsigned short  *pwAttack,
03635         unsigned short  *pwDecay,
03636         short           *pwRatio100,
03637         short           *pnThreshold0_01dB,
03638         short           *pnMakeupGain0_01dB
03639         );
03646 ASX32_API ASX_ERROR ASX_Compander_SetEnable(
03647         ASX_HANDLE hCompander,
03648         const unsigned int nOn
03649 );
03656 ASX32_API ASX_ERROR ASX_Compander_GetEnable(
03657         ASX_HANDLE hCompander,
03658         unsigned int *nOn
03659 );
03666 ASX32_API ASX_ERROR ASX_Compander_SetMakeupGain(
03667         ASX_HANDLE hCompander,
03668         const float fMakeupGain
03669 );
03676 ASX32_API ASX_ERROR ASX_Compander_GetMakeupGain(
03677         ASX_HANDLE hCompander,
03678         float *fMakeupGain
03679 );
03687 ASX32_API ASX_ERROR ASX_Compander_SetAttackTimeConstant(
03688         ASX_HANDLE hCompander,
03689         enum asxCOMPANDER_INDEX index,
03690         const unsigned int nAttack
03691 );
03699 ASX32_API ASX_ERROR ASX_Compander_GetAttackTimeConstant(
03700         ASX_HANDLE hCompander,
03701         enum asxCOMPANDER_INDEX index,
03702         unsigned int *pnAttack
03703 );
03711 ASX32_API ASX_ERROR ASX_Compander_SetDecayTimeConstant(
03712         ASX_HANDLE hCompander,
03713         enum asxCOMPANDER_INDEX index,
03714         const unsigned int nDecay
03715 );
03723 ASX32_API ASX_ERROR ASX_Compander_GetDecayTimeConstant(
03724         ASX_HANDLE hCompander,
03725         enum asxCOMPANDER_INDEX index,
03726         unsigned int *pnDecay
03727 );
03735 ASX32_API ASX_ERROR ASX_Compander_SetThreshold(
03736         ASX_HANDLE hCompander,
03737         enum asxCOMPANDER_INDEX index,
03738         const float nThreshold
03739 );
03747 ASX32_API ASX_ERROR ASX_Compander_GetThreshold(
03748         ASX_HANDLE hCompander,
03749         enum asxCOMPANDER_INDEX index,
03750         float *pnThreshold
03751 );
03759 ASX32_API ASX_ERROR ASX_Compander_SetRatio(
03760         ASX_HANDLE hCompander,
03761         enum asxCOMPANDER_INDEX index,
03762         const float fRatio
03763 );
03771 ASX32_API ASX_ERROR ASX_Compander_GetRatio(
03772         ASX_HANDLE hCompander,
03773         enum asxCOMPANDER_INDEX index,
03774         float  *fRatio
03775 );
03776  // end of Compander group
03778 
03783 /******************************************************************
03784  * Cobranet control
03785  */
03795 ASX32_API ASX_ERROR ASX_Cobranet_EnumerateModes( ASX_HANDLE hCobranet, const int nIndex, enum asxCOBRANET_MODE *peMode, int *pnCount);
03799 ASX32_API ASX_ERROR ASX_Cobranet_GetMode( ASX_HANDLE hCobranet, enum asxCOBRANET_MODE *peMode);
03803 ASX32_API ASX_ERROR ASX_Cobranet_SetMode( ASX_HANDLE hCobranet, const enum asxCOBRANET_MODE eMode);
03810 ASX32_API ASX_ERROR ASX_Cobranet_GetIPAddress( ASX_HANDLE hCobranet, unsigned int *pdwIPAddr);
03817 ASX32_API ASX_ERROR ASX_Cobranet_SetIPAddress( ASX_HANDLE hCobranet, const unsigned int dwIPAddr);
03825 ASX32_API ASX_ERROR ASX_Cobranet_GetStaticIPAddress( ASX_HANDLE hCobranet, unsigned int *pdwIPAddr);
03833 ASX32_API ASX_ERROR ASX_Cobranet_SetStaticIPAddress( ASX_HANDLE hCobranet, const unsigned int dwIPAddr);
03841 ASX32_API ASX_ERROR ASX_Cobranet_GetMACAddress( ASX_HANDLE hCobranet, unsigned int *pdwMAC_MSBs, unsigned short *pwMAC_LSBs);
03849 ASX32_API ASX_ERROR ASX_Cobranet_GetDescription( ASX_HANDLE hCobranet, char *szString, const int nLength );
03857 ASX32_API ASX_ERROR ASX_Cobranet_GetName( ASX_HANDLE hCobranet, char *szString, const int nLength );
03865 ASX32_API ASX_ERROR ASX_Cobranet_SetName( ASX_HANDLE hCobranet, const char *pszLongInputString);
03873 ASX32_API ASX_ERROR ASX_Cobranet_GetLocation( ASX_HANDLE hCobranet, char *szString, const int nLength );
03881 ASX32_API ASX_ERROR ASX_Cobranet_SetLocation( ASX_HANDLE hCobranet, const char *pszLongInputString);
03889 ASX32_API ASX_ERROR ASX_Cobranet_GetFirmwareRevision( ASX_HANDLE hCobranet, char *pszRevision);
03898 ASX32_API ASX_ERROR ASX_Cobranet_GetErrorInfo( ASX_HANDLE hCobranet, unsigned int *pnCode, unsigned int *pnCount, unsigned int *pnDisplay);
03906 ASX32_API ASX_ERROR ASX_Cobranet_GetLatencyAndSampleRate( ASX_HANDLE hCobranet, enum asxCOBRANET_LATENCY *peLatency, enum asxSAMPLE_RATE *peRate);
03914 ASX32_API ASX_ERROR ASX_Cobranet_SetLatencyAndSampleRate( ASX_HANDLE hCobranet, const enum asxCOBRANET_LATENCY eLatency, const enum asxSAMPLE_RATE eRate);
03924 ASX32_API ASX_ERROR ASX_Cobranet_GetPersistence( ASX_HANDLE hCobranet, unsigned int *pnSetting);
03934 ASX32_API ASX_ERROR ASX_Cobranet_SetPersistence( ASX_HANDLE hCobranet, const unsigned int nSetting);
03942 ASX32_API ASX_ERROR ASX_Cobranet_GetConductorPriority( ASX_HANDLE hCobranet, unsigned int *pnPriority);
03950 ASX32_API ASX_ERROR ASX_Cobranet_SetConductorPriority( ASX_HANDLE hCobranet, const unsigned int nPriority);
03958 ASX32_API ASX_ERROR ASX_Cobranet_GetConductorStatus( ASX_HANDLE hCobranet, unsigned int *pnState);
03965 ASX32_API ASX_ERROR ASX_Cobranet_SetSerialEnable( ASX_HANDLE hCobranet, const int nOnOff);
03972 ASX32_API ASX_ERROR ASX_Cobranet_GetSerialEnable( ASX_HANDLE hCobranet, int *pOnOff);
03985 ASX32_API ASX_ERROR ASX_Cobranet_SetSerialConfig(
03986     ASX_HANDLE hCobranet,
03987     const unsigned int nBaud,
03988     const unsigned int nPPeriod,
03989     const char pRxMAC[6],
03990     const int nAcceptUnicast,
03991     const char pTxMAC[6]);
04003 ASX32_API ASX_ERROR ASX_Cobranet_GetSerialConfig(
04004     ASX_HANDLE hCobranet,
04005     unsigned int *pnBaud,
04006     unsigned int *pnPPeriod,
04007     char pRxMAC[6],
04008     int *pnAcceptUnicast,
04009     char pTxMAC[6]);
04018 ASX32_API ASX_ERROR ASX_Cobranet_GetIfStatus(
04019     ASX_HANDLE hCobranet,
04020     unsigned int *pnCurrentIf,
04021     unsigned int *pnPrimaryLinkStatus,
04022     unsigned int *pnSecondaryLinkStatus); // end of Cobranet group
04024 /******************************************************************
04025  * Cobranet transmitter control
04026  */
04039 ASX32_API ASX_ERROR ASX_CobranetTx_GetStatus(ASX_HANDLE hCobranetTx, unsigned int *pnDropouts, unsigned int *pnPosition,unsigned int *pnReceivers);
04046 ASX32_API ASX_ERROR ASX_CobranetTx_GetBundle(ASX_HANDLE hCobranetTx, unsigned int *pnBundle);
04053 ASX32_API ASX_ERROR ASX_CobranetTx_SetBundle(ASX_HANDLE hCobranetTx, const unsigned int nBundle);
04060 ASX32_API ASX_ERROR ASX_CobranetTx_GetChannelCount(ASX_HANDLE hCobranetTx, unsigned int *pnCount);
04067 ASX32_API ASX_ERROR ASX_CobranetTx_SetChannelCount(ASX_HANDLE hCobranetTx, const unsigned int nCount);
04074 ASX32_API ASX_ERROR ASX_CobranetTx_GetChannelMap(ASX_HANDLE hCobranetTx, unsigned int nMap[8]);
04081 ASX32_API ASX_ERROR ASX_CobranetTx_SetChannelMap(ASX_HANDLE hCobranetTx, const unsigned int nMap[8]);
04088 ASX32_API ASX_ERROR ASX_CobranetTx_GetFormat(ASX_HANDLE hCobranetTx, enum asxAUDIO_FORMAT *peFormat);
04097 ASX32_API ASX_ERROR ASX_CobranetTx_SetFormat(ASX_HANDLE hCobranetTx, const enum asxAUDIO_FORMAT eFormat);
04105 ASX32_API ASX_ERROR ASX_CobranetTx_GetUnicastMode(ASX_HANDLE hCobranetTx, unsigned int *pnUnicastMode, unsigned int *pnMaxUnicast);
04136 ASX32_API ASX_ERROR ASX_CobranetTx_SetUnicastMode(ASX_HANDLE hCobranetTx, const unsigned int nUnicastMode, const unsigned int nMaxUnicast);
04137  // end of Cobranet Tx group
04139 
04140 /******************************************************************
04141  * Cobranet receiver control
04142  */
04187 ASX32_API ASX_ERROR ASX_CobranetRx_GetStatus(ASX_HANDLE hCobranetRx, unsigned int *pnStatus, unsigned int *pnDropouts, unsigned int *pnDelay, unsigned int nFormat[8]);
04194 ASX32_API ASX_ERROR ASX_CobranetRx_GetBundle(ASX_HANDLE hCobranetRx, unsigned int *pnBundle);
04201 ASX32_API ASX_ERROR ASX_CobranetRx_SetBundle(ASX_HANDLE hCobranetRx, const unsigned int nBundle);
04209 ASX32_API ASX_ERROR ASX_CobranetRx_GetSourceMAC(ASX_HANDLE hCobranetRx, unsigned int *pdwMAC_MSBs, unsigned short *pwMAC_LSBs);
04217 ASX32_API ASX_ERROR ASX_CobranetRx_SetSourceMAC(ASX_HANDLE hCobranetRx, const unsigned int dwMAC_MSBs, const unsigned short wMAC_LSBs);
04224 ASX32_API ASX_ERROR ASX_CobranetRx_GetChannelMap(ASX_HANDLE hCobranetRx, unsigned int nMap[8]);
04231 ASX32_API ASX_ERROR ASX_CobranetRx_SetChannelMap(ASX_HANDLE hCobranetRx, const unsigned int nMap[8]);
04238 ASX32_API ASX_ERROR ASX_CobranetRx_GetMinimumDelay(ASX_HANDLE hCobranetRx, unsigned int *pnMinDelay);
04251 ASX32_API ASX_ERROR ASX_CobranetRx_SetMinimumDelay(ASX_HANDLE hCobranetRx, const unsigned int nMinDelay); // end of Cobranet Rx group
04253 
04254 /******************************************************************
04255  * Tone Detector control
04256  */
04272 ASX32_API ASX_ERROR ASX_ToneDetector_SetEnable( ASX_HANDLE hToneDetector,const unsigned int nEnable);
04279 ASX32_API ASX_ERROR ASX_ToneDetector_GetEnable( ASX_HANDLE hToneDetector,unsigned int *nEnable);
04286 ASX32_API ASX_ERROR ASX_ToneDetector_SetEventEnable( ASX_HANDLE hToneDetector,const unsigned int nEnable);
04293 ASX32_API ASX_ERROR ASX_ToneDetector_GetEventEnable( ASX_HANDLE hToneDetector,unsigned int *nEnable);
04298 ASX32_API ASX_ERROR ASX_ToneDetector_SetThreshold( ASX_HANDLE hToneDetector,const float fThreshold);
04304 ASX32_API ASX_ERROR ASX_ToneDetector_GetThreshold( ASX_HANDLE hToneDetector,float *fThreshold);
04310 ASX32_API ASX_ERROR ASX_ToneDetector_GetState( ASX_HANDLE hToneDetector,unsigned int *nState);
04316 ASX32_API ASX_ERROR ASX_ToneDetector_GetFrequency( ASX_HANDLE hToneDetector,unsigned int nIndex,unsigned int *nState); // end of Tone group
04318 
04319 /******************************************************************
04320  * Silence Detector control
04321  */
04332 ASX32_API ASX_ERROR ASX_SilenceDetector_SetEnable( ASX_HANDLE hSilenceDetector,const unsigned int nEnable);
04339 ASX32_API ASX_ERROR ASX_SilenceDetector_GetEnable( ASX_HANDLE hSilenceDetector,unsigned int *nEnable);
04346 ASX32_API ASX_ERROR ASX_SilenceDetector_SetEventEnable( ASX_HANDLE hSilenceDetector,const unsigned int nEnable);
04353 ASX32_API ASX_ERROR ASX_SilenceDetector_GetEventEnable( ASX_HANDLE hSilenceDetector,unsigned int *nEnable);
04354 
04360 ASX32_API ASX_ERROR ASX_SilenceDetector_SetDelay(
04361     ASX_HANDLE hSilenceDetector,
04362     const unsigned int Delay
04363 );
04369 ASX32_API ASX_ERROR ASX_SilenceDetector_GetDelay(
04370     ASX_HANDLE hSilenceDetector,
04371     unsigned int *Delay
04372 );
04377 ASX32_API ASX_ERROR ASX_SilenceDetector_SetThreshold( ASX_HANDLE hSilenceDetector,const float fThreshold);
04382 ASX32_API ASX_ERROR ASX_SilenceDetector_GetThreshold( ASX_HANDLE hSilenceDetector,float *fThreshold);
04388 ASX32_API ASX_ERROR ASX_SilenceDetector_GetState( ASX_HANDLE hSilenceDetector,unsigned int *nState); // end of silence group
04390 /******************************************************************
04391  * Block control
04392  */
04408 ASX32_API ASX_ERROR ASX_Block_GetInfo(
04409         ASX_HANDLE hBlock,
04410         char *szBlockName,
04411         const unsigned int uStringLength,
04412         unsigned int *uParameterCount);
04413 
04423 ASX32_API ASX_ERROR ASX_Block_Parameter_GetName(
04424         ASX_HANDLE hBlock,
04425         const unsigned int uParameterIndex,
04426         char *szParameterName,
04427         const unsigned int uStringLength);
04437 ASX32_API ASX_ERROR ASX_Block_Parameter_GetUnits(
04438         ASX_HANDLE hBlock,
04439         const unsigned int uParameterIndex,
04440         char *szParameterUnits,
04441         const unsigned int uStringLength);
04449 ASX32_API ASX_ERROR ASX_Block_Parameter_GetType(
04450         ASX_HANDLE hBlock,
04451         const unsigned int uParameterIndex,
04452         enum asxUCONTROL_PTYPE *eType);
04453 
04461 ASX32_API ASX_ERROR ASX_Block_Parameter_GetFlags(
04462         ASX_HANDLE hBlock,
04463         const unsigned int uParameterIndex,
04464         enum asxUCONTROL_PFLAGS *eFlags);
04465 
04473 ASX32_API ASX_ERROR ASX_Block_Parameter_GetElementCount(
04474         ASX_HANDLE hBlock,
04475         const unsigned int uParameterIndex,
04476         unsigned int *uCount);
04477 
04485 ASX32_API ASX_ERROR ASX_Block_Parameter_GetRange(
04486         ASX_HANDLE hBlock,
04487         const unsigned int uParameterIndex,
04488         struct asxParameterRangeInfo *info);
04489 
04500 ASX32_API ASX_ERROR ASX_Block_Parameter_GetEnumName(
04501         ASX_HANDLE hBlock,
04502         const unsigned int uParameterIndex,
04503         const unsigned int uEnumItem,
04504         char *szEnumName,
04505         const unsigned int uStringLength);
04506 
04514 ASX32_API ASX_ERROR ASX_Block_Parameter_Set(
04515         ASX_HANDLE hBlock,
04516         const unsigned int uParameterIndex,
04517         struct asxParameterValue *data);
04518 
04526 ASX32_API ASX_ERROR ASX_Block_Parameter_Get(
04527         ASX_HANDLE hBlock,
04528         const unsigned int uParameterIndex,
04529         struct asxParameterValue *data);
04530 
04531 /* for the future
04532 ASX32_API ASX_ERROR ASX_ParameterValue_Init(
04533         struct asxParameterValue *data,
04534         enum asxUCONTROL_PTYPE *eType,
04535         const unsigned int uElementCount,
04536         void *data2);
04537 */
04538  // end of block group
04540 
04541 #endif /* ASX_H_DEFS_ONLY */
04542 #ifdef __cplusplus
04543 }
04544 #endif
04545 #endif  /* _ASX_H_ */
04546 
04547 /***********************************************************
04548 *
04549 ***********************************************************/