;added constants as i needed them so not really in order. CONST $MMSYSERR_NOERROR=0 CONST $WAVERR_BASE=32 CONST $WAVERR_BADFORMAT =($WAVERR_BASE + 0) CONST $MAXPNAMELEN= 32 CONST $MIXERLINE_COMPONENTTYPE_DST_FIRST= 0 CONST $MIXERLINE_COMPONENTTYPE_DST_SPEAKERS=($MIXERLINE_COMPONENTTYPE_DST_FIRST+4) CONST $MIXER_GETLINEINFOF_COMPONENTTYPE=3 CONST $MIXERLINE_COMPONENTTYPE_SRC_FIRST= 0x1000 CONST $MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE= ($MIXERLINE_COMPONENTTYPE_SRC_FIRST+3) CONSt $MIXERLINE_COMPONENTTYPE_DST_WAVEIN =($MIXERLINE_COMPONENTTYPE_DST_FIRST+7) CONST $MIXERLINE_COMPONENTTYPE_DST_LAST =($MIXERLINE_COMPONENTTYPE_DST_FIRST+8) CONSt $MIXER_GETLINEINFOF_SOURCE= 1 CONST $MIXER_GETLINEINFOF_DESTINATION=0 CONST $MIXER_GETLINEINFOF_LINEID =2 CONST $MIXERCONTROL_CT_SC_LIST_SINGLE = 0x00000000 CONST $MIXERCONTROL_CT_CLASS_LIST = 0x70000000 CONST $MIXERCONTROL_CT_SC_LIST_MULTIPLE = 0x01000000 CONST $MIXERCONTROL_CT_UNITS_BOOLEAN = 0x00010000 CONST $MIXERCONTROL_CT_CLASS_MASK = 0xF0000000 CONST $MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT= BitOR($MIXERCONTROL_CT_CLASS_LIST , $MIXERCONTROL_CT_SC_LIST_MULTIPLE , $MIXERCONTROL_CT_UNITS_BOOLEAN) CONST $MIXERCONTROL_CONTROLTYPE_MIXER = ($MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1) CONST $MIXERCONTROL_CONTROLTYPE_SINGLESELECT= BitOR($MIXERCONTROL_CT_CLASS_LIST , $MIXERCONTROL_CT_SC_LIST_SINGLE , $MIXERCONTROL_CT_UNITS_BOOLEAN) CONST $MIXERCONTROL_CONTROLTYPE_MUX =($MIXERCONTROL_CONTROLTYPE_SINGLESELECT+1) CONST $MIXER_GETCONTROLDETAILSF_VALUE= 0 CONST $MIXER_SETCONTROLDETAILSF_VALUE= 0 CONST $MIXERCONTROL_CONTROLF_UNIFORM= 1 CONST $MIXERCONTROL_CONTROLF_MULTIPLE= 2 CONSt $MIXERCONTROL_CT_SC_METER_POLLED =0 CONST $MIXERCONTROL_CT_CLASS_METER= 0x10000000 CONST $MIXERCONTROL_CT_UNITS_SIGNED= 0x20000 CONST $MIXERCONTROL_CT_UNITS_UNSIGNED= 0x30000 CONST $MIXERCONTROL_CT_CLASS_FADER= 0x50000000 CONST $MIXERCONTROL_CT_CLASS_NUMBER= 0x30000000 CONST $MIXERCONTROL_CONTROLTYPE_FADER= BitOR($MIXERCONTROL_CT_CLASS_FADER,$MIXERCONTROL_CT_UNITS_UNSIGNED) CONST $MIXERCONTROL_CONTROLTYPE_VOLUME= ($MIXERCONTROL_CONTROLTYPE_FADER+1) CONST $MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER= BitOR($MIXERCONTROL_CT_CLASS_METER,$MIXERCONTROL_CT_SC_METER_POLLED,$MIXERCONTROL_CT_UNITS_UNSIGNED) CONST $MIXERCONTROL_CONTROLTYPE_UNSIGNED =BitOR($MIXERCONTROL_CT_CLASS_NUMBER,$MIXERCONTROL_CT_UNITS_UNSIGNED) CONST $MIXERCONTROL_CONTROLTYPE_SIGNED =BitOR($MIXERCONTROL_CT_CLASS_NUMBER,$MIXERCONTROL_CT_UNITS_SIGNED) CONST $MIXER_OBJECTF_WAVEIN= 0x20000000 CONST $MIXER_SHORT_NAME_CHARS= 16 CONST $MIXER_LONG_NAME_CHARS= 64 CONST $MIXER_GETLINECONTROLSF_ALL =0 CONST $MIXER_GETLINECONTROLSF_ONEBYID= 1 CONST $MIXER_GETLINECONTROLSF_ONEBYTYPE= 2 CONST $MIXER_OBJECTF_HANDLE= 0x80000000 CONST $MIXER_OBJECTF_MIXER =0 CONST $MIXER_OBJECTF_HMIXER= BitOR ($MIXER_OBJECTF_HANDLE,$MIXER_OBJECTF_MIXER) CONST $MIXER_GETCONTROLDETAILSF_LISTTEXT=1 CONST $CALLBACK_NULL= 0 CONST $WAVE_MAPPED= 4 CONST $MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT =($MIXERLINE_COMPONENTTYPE_SRC_FIRST+8) CONST $wMid=1 CONST $wPid=2 CONST $vDriverVersion=3 CONST $szPname=4 CONST $dwFormats=5 CONST $wChannels=6 CONST $wReserved1=7 CONST $AWICAPS_SIZEOF=$wReserved1+1 ;mixer CONST $fdwSupport=5 CONST $cDestinations=6 CONST $AMXCAPS_SIZEOF=$cDestinations+2 ;leave room for num cells ;line struct CONST $cbStruct=1 CONST $dwDestination=2 CONST $dwSource=3 CONST $dwLineID=4 CONST $fdwLine=5 CONST $dwUser=6 CONST $dwComponentType=7 CONST $cChannels=8 CONST $cConnections=9 CONST $cControls=10 CONST $szShortName=11 CONST $szName=12 CONST $dwType=13 CONST $dwDeviceID=14 CONST $wMMid=15 CONST $wMPid=16 CONST $vMDriverVersion=17 CONST $szMPname=18 $AMXLINE_SIZEOF=$szMPname+2 CONST $cbCStruct= 1 CONST $dwCLineID= 2 CONST $dwControlID= 3 CONST $dwControlType=4 CONST $cCControls= 5 CONST $cbmxctrl= 6 CONST $pamxctrl= 7 CONST $MXXTRLS_SIZEOF=$pamxctrl+2 CONST $lst_destname= 1 CONST $lst_dwComponentType= 2 CONST $lst_ctrid= 3 CONST $MIX_HMXOBJ= 1 CONST $MIX_DEVNAME= 2 CONST $MIX_CAPCDEST= 3 CONST $MIX_RECNAME= 4 CONST $MIX_CCONNECTIONS= 5 CONST $MIX_INCCONTROLS= 6 CONST $MIX_DWLINEID= 7 CONST $MIX_INCHANNELS= 8 CONST $MIX_INMULTIITEMS= 9 CONST $MIX_INCTRLID= 10 CONST $MIX_OUTCHANNELS=11 CONST $MIX_OUTMULTIEMS=12 CONST $MIX_OUTCTRLID= 13 CONST $MIX_LAST=$MIX_OUTCTRLID+1 CONST $AMIX_SIZEOF= $MIX_LAST+1 Dim $mxline[$AMXLINE_SIZEOF] Dim $mixers[1][$AMIX_SIZEOF] Dim $mxInList[2][4] $mixernames="" $FormSelectInput =0 $TV_SelectInput = 0 $CMB_DevName=0 $CKB_EnableLinefocus =0 $defaultmixer=0 $lastlinesrc=-1 $curmixer=$defaultmixer