Streamline (settings) hotkey handling

This moves all hotkeys that were accessible in the audio/publish
settings panes to a new hotkeys settings pane

Also makes the push to talk hotkeys behave like all other (settings)
hotkeys, i.e. as long as a hotkey is configured the hotkey is active
master
palana 2014-08-07 01:19:14 +02:00
parent 5d635e3b6c
commit 0b5158d9e3
12 changed files with 435 additions and 325 deletions

121
OBS.rc
View File

@ -56,7 +56,7 @@ CAPTION "Settings"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
LISTBOX IDC_SETTINGSLIST,3,4,118,386,LBS_OWNERDRAWFIXED | LBS_HASSTRINGS | LBS_NOINTEGRALHEIGHT | WS_VSCROLL | WS_TABSTOP
CONTROL "スタティック",IDC_SUBDIALOG,"Static",SS_LEFTNOWORDWRAP | NOT WS_VISIBLE | WS_GROUP,125,5,427,385,WS_EX_STATICEDGE
CONTROL "Static",IDC_SUBDIALOG,"Static",SS_LEFTNOWORDWRAP | NOT WS_VISIBLE | WS_GROUP,125,5,427,385,WS_EX_STATICEDGE
DEFPUSHBUTTON "OK",IDOK,339,392,67,14
PUSHBUTTON "Cancel",IDCANCEL,412,392,67,14
PUSHBUTTON "Apply",IDC_APPLY,485,392,67,14
@ -89,26 +89,14 @@ BEGIN
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,160,126,240,10,WS_EX_RIGHT
CONTROL "Settings.Publish.SaveToFile",IDC_SAVETOFILE,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,7,126,145,10,WS_EX_RIGHT
RTEXT "Settings.Publish.SavePath",IDC_SAVEPATH_STATIC,7,144,133,8
EDITTEXT IDC_SAVEPATH,143,141,190,14,ES_AUTOHSCROLL
PUSHBUTTON "Browse",IDC_BROWSE,337,141,63,14
RTEXT "Settings.Publish.StartStreamHotkey",IDC_STARTSTREAMHOTKEY_STATIC,7,162,133,8
CONTROL "カスタム1",IDC_STARTSTREAMHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,144,159,80,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STARTSTREAM,225,159,66,14
RTEXT "Settings.Publish.StopStreamHotkey",IDC_STOPSTREAMHOTKEY_STATIC,7,180,133,8
CONTROL "カスタム1",IDC_STOPSTREAMHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,144,177,80,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY,225,177,66,14
RTEXT "Settings.Publish.StartRecordingHotkey",IDC_STARTRECORDINGHOTKEY_STATIC,7,198,133,8
CONTROL "カスタム1",IDC_STARTRECORDINGHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,144,195,80,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STARTRECORDING,225,195,66,14
RTEXT "Settings.Publish.StopRecordingHotkey",IDC_STOPRECORDINGHOTKEY_STATIC,7,216,133,8
CONTROL "カスタム1",IDC_STOPRECORDINGHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,144,213,80,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STOPRECORDING,225,213,66,14
LTEXT "Settings.Info",IDC_INFO,7,353,408,20,NOT WS_VISIBLE
EDITTEXT IDC_SAVEPATH,143,141,214,14,ES_AUTOHSCROLL
PUSHBUTTON "Browse",IDC_BROWSE,359,141,63,14
LTEXT "Settings.Info",IDC_INFO,7,373,408,11,NOT WS_VISIBLE
COMBOBOX IDC_SERVERLIST,144,43,226,59,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
RTEXT ".FMS URL:",IDC_URL_STATIC,4,46,138,8
RTEXT "Settings.Publish.Server",IDC_SERVER_STATIC,4,46,138,8
EDITTEXT IDC_URL,144,43,258,14,ES_AUTOHSCROLL
LTEXT "Service Warnings Go Here",IDC_WARNINGS,7,231,408,120
EDITTEXT IDC_URL,144,43,278,14,ES_AUTOHSCROLL
LTEXT "Service Warnings Go Here",IDC_WARNINGS,7,240,408,132
END
IDD_SETTINGS_ENCODING DIALOGEX 0, 0, 427, 336
@ -208,30 +196,20 @@ BEGIN
PUSHBUTTON "Settings.Audio.ResetMic",IDC_RESETMIC,298,26,122,14
CONTROL "Settings.Audio.ShowOnlyConnectedDevices",IDC_CONNECTEDONLY,
"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,55,275,10
CONTROL "Settings.Audio.PushToTalkHotkey",IDC_PUSHTOTALK,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,10,71,143,10,WS_EX_RIGHT
CONTROL "カスタム1",IDC_PUSHTOTALKHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,159,69,63,14
CONTROL "カスタム2",IDC_PUSHTOTALKHOTKEY2,"OBSHotkeyControlEx",WS_TABSTOP,229,69,63,14
PUSHBUTTON "ClearHotkey",IDC_CLEARPUSHTOTALK,298,69,73,14
RTEXT "Settings.Audio.PushToTalkDelay",IDC_STATIC,5,90,138,8
EDITTEXT IDC_PTTDELAY_EDIT,145,87,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_PTTDELAY,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,186,87,10,14
RTEXT "Settings.Audio.MuteMicHotkey",IDC_STATIC,5,108,138,8
CONTROL "カスタム1",IDC_MUTEMICHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,145,106,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARMUTEMIC,242,106,73,14
RTEXT "Settings.Audio.MuteDesktopHotkey",IDC_STATIC,5,126,138,8
CONTROL "カスタム1",IDC_MUTEDESKTOPHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,145,124,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARMUTEDESKTOP,242,124,73,14
CONTROL "Settings.Audio.ForceMicMono",IDC_FORCEMONO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,145,43,275,10
RTEXT "Settings.Audio.DesktopBoost",IDC_STATIC,5,146,138,8
EDITTEXT IDC_DESKTOPBOOST_EDIT,144,144,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_DESKTOPBOOST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,144,10,14
RTEXT "Settings.Audio.MicBoost",IDC_STATIC,5,164,138,8
EDITTEXT IDC_MICBOOST_EDIT,144,162,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_MICBOOST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,162,10,14
RTEXT "Settings.Audio.MicTimeOffset",IDC_STATIC,5,182,138,8
EDITTEXT IDC_MICTIMEOFFSET_EDIT,144,180,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_MICTIMEOFFSET,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,180,10,14
LTEXT "Settings.Info",IDC_INFO,5,220,408,37,NOT WS_VISIBLE
RTEXT "Settings.Audio.DesktopBoost",IDC_STATIC,5,107,138,8
EDITTEXT IDC_DESKTOPBOOST_EDIT,144,105,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_DESKTOPBOOST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,105,10,14
RTEXT "Settings.Audio.MicBoost",IDC_STATIC,5,125,138,8
EDITTEXT IDC_MICBOOST_EDIT,144,123,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_MICBOOST,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,123,10,14
RTEXT "Settings.Audio.MicTimeOffset",IDC_STATIC,5,143,138,8
EDITTEXT IDC_MICTIMEOFFSET_EDIT,144,141,40,14,ES_AUTOHSCROLL
CONTROL "",IDC_MICTIMEOFFSET,"msctls_updown32",UDS_SETBUDDYINT | UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_ARROWKEYS | UDS_NOTHOUSANDS,185,141,10,14
LTEXT "Settings.Info",IDC_INFO,5,181,408,37,NOT WS_VISIBLE
END
IDD_ENTERNAME DIALOGEX 0, 0, 265, 49
@ -362,7 +340,7 @@ CAPTION "Scene.Hotkey"
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
RTEXT "Scene.Hotkey.Hotkey",IDC_STATIC,7,10,82,8
CONTROL "カスタム1",IDC_HOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,93,7,80,14
CONTROL "Custom1",IDC_HOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,93,7,80,14
PUSHBUTTON "ClearHotkey",IDC_CLEAR,177,7,56,14
DEFPUSHBUTTON "OK",IDOK,130,28,50,14
PUSHBUTTON "Cancel",IDCANCEL,183,28,50,14
@ -999,6 +977,71 @@ IDC_COLORPICKER CURSOR "cursor1.cur"
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (United States) resources
#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU)
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
#pragma code_page(1252)
/////////////////////////////////////////////////////////////////////////////
//
// Dialog
//
IDD_SETTINGS_HOTKEYS DIALOGEX 0, 0, 429, 385
STYLE DS_SETFONT | DS_FIXEDSYS | WS_CHILD | WS_SYSMENU
FONT 8, "MS Shell Dlg", 400, 0, 0x1
BEGIN
GROUPBOX "Settings.Hotkeys.Audio",IDC_STATIC,7,7,413,70
CONTROL "Custom1",IDC_PUSHTOTALKHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,21,63,14
CONTROL "Custom2",IDC_PUSHTOTALKHOTKEY2,"OBSHotkeyControlEx",WS_TABSTOP,223,21,63,14
PUSHBUTTON "ClearHotkey",IDC_CLEARPUSHTOTALK,288,21,73,14
RTEXT "Settings.Audio.PTTHotkeys",IDC_STATIC,16,24,138,8
RTEXT "Settings.Audio.MuteMicHotkey",IDC_STATIC,16,40,138,8
CONTROL "Custom1",IDC_MUTEMICHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,37,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARMUTEMIC,253,37,73,14
RTEXT "Settings.Audio.MuteDesktopHotkey",IDC_STATIC,16,55,138,8
CONTROL "Custom1",IDC_MUTEDESKTOPHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,53,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARMUTEDESKTOP,253,53,73,14
GROUPBOX "Settings.Hotkeys.Publish",IDC_STATIC,7,83,413,101
RTEXT "Settings.Publish.StartStreamHotkey",IDC_STARTSTREAMHOTKEY_STATIC,16,99,138,8
CONTROL "Custom1",IDC_STARTSTREAMHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,96,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STARTSTREAM,253,96,73,14
RTEXT "Settings.Publish.StopStreamHotkey",IDC_STOPSTREAMHOTKEY_STATIC,16,115,138,8
CONTROL "Custom1",IDC_STOPSTREAMHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,112,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY,253,112,73,14
RTEXT "Settings.Publish.StartRecordingHotkey",IDC_STARTRECORDINGHOTKEY_STATIC,16,131,138,8
CONTROL "Custom1",IDC_STARTRECORDINGHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,128,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STARTRECORDING,253,128,73,14
RTEXT "Settings.Publish.StopRecordingHotkey",IDC_STOPRECORDINGHOTKEY_STATIC,16,147,138,8
CONTROL "Custom1",IDC_STOPRECORDINGHOTKEY,"OBSHotkeyControlEx",WS_TABSTOP,156,144,96,14
PUSHBUTTON "ClearHotkey",IDC_CLEARHOTKEY_STOPRECORDING,253,144,73,14
END
/////////////////////////////////////////////////////////////////////////////
//
// DESIGNINFO
//
#ifdef APSTUDIO_INVOKED
GUIDELINES DESIGNINFO
BEGIN
IDD_SETTINGS_HOTKEYS, DIALOG
BEGIN
LEFTMARGIN, 7
RIGHTMARGIN, 420
TOPMARGIN, 7
BOTTOMMARGIN, 376
END
END
#endif // APSTUDIO_INVOKED
#endif // English (United States) resources
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
// English (Ireland) resources

View File

@ -302,6 +302,7 @@
<ClCompile Include="Source\SettingsAudio.cpp" />
<ClCompile Include="Source\SettingsEncoding.cpp" />
<ClCompile Include="Source\SettingsGeneral.cpp" />
<ClCompile Include="Source\SettingsHotkeys.cpp" />
<ClCompile Include="Source\SettingsPublish.cpp" />
<ClCompile Include="Source\SettingsVideo.cpp" />
<ClCompile Include="Source\TextOutputSource.cpp" />

View File

@ -151,6 +151,9 @@
<ClCompile Include="Source\LogUploader.cpp">
<Filter>Source</Filter>
</ClCompile>
<ClCompile Include="Source\SettingsHotkeys.cpp">
<Filter>Source</Filter>
</ClCompile>
</ItemGroup>
<ItemGroup>
<ClInclude Include="Source\D3D10System.h">

View File

@ -1520,9 +1520,9 @@ void OBS::ReloadIniSettings()
QuickClearHotkey(stopRecordingHotkeyID);
QuickClearHotkey(startRecordingHotkeyID);
bUsingPushToTalk = AppConfig->GetInt(TEXT("Audio"), TEXT("UsePushToTalk")) != 0;
DWORD hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey"));
DWORD hotkey2 = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey2"));
bUsingPushToTalk = hotkey || hotkey2;
pushToTalkDelay = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkDelay"), 200);
if(bUsingPushToTalk && hotkey)

View File

@ -665,6 +665,7 @@ private:
friend class SettingsVideo;
friend class SettingsAudio;
friend class SettingsAdvanced;
friend class SettingsHotkeys;
//---------------------------------------------------
// mainly manly main window stuff

View File

@ -132,8 +132,9 @@ void OBS::AddBuiltInSettingsPanes()
AddSettingsPane(new SettingsPublish());
AddSettingsPane(new SettingsVideo());
AddSettingsPane(new SettingsAudio());
AddSettingsPane(new SettingsHotkeys());
AddSettingsPane(new SettingsAdvanced());
numberOfBuiltInSettingsPanes = 6;
numberOfBuiltInSettingsPanes = 7;
}
void OBS::SetChangedSettings(bool bChanged)

View File

@ -235,3 +235,30 @@ public:
private:
void SelectPresetDialog(bool useQSV, bool useNVENC);
};
//============================================================================
// SettingsHotkeys class
class SettingsHotkeys : public SettingsPane
{
//-----------------------------------------------------------------------
// Constructor/destructor
public:
SettingsHotkeys();
virtual ~SettingsHotkeys() override;
//-----------------------------------------------------------------------
// Methods
public:
// Interface
virtual CTSTR GetCategory() const override;
virtual HWND CreatePane(HWND parentHwnd) override;
virtual void DestroyPane() override;
virtual INT_PTR ProcMessage(UINT message, WPARAM wParam, LPARAM lParam) override;
virtual void ApplySettings() override;
virtual void CancelSettings() override;
virtual bool HasDefaults() const override;
};

View File

@ -83,65 +83,13 @@ void SettingsAudio::ApplySettings()
//------------------------------------
App->bUsingPushToTalk = SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALK), BM_GETCHECK, 0, 0) == BST_CHECKED;
DWORD hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_GETHOTKEY, 0, 0);
DWORD hotkey2 = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_GETHOTKEY, 0, 0);
App->pushToTalkDelay = (int)SendMessage(GetDlgItem(hwnd, IDC_PTTDELAY), UDM_GETPOS32, 0, 0);
if(App->pushToTalkDelay < 0)
App->pushToTalkDelay = 0;
else if(App->pushToTalkDelay > 2000)
App->pushToTalkDelay = 2000;
AppConfig->SetInt(TEXT("Audio"), TEXT("UsePushToTalk"), App->bUsingPushToTalk);
AppConfig->SetInt(TEXT("Audio"), TEXT("PushToTalkHotkey"), hotkey);
AppConfig->SetInt(TEXT("Audio"), TEXT("PushToTalkHotkey2"), hotkey2);
AppConfig->SetInt(TEXT("Audio"), TEXT("PushToTalkDelay"), (int)App->pushToTalkDelay);
if (App->pushToTalkHotkeyID)
{
API->DeleteHotkey(App->pushToTalkHotkeyID);
App->pushToTalkHotkeyID = 0;
}
if (App->pushToTalkHotkey2ID)
{
API->DeleteHotkey(App->pushToTalkHotkey2ID);
App->pushToTalkHotkey2ID = 0;
}
if(App->bUsingPushToTalk && hotkey)
App->pushToTalkHotkeyID = API->CreateHotkey(hotkey, OBS::PushToTalkHotkey, NULL);
if(App->bUsingPushToTalk && hotkey2)
App->pushToTalkHotkey2ID = API->CreateHotkey(hotkey2, OBS::PushToTalkHotkey, NULL);
//------------------------------------
hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Audio"), TEXT("MuteMicHotkey"), hotkey);
if(App->muteMicHotkeyID)
{
API->DeleteHotkey(App->muteMicHotkeyID);
App->muteDesktopHotkeyID = 0;
}
if(hotkey)
App->muteMicHotkeyID = API->CreateHotkey(hotkey, OBS::MuteMicHotkey, NULL);
//------------------------------------
hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Audio"), TEXT("MuteDesktopHotkey"), hotkey);
if(App->muteDesktopHotkeyID)
{
API->DeleteHotkey(App->muteDesktopHotkeyID);
App->muteDesktopHotkeyID = 0;
}
if(hotkey)
App->muteDesktopHotkeyID = API->CreateHotkey(hotkey, OBS::MuteDesktopHotkey, NULL);
//------------------------------------
App->bForceMicMono = SendMessage(GetDlgItem(hwnd, IDC_FORCEMONO), BM_GETCHECK, 0, 0) == BST_CHECKED;
@ -301,35 +249,12 @@ INT_PTR SettingsAudio::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
//--------------------------------------------
BOOL bPushToTalk = AppConfig->GetInt(TEXT("Audio"), TEXT("UsePushToTalk"));
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALK), BM_SETCHECK, bPushToTalk ? BST_CHECKED : BST_UNCHECKED, 0);
EnableWindow(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), bPushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), bPushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_CLEARPUSHTOTALK), bPushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PTTDELAY_EDIT), bPushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PTTDELAY), bPushToTalk);
DWORD hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_SETHOTKEY, hotkey, 0);
DWORD hotkey2 = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey2"));
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_SETHOTKEY, hotkey2, 0);
int pttDelay = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkDelay"), 200);
SendMessage(GetDlgItem(hwnd, IDC_PTTDELAY), UDM_SETRANGE32, 0, 2000);
SendMessage(GetDlgItem(hwnd, IDC_PTTDELAY), UDM_SETPOS32, 0, pttDelay);
//--------------------------------------------
hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("MuteMicHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_SETHOTKEY, hotkey, 0);
//--------------------------------------------
hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("MuteDesktopHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_SETHOTKEY, hotkey, 0);
//--------------------------------------------
BOOL bForceMono = AppConfig->GetInt(TEXT("Audio"), TEXT("ForceMicMono"));
SendMessage(GetDlgItem(hwnd, IDC_FORCEMONO), BM_SETCHECK, bForceMono ? BST_CHECKED : BST_UNCHECKED, 0);
@ -385,19 +310,6 @@ INT_PTR SettingsAudio::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
switch(LOWORD(wParam))
{
case IDC_PUSHTOTALK:
if(HIWORD(wParam) == BN_CLICKED)
{
BOOL bUsePushToTalk = SendMessage((HWND)lParam, BM_GETCHECK, 0, 0) == BST_CHECKED;
EnableWindow(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), bUsePushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), bUsePushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_CLEARPUSHTOTALK), bUsePushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PTTDELAY_EDIT), bUsePushToTalk);
EnableWindow(GetDlgItem(hwnd, IDC_PTTDELAY), bUsePushToTalk);
SetChangedSettings(true);
}
break;
case IDC_RESETMIC:
{
App->ResetMic();
@ -417,40 +329,11 @@ INT_PTR SettingsAudio::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
case IDC_MICTIMEOFFSET_EDIT:
case IDC_DESKTOPBOOST_EDIT:
case IDC_MICBOOST_EDIT:
case IDC_PUSHTOTALKHOTKEY:
case IDC_PUSHTOTALKHOTKEY2:
case IDC_MUTEMICHOTKEY:
case IDC_MUTEDESKTOPHOTKEY:
case IDC_PTTDELAY_EDIT:
if(HIWORD(wParam) == EN_CHANGE)
SetChangedSettings(true);
break;
case IDC_CLEARPUSHTOTALK:
if(HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_SETHOTKEY, 0, 0);
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_CLEARMUTEMIC:
if(HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_CLEARMUTEDESKTOP:
if(HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_FORCEMONO:
if(HIWORD(wParam) == BN_CLICKED)
SetChangedSettings(true);

311
Source/SettingsHotkeys.cpp Normal file
View File

@ -0,0 +1,311 @@
/********************************************************************************
Copyright (C) 2014 Ruwen Hahn <palana@stunned.de>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
********************************************************************************/
#include "Settings.h"
//============================================================================
// SettingsHotkeys class
SettingsHotkeys::SettingsHotkeys()
: SettingsPane()
{
}
SettingsHotkeys::~SettingsHotkeys()
{
}
CTSTR SettingsHotkeys::GetCategory() const
{
static CTSTR name = Str("Settings.Hotkeys");
return name;
}
HWND SettingsHotkeys::CreatePane(HWND parentHwnd)
{
hwnd = OBSCreateDialog(hinstMain, MAKEINTRESOURCE(IDD_SETTINGS_HOTKEYS), parentHwnd, (DLGPROC)DialogProc, (LPARAM)this);
return hwnd;
}
void SettingsHotkeys::DestroyPane()
{
DestroyWindow(hwnd);
hwnd = nullptr;
}
void SettingsHotkeys::ApplySettings()
{
//------------------------------------
DWORD hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_GETHOTKEY, 0, 0);
DWORD hotkey2 = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_GETHOTKEY, 0, 0);
App->bUsingPushToTalk = hotkey || hotkey2;
AppConfig->SetInt(TEXT("Audio"), TEXT("PushToTalkHotkey"), hotkey);
AppConfig->SetInt(TEXT("Audio"), TEXT("PushToTalkHotkey2"), hotkey2);
if (App->pushToTalkHotkeyID)
{
API->DeleteHotkey(App->pushToTalkHotkeyID);
App->pushToTalkHotkeyID = 0;
}
if (App->pushToTalkHotkey2ID)
{
API->DeleteHotkey(App->pushToTalkHotkey2ID);
App->pushToTalkHotkey2ID = 0;
}
if (App->bUsingPushToTalk && hotkey)
App->pushToTalkHotkeyID = API->CreateHotkey(hotkey, OBS::PushToTalkHotkey, NULL);
if (App->bUsingPushToTalk && hotkey2)
App->pushToTalkHotkey2ID = API->CreateHotkey(hotkey2, OBS::PushToTalkHotkey, NULL);
//------------------------------------
hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Audio"), TEXT("MuteMicHotkey"), hotkey);
if (App->muteMicHotkeyID)
{
API->DeleteHotkey(App->muteMicHotkeyID);
App->muteDesktopHotkeyID = 0;
}
if (hotkey)
App->muteMicHotkeyID = API->CreateHotkey(hotkey, OBS::MuteMicHotkey, NULL);
//------------------------------------
hotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Audio"), TEXT("MuteDesktopHotkey"), hotkey);
if (App->muteDesktopHotkeyID)
{
API->DeleteHotkey(App->muteDesktopHotkeyID);
App->muteDesktopHotkeyID = 0;
}
if (hotkey)
App->muteDesktopHotkeyID = API->CreateHotkey(hotkey, OBS::MuteDesktopHotkey, NULL);
//------------------------------------------
DWORD stopStreamHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StopStreamHotkey"), stopStreamHotkey);
if (App->stopStreamHotkeyID)
{
API->DeleteHotkey(App->stopStreamHotkeyID);
App->stopStreamHotkeyID = 0;
}
if (stopStreamHotkey)
App->stopStreamHotkeyID = API->CreateHotkey(stopStreamHotkey, OBS::StopStreamHotkey, NULL);
//------------------------------------------
DWORD startStreamHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StartStreamHotkey"), startStreamHotkey);
if (App->startStreamHotkeyID)
{
API->DeleteHotkey(App->startStreamHotkeyID);
App->startStreamHotkeyID = 0;
}
if (startStreamHotkey)
App->startStreamHotkeyID = API->CreateHotkey(startStreamHotkey, OBS::StartStreamHotkey, NULL);
//------------------------------------------
DWORD stopRecordingHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StopRecordingHotkey"), stopRecordingHotkey);
if (App->stopRecordingHotkeyID)
{
API->DeleteHotkey(App->stopRecordingHotkeyID);
App->stopRecordingHotkeyID = 0;
}
if (stopRecordingHotkey)
App->stopRecordingHotkeyID = API->CreateHotkey(stopRecordingHotkey, OBS::StopRecordingHotkey, NULL);
//------------------------------------------
DWORD startRecordingHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StartRecordingHotkey"), startRecordingHotkey);
if (App->startRecordingHotkeyID)
{
API->DeleteHotkey(App->startRecordingHotkeyID);
App->startRecordingHotkeyID = 0;
}
if (startRecordingHotkey)
App->startRecordingHotkeyID = API->CreateHotkey(startRecordingHotkey, OBS::StartRecordingHotkey, NULL);
}
void SettingsHotkeys::CancelSettings()
{
}
bool SettingsHotkeys::HasDefaults() const
{
return false;
}
INT_PTR SettingsHotkeys::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
{
LocalizeWindow(hwnd);
//--------------------------------------------
DWORD hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_SETHOTKEY, hotkey, 0);
DWORD hotkey2 = AppConfig->GetInt(TEXT("Audio"), TEXT("PushToTalkHotkey2"));
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_SETHOTKEY, hotkey2, 0);
//--------------------------------------------
hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("MuteMicHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_SETHOTKEY, hotkey, 0);
//--------------------------------------------
hotkey = AppConfig->GetInt(TEXT("Audio"), TEXT("MuteDesktopHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_SETHOTKEY, hotkey, 0);
//--------------------------------------------
DWORD startHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StartStreamHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_SETHOTKEY, startHotkey, 0);
//--------------------------------------------
DWORD stopHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StopStreamHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_SETHOTKEY, stopHotkey, 0);
//--------------------------------------------
startHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StartRecordingHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_SETHOTKEY, startHotkey, 0);
//--------------------------------------------
stopHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StopRecordingHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_SETHOTKEY, stopHotkey, 0);
//--------------------------------------------
//need this as some of the dialog item sets above trigger the notifications
SetChangedSettings(false);
return TRUE;
}
case WM_COMMAND:
switch (LOWORD(wParam))
{
case IDC_PUSHTOTALKHOTKEY:
case IDC_PUSHTOTALKHOTKEY2:
case IDC_MUTEMICHOTKEY:
case IDC_MUTEDESKTOPHOTKEY:
case IDC_STARTSTREAMHOTKEY:
case IDC_STOPSTREAMHOTKEY:
case IDC_STARTRECORDINGHOTKEY:
case IDC_STOPRECORDINGHOTKEY:
if (HIWORD(wParam) == EN_CHANGE)
SetChangedSettings(true);
break;
case IDC_CLEARPUSHTOTALK:
if (HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY), HKM_SETHOTKEY, 0, 0);
SendMessage(GetDlgItem(hwnd, IDC_PUSHTOTALKHOTKEY2), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_CLEARMUTEMIC:
if (HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_MUTEMICHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_CLEARMUTEDESKTOP:
if (HIWORD(wParam) == BN_CLICKED)
{
SendMessage(GetDlgItem(hwnd, IDC_MUTEDESKTOPHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
break;
case IDC_CLEARHOTKEY_STARTSTREAM:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY_STARTRECORDING:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY_STOPRECORDING:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
}
}
return FALSE;
}

View File

@ -149,62 +149,6 @@ void SettingsPublish::ApplySettings()
//------------------------------------------
DWORD stopStreamHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StopStreamHotkey"), stopStreamHotkey);
if(App->stopStreamHotkeyID)
{
API->DeleteHotkey(App->stopStreamHotkeyID);
App->stopStreamHotkeyID = 0;
}
if(stopStreamHotkey)
App->stopStreamHotkeyID = API->CreateHotkey(stopStreamHotkey, OBS::StopStreamHotkey, NULL);
//------------------------------------------
DWORD startStreamHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StartStreamHotkey"), startStreamHotkey);
if(App->startStreamHotkeyID)
{
API->DeleteHotkey(App->startStreamHotkeyID);
App->startStreamHotkeyID = 0;
}
if(startStreamHotkey)
App->startStreamHotkeyID = API->CreateHotkey(startStreamHotkey, OBS::StartStreamHotkey, NULL);
//------------------------------------------
DWORD stopRecordingHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StopRecordingHotkey"), stopRecordingHotkey);
if (App->stopRecordingHotkeyID)
{
API->DeleteHotkey(App->stopRecordingHotkeyID);
App->stopRecordingHotkeyID = 0;
}
if (stopRecordingHotkey)
App->stopRecordingHotkeyID = API->CreateHotkey(stopRecordingHotkey, OBS::StopRecordingHotkey, NULL);
//------------------------------------------
DWORD startRecordingHotkey = (DWORD)SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0);
AppConfig->SetInt(TEXT("Publish"), TEXT("StartRecordingHotkey"), startRecordingHotkey);
if (App->startRecordingHotkeyID)
{
API->DeleteHotkey(App->startRecordingHotkeyID);
App->startRecordingHotkeyID = 0;
}
if (startRecordingHotkey)
App->startRecordingHotkeyID = API->CreateHotkey(startRecordingHotkey, OBS::StartRecordingHotkey, NULL);
//------------------------------------------
App->ConfigureStreamButtons();
/*
@ -686,42 +630,10 @@ INT_PTR SettingsPublish::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_BROWSE), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTSTREAM), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTRECORDING), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STOPRECORDING), 0, -data.fileControlOffset);
}
//--------------------------------------------
DWORD startHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StartStreamHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_SETHOTKEY, startHotkey, 0);
//--------------------------------------------
DWORD stopHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StopStreamHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_SETHOTKEY, stopHotkey, 0);
//--------------------------------------------
startHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StartRecordingHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_SETHOTKEY, startHotkey, 0);
//--------------------------------------------
stopHotkey = AppConfig->GetInt(TEXT("Publish"), TEXT("StopRecordingHotkey"));
SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_SETHOTKEY, stopHotkey, 0);
//--------------------------------------------
BOOL bKeepRecording = AppConfig->GetInt(TEXT("Publish"), TEXT("KeepRecording"));
SendMessage(GetDlgItem(hwnd, IDC_KEEPRECORDING), BM_SETCHECK, bKeepRecording ? BST_CHECKED : BST_UNCHECKED, 0);
@ -815,18 +727,6 @@ INT_PTR SettingsPublish::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH_STATIC), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_BROWSE), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY_STATIC), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY_STATIC), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTSTREAM), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY_STATIC), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY_STATIC), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTRECORDING), 0, data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STOPRECORDING), 0, data.fileControlOffset);
}
else if(mode == 1 && data.mode == 0)
@ -834,18 +734,6 @@ INT_PTR SettingsPublish::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_SAVEPATH), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_BROWSE), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTSTREAM), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY_STATIC), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STARTRECORDING), 0, -data.fileControlOffset);
AdjustWindowPos(GetDlgItem(hwnd, IDC_CLEARHOTKEY_STOPRECORDING), 0, -data.fileControlOffset);
}
data.mode = mode;
@ -1023,15 +911,6 @@ INT_PTR SettingsPublish::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
bDataChanged = true;
break;
case IDC_STARTSTREAMHOTKEY:
case IDC_STOPSTREAMHOTKEY:
//case IDC_DASHBOARDLINK:
case IDC_STARTRECORDINGHOTKEY:
case IDC_STOPRECORDINGHOTKEY:
if(HIWORD(wParam) == EN_CHANGE)
SetChangedSettings(true);
break;
case IDC_PLAYPATH:
case IDC_URL:
case IDC_SAVEPATH:
@ -1039,50 +918,6 @@ INT_PTR SettingsPublish::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam)
bDataChanged = true;
break;
case IDC_CLEARHOTKEY_STARTSTREAM:
if(HIWORD(wParam) == BN_CLICKED)
{
if(SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STARTSTREAMHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY:
if(HIWORD(wParam) == BN_CLICKED)
{
if(SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STOPSTREAMHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY_STARTRECORDING:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STARTRECORDINGHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_CLEARHOTKEY_STOPRECORDING:
if (HIWORD(wParam) == BN_CLICKED)
{
if (SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_GETHOTKEY, 0, 0))
{
SendMessage(GetDlgItem(hwnd, IDC_STOPRECORDINGHOTKEY), HKM_SETHOTKEY, 0, 0);
SetChangedSettings(true);
}
}
break;
case IDC_SERVERLIST:
if(HIWORD(wParam) == CBN_EDITCHANGE || HIWORD(wParam) == CBN_SELCHANGE)
bDataChanged = true;

View File

@ -39,6 +39,7 @@
#define IDD_CONFIGUREMONITORCAPTURE 144
#define IDD_STATS 145
#define IDD_LOGUPLOADED 147
#define IDD_SETTINGS_HOTKEYS 149
#define IDC_SETTINGSLIST 1006
#define IDC_SUBDIALOG 1007
#define IDC_MODE 1008
@ -379,7 +380,7 @@
//
#ifdef APSTUDIO_INVOKED
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NEXT_RESOURCE_VALUE 149
#define _APS_NEXT_RESOURCE_VALUE 150
#define _APS_NEXT_COMMAND_VALUE 40081
#define _APS_NEXT_CONTROL_VALUE 1178
#define _APS_NEXT_SYMED_VALUE 101

View File

@ -153,6 +153,10 @@ Settings.Publish="Broadcast Settings"
Settings.SaveChangesPrompt="Would you like to save and apply your changes?"
Settings.SaveChangesTitle="Apply settings?"
Settings.Video="Video"
Settings.Hotkeys="Hotkeys"
Settings.Hotkeys.Audio="Audio"
Settings.Hotkeys.Publish="Broadcast"
Settings.Advanced.AutomaticLatency="Automatic low latency mode:"
Settings.Advanced.AllowOtherHotkeyModifiers="Allow other modifiers on hotkeys"
@ -197,7 +201,7 @@ Settings.Audio.MuteDesktopHotkey="Mute/Unmute Desktop Hotkey:"
Settings.Audio.MuteMicHotkey="Mute/Unmute Mic Hotkey:"
Settings.Audio.PlaybackDevice="Desktop Audio Device:"
Settings.Audio.PushToTalkDelay="Push-to-talk Delay (milliseconds):"
Settings.Audio.PushToTalkHotkey="Use Push-to-talk:"
Settings.Audio.PTTHotkeys="Push-to-talk Hotkeys:"
Settings.Audio.ShowOnlyConnectedDevices="Show only connected devices"
Settings.Audio.UseInputDevices="Use Input device for desktop audio"
Settings.Audio.UseMicQPC="Use Mic QPC timestamps"