direct show plugin: removed the "disable audio" radio button, added a "disable" item in the audio devices list box instead
parent
139a1119fd
commit
82eea21991
|
@ -1036,22 +1036,16 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
audioDeviceID = (UINT)SendMessage(hwndAudioList, CB_FINDSTRINGEXACT, -1, (LPARAM)strAudioDevice.Array());
|
||||
|
||||
if(audioDeviceID == CB_ERR)
|
||||
{
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, 0, 0);
|
||||
ConfigureDialogProc(hwnd, WM_COMMAND, MAKEWPARAM(IDC_AUDIOLIST, CBN_SELCHANGE), (LPARAM)hwndAudioList);
|
||||
}
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, configData->bDeviceHasAudio ? 1 : 0, 0); //yes, I know, but the output is not a bool
|
||||
else
|
||||
{
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, audioDeviceID, 0);
|
||||
ConfigureDialogProc(hwnd, WM_COMMAND, MAKEWPARAM(IDC_AUDIOLIST, CBN_SELCHANGE), (LPARAM)hwndAudioList);
|
||||
}
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
HWND hwndTemp;
|
||||
|
||||
int soundOutputType = configData->data->GetInt(TEXT("soundOutputType"));
|
||||
switch(soundOutputType)
|
||||
{
|
||||
case 0: hwndTemp = GetDlgItem(hwnd, IDC_NOSOUND); break;
|
||||
int soundOutputType = configData->data->GetInt(TEXT("soundOutputType"), 1);
|
||||
switch(soundOutputType) {
|
||||
case 0:
|
||||
case 1: hwndTemp = GetDlgItem(hwnd, IDC_OUTPUTSOUND); break;
|
||||
case 2: hwndTemp = GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND); break;
|
||||
}
|
||||
|
@ -1062,6 +1056,11 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET_EDIT), soundOutputType == 1);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_VOLUME), soundOutputType != 0);
|
||||
|
||||
if (soundOutputType == 0)
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, 0, 0);
|
||||
|
||||
ConfigureDialogProc(hwnd, WM_COMMAND, MAKEWPARAM(IDC_AUDIOLIST, CBN_SELCHANGE), (LPARAM)hwndAudioList);
|
||||
|
||||
//------------------------------------------
|
||||
|
||||
float fVol = configData->data->GetFloat(TEXT("volume"), 1.0f);
|
||||
|
@ -1193,17 +1192,6 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
}
|
||||
break;
|
||||
|
||||
case IDC_NOSOUND:
|
||||
case IDC_PLAYDESKTOPSOUND:
|
||||
case IDC_OUTPUTSOUND:
|
||||
if(HIWORD(wParam) == BN_CLICKED)
|
||||
{
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET), LOWORD(wParam) == IDC_OUTPUTSOUND);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET_EDIT), LOWORD(wParam) == IDC_OUTPUTSOUND);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_VOLUME), LOWORD(wParam) != IDC_NOSOUND);
|
||||
}
|
||||
break;
|
||||
|
||||
case IDC_VOLUME:
|
||||
if(HIWORD(wParam) == VOLN_ADJUSTING || HIWORD(wParam) == VOLN_FINALVALUE)
|
||||
{
|
||||
|
@ -1229,14 +1217,14 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
if(source)
|
||||
source->SetInt(TEXT("useChromaKey"), bUseChromaKey);
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_COLOR), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SELECTCOLOR), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BASETHRESHOLD_EDIT), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BASETHRESHOLD), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BLEND_EDIT), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BLEND), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_COLOR), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SELECTCOLOR), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BASETHRESHOLD_EDIT), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BASETHRESHOLD), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BLEND_EDIT), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_BLEND), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SPILLREDUCTION_EDIT), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SPILLREDUCTION), bUseChromaKey);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_SPILLREDUCTION), bUseChromaKey);
|
||||
break;
|
||||
}
|
||||
|
||||
|
@ -1474,27 +1462,29 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
configData->audioIDList.Insert(0, NULL);
|
||||
}
|
||||
|
||||
CTSTR pDisabled = Str("Disable");
|
||||
SendMessage(hwndAudioList, CB_INSERTSTRING, 0, (LPARAM)pDisabled);
|
||||
configData->audioNameList.Insert(0, pDisabled);
|
||||
configData->audioIDList.Insert(0, TEXT("Disabled"));
|
||||
|
||||
EnableWindow(hwndAudioList, bAudioDevicesPresent);
|
||||
|
||||
if (!bAudioDevicesPresent)
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_CONFIGAUDIO), FALSE);
|
||||
|
||||
bool bHasAudio = configData->bDeviceHasAudio || bAudioDevicesPresent;
|
||||
bool bHasAudio = configData->bDeviceHasAudio;
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_NOSOUND), bHasAudio);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND), bHasAudio);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_OUTPUTSOUND), bHasAudio);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET), bHasAudio);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET_EDIT), bHasAudio);
|
||||
|
||||
if (bHasAudio) {
|
||||
if (bHasAudio)
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, 1, 0);
|
||||
else
|
||||
SendMessage(hwndAudioList, CB_SETCURSEL, 0, 0);
|
||||
ConfigureDialogProc(hwnd, WM_COMMAND, MAKEWPARAM(IDC_AUDIOLIST, CBN_SELCHANGE), (LPARAM)hwndAudioList);
|
||||
} else {
|
||||
SendMessage(GetDlgItem(hwnd, IDC_NOSOUND), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_OUTPUTSOUND), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
}
|
||||
|
||||
ConfigureDialogProc(hwnd, WM_COMMAND, MAKEWPARAM(IDC_AUDIOLIST, CBN_SELCHANGE), (LPARAM)hwndAudioList);
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -1505,12 +1495,8 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
HWND hwndDevices = (HWND)lParam;
|
||||
UINT id = (UINT)SendMessage(hwndDevices, CB_GETCURSEL, 0, 0);
|
||||
|
||||
if (id == CB_ERR) {
|
||||
SendMessage(GetDlgItem(hwnd, IDC_NOSOUND), BM_SETCHECK, BST_CHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
SendMessage(GetDlgItem(hwnd, IDC_OUTPUTSOUND), BM_SETCHECK, BST_UNCHECKED, 0);
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_NOSOUND), FALSE);
|
||||
if (id == CB_ERR || id == 0) {
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_CONFIGAUDIO), FALSE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND), FALSE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_OUTPUTSOUND), FALSE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET), FALSE);
|
||||
|
@ -1528,7 +1514,6 @@ INT_PTR CALLBACK ConfigureDialogProc(HWND hwnd, UINT message, WPARAM wParam, LPA
|
|||
EnableWindow(GetDlgItem(hwnd, IDC_CONFIGAUDIO), FALSE);
|
||||
}
|
||||
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_NOSOUND), TRUE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_PLAYDESKTOPSOUND), TRUE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_OUTPUTSOUND), TRUE);
|
||||
EnableWindow(GetDlgItem(hwnd, IDC_TIMEOFFSET), TRUE);
|
||||
|
|
|
@ -81,18 +81,17 @@ BEGIN
|
|||
CONTROL "DeviceSelection.UseBuffering",IDC_USEBUFFERING,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,18,140,117,10,WS_EX_RIGHT
|
||||
EDITTEXT IDC_DELAY_EDIT,138,137,40,14,ES_AUTOHSCROLL
|
||||
CONTROL "",IDC_DELAY,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,178,137,10,14
|
||||
GROUPBOX "DeviceSelection.Sound",IDC_STATIC,234,56,187,146,WS_GROUP
|
||||
GROUPBOX "DeviceSelection.Sound",IDC_STATIC,234,56,187,136,WS_GROUP
|
||||
LTEXT "DeviceSelection.AudioDevice",IDC_STATIC,243,73,117,8
|
||||
COMBOBOX IDC_AUDIOLIST,243,85,169,12,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
|
||||
PUSHBUTTON "DeviceSelection.Config",IDC_CONFIGAUDIO,335,101,78,13
|
||||
CONTROL "ƒJƒXƒ^ƒ€1",IDC_VOLUME,"OBSVolumeControl",WS_TABSTOP,243,120,118,19
|
||||
CONTROL "DeviceSelection.NoSound",IDC_NOSOUND,"Button",BS_AUTORADIOBUTTON,243,145,163,10
|
||||
CONTROL "DeviceSelection.OutputSound",IDC_OUTPUTSOUND,"Button",BS_AUTORADIOBUTTON,243,156,163,10
|
||||
LTEXT "DeviceSelection.SoundOffset",IDC_STATIC,239,171,117,8,NOT WS_GROUP,WS_EX_RIGHT
|
||||
EDITTEXT IDC_TIMEOFFSET_EDIT,361,168,40,14,ES_AUTOHSCROLL
|
||||
CONTROL "DeviceSelection.OutputSound",IDC_OUTPUTSOUND,"Button",BS_AUTORADIOBUTTON,243,145,163,10
|
||||
LTEXT "DeviceSelection.SoundOffset",IDC_STATIC,239,160,117,8,NOT WS_GROUP,WS_EX_RIGHT
|
||||
EDITTEXT IDC_TIMEOFFSET_EDIT,361,157,40,14,ES_AUTOHSCROLL
|
||||
CONTROL "",IDC_TIMEOFFSET,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,401,168,11,14
|
||||
CONTROL "DeviceSelection.PlayToDesktop",IDC_PLAYDESKTOPSOUND,
|
||||
"Button",BS_AUTORADIOBUTTON,243,186,163,10
|
||||
"Button",BS_AUTORADIOBUTTON,243,175,163,10
|
||||
GROUPBOX "DeviceSelection.ChromaKey",IDC_STATIC,7,163,216,99
|
||||
CONTROL "DeviceSelection.UseChromaKey",IDC_USECHROMAKEY,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,13,175,130,10,WS_EX_RIGHT
|
||||
RTEXT "DeviceSelection.Color",IDC_STATIC,14,191,117,8
|
||||
|
|
|
@ -246,7 +246,9 @@ bool DeviceSource::LoadFilters()
|
|||
goto cleanFinish;
|
||||
}
|
||||
|
||||
soundOutputType = data->GetInt(TEXT("soundOutputType"));
|
||||
soundOutputType = data->GetInt(TEXT("soundOutputType")); //0 is for backward-compatibility
|
||||
if (strAudioID.CompareI(TEXT("Disabled")))
|
||||
soundOutputType = 0;
|
||||
|
||||
if(soundOutputType != 0)
|
||||
{
|
||||
|
|
|
@ -42,7 +42,6 @@
|
|||
#define IDC_OPACITY 1028
|
||||
#define IDC_OUTPUTSOUND 1029
|
||||
#define IDC_PLAYDESKTOPSOUND 1030
|
||||
#define IDC_NOSOUND 1031
|
||||
#define IDC_EDIT1 1032
|
||||
#define IDC_TIMEOFFSET_EDIT 1032
|
||||
#define IDC_TIMEOFFSET 1033
|
||||
|
|
|
@ -97,6 +97,16 @@ public:
|
|||
SubItems.SwapValues(i, SubItems.Num()-1-i);
|
||||
}
|
||||
|
||||
inline bool HasItem(CTSTR lpName) const
|
||||
{
|
||||
for (UINT i=0; i<SubItems.Num(); i++) {
|
||||
if (SubItems[i]->strName.CompareI(lpName))
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
CTSTR GetString(CTSTR lpName, TSTR def=NULL) const;
|
||||
int GetInt(CTSTR lpName, int def=0) const;
|
||||
float GetFloat(CTSTR lpName, float def=0.0f) const;
|
||||
|
|
Loading…
Reference in New Issue