void ControllerInterface::ChangeWindow(void* hwnd) { if (!m_is_init) return; m_wsi.render_surface = hwnd; RefreshDevices(); }
void MappingWindow::OnLoadProfilePressed() { const QString profile_path = m_profiles_combo->currentData().toString(); if (m_profiles_combo->currentIndex() == 0) return; IniFile ini; ini.Load(profile_path.toStdString()); m_controller->LoadConfig(ini.GetOrCreateSection("Profile")); m_controller->UpdateReferences(g_controller_interface); emit Update(); RefreshDevices(); }
void ControllerInterface::Initialize(const WindowSystemInfo& wsi) { if (m_is_init) return; m_wsi = wsi; // Allow backends to add devices as soon as they are initialized. m_is_init = true; m_is_populating_devices = true; #ifdef CIFACE_USE_DINPUT // nothing needed #endif #ifdef CIFACE_USE_XINPUT ciface::XInput::Init(); #endif #ifdef CIFACE_USE_XLIB // nothing needed #endif #ifdef CIFACE_USE_OSX if (m_wsi.type == WindowSystemType::MacOS) ciface::OSX::Init(wsi.render_surface); // nothing needed for Quartz #endif #ifdef CIFACE_USE_SDL ciface::SDL::Init(); #endif #ifdef CIFACE_USE_ANDROID // nothing needed #endif #ifdef CIFACE_USE_EVDEV ciface::evdev::Init(); #endif #ifdef CIFACE_USE_PIPES // nothing needed #endif RefreshDevices(); }
INT_PTR SettingsAudio::ProcMessage(UINT message, WPARAM wParam, LPARAM lParam) { switch(message) { case WM_INITDIALOG: { LocalizeWindow(hwnd); //-------------------------------------------- bDisplayConnectedOnly = GlobalConfig->GetInt(L"Audio", L"DisplayConntectedOnly", true) != 0; SendMessage(GetDlgItem(hwnd, IDC_CONNECTEDONLY), BM_SETCHECK, bDisplayConnectedOnly ? BST_CHECKED : BST_UNCHECKED, 0); RefreshDevices(); //-------------------------------------------- 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); //-------------------------------------------- DWORD desktopBoost = GlobalConfig->GetInt(TEXT("Audio"), TEXT("DesktopBoostMultiple"), 1); if(desktopBoost < 1) desktopBoost = 1; else if(desktopBoost > 20) desktopBoost = 20; SendMessage(GetDlgItem(hwnd, IDC_DESKTOPBOOST), UDM_SETRANGE32, 1, 20); SendMessage(GetDlgItem(hwnd, IDC_DESKTOPBOOST), UDM_SETPOS32, 0, desktopBoost); //-------------------------------------------- DWORD micBoost = AppConfig->GetInt(TEXT("Audio"), TEXT("MicBoostMultiple"), 1); if(micBoost < 1) micBoost = 1; else if(micBoost > 20) micBoost = 20; SendMessage(GetDlgItem(hwnd, IDC_MICBOOST), UDM_SETRANGE32, 1, 20); SendMessage(GetDlgItem(hwnd, IDC_MICBOOST), UDM_SETPOS32, 0, micBoost); //-------------------------------------------- int bufferTime = GlobalConfig->GetInt(TEXT("General"), TEXT("SceneBufferingTime"), 700); int micTimeOffset = AppConfig->GetInt(TEXT("Audio"), TEXT("MicTimeOffset"), 0); if(micTimeOffset < -bufferTime) micTimeOffset = -bufferTime; else if(micTimeOffset > 20000) micTimeOffset = 20000; SendMessage(GetDlgItem(hwnd, IDC_MICTIMEOFFSET), UDM_SETRANGE32, -bufferTime, 20000); SendMessage(GetDlgItem(hwnd, IDC_MICTIMEOFFSET), UDM_SETPOS32, 0, micTimeOffset); //-------------------------------------------- SetChangedSettings(false); return TRUE; } case WM_DESTROY: { delete storage->recordingDevices; delete storage->playbackDevices; delete storage; storage = NULL; } case WM_COMMAND: { bool bDataChanged = false; 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_CONNECTEDONLY: bDisplayConnectedOnly = !bDisplayConnectedOnly; GlobalConfig->SetInt(L"Audio", L"DisplayConntectedOnly", bDisplayConnectedOnly); RefreshDevices(); break; 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); break; case IDC_MICDEVICES: if(HIWORD(wParam) == CBN_SELCHANGE) bDataChanged = true; break; case IDC_PLAYBACKDEVICES: if(HIWORD(wParam) == CBN_SELCHANGE) bDataChanged = true; break; } if(bDataChanged) { ShowWindow(GetDlgItem(hwnd, IDC_INFO), SW_SHOW); SetChangedSettings(true); } break; } } return FALSE; }
void MappingWindow::SetMappingType(MappingWindow::Type type) { MappingWidget* widget; switch (type) { case Type::MAPPING_GC_KEYBOARD: widget = new GCKeyboardEmu(this); AddWidget(tr("GameCube Keyboard"), widget); setWindowTitle(tr("GameCube Keyboard at Port %1").arg(GetPort() + 1)); break; case Type::MAPPING_GC_BONGOS: case Type::MAPPING_GC_STEERINGWHEEL: case Type::MAPPING_GC_DANCEMAT: case Type::MAPPING_GCPAD: widget = new GCPadEmu(this); setWindowTitle(tr("GameCube Controller at Port %1").arg(GetPort() + 1)); AddWidget(tr("GameCube Controller"), widget); break; case Type::MAPPING_GC_MICROPHONE: widget = new GCMicrophone(this); setWindowTitle(tr("GameCube Microphone Slot %1") .arg(GetPort() == 0 ? QStringLiteral("A") : QStringLiteral("B"))); AddWidget(tr("Microphone"), widget); break; case Type::MAPPING_WIIMOTE_EMU: { auto* extension = new WiimoteEmuExtension(this); widget = new WiimoteEmuGeneral(this, extension); setWindowTitle(tr("Wii Remote %1").arg(GetPort() + 1)); AddWidget(tr("General and Options"), widget); AddWidget(tr("Motion Controls and IR"), new WiimoteEmuMotionControl(this)); AddWidget(tr("Extension"), extension); break; } case Type::MAPPING_HOTKEYS: { widget = new HotkeyGeneral(this); AddWidget(tr("General"), widget); AddWidget(tr("TAS Tools"), new HotkeyTAS(this)); AddWidget(tr("Debugging"), new HotkeyDebugging(this)); AddWidget(tr("Wii and Wii Remote"), new HotkeyWii(this)); AddWidget(tr("Graphics"), new HotkeyGraphics(this)); AddWidget(tr("3D"), new Hotkey3D(this)); AddWidget(tr("Save and Load State"), new HotkeyStates(this)); setWindowTitle(tr("Hotkey Settings")); break; } default: return; } widget->LoadSettings(); m_config = widget->GetConfig(); m_controller = m_config->GetController(GetPort()); m_profiles_combo->addItem(QStringLiteral("")); const std::string profiles_path = File::GetUserPath(D_CONFIG_IDX) + PROFILES_DIR + m_config->GetProfileName(); for (const auto& filename : Common::DoFileSearch({profiles_path}, {".ini"})) { std::string basename; SplitPath(filename, nullptr, &basename, nullptr); m_profiles_combo->addItem(QString::fromStdString(basename), QString::fromStdString(filename)); } RefreshDevices(); }
void UIClient::onConnected() { SocketClient::onConnected(); RefreshService(); RefreshDevices(); }