void CMainWindow::OnNextPanel() { unsigned int newPanelIdx = (m_currentPanel == MAX_PANELS - 1) ? 0 : (m_currentPanel + 1); ActivatePanel(newPanelIdx); }
CMainWindow::CMainWindow(CPsfVm& virtualMachine) : Framework::Win32::CDialog(MAKEINTRESOURCE(IDD_MAINWINDOW)) , m_virtualMachine(virtualMachine) , m_ready(false) , m_frames(0) , m_lastUpdateTime(~0) , m_selectedAudioPlugin(DEFAULT_SOUND_HANDLER_ID) , m_selectedCharEncoding(DEFAULT_CHAR_ENCODING_ID) , m_playlistPanel(NULL) , m_fileInformationPanel(NULL) , m_spu0RegViewPanel(NULL) , m_spu1RegViewPanel(NULL) , m_currentPlaylistItem(0) , m_repeatMode(DEFAULT_REPEAT_MODE) , m_trackLength(0) , m_accel(CreateAccelerators()) , m_reverbEnabled(true) , m_playListOnceIcon(NULL) , m_repeatListIcon(NULL) , m_shuffleListIcon(NULL) , m_repeatTrackIcon(NULL) , m_toolTip(NULL) , m_trayPopupMenu(NULL) , m_configPopupMenu(NULL) , m_useTrayIcon(false) , m_trayIconServer(NULL) , m_taskBarList(NULL) , m_randomSeed(0) { OSVERSIONINFO versionInfo; memset(&versionInfo, 0, sizeof(OSVERSIONINFO)); versionInfo.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); GetVersionEx(&versionInfo); if(versionInfo.dwMajorVersion > 6) { m_useTrayIcon = false; } else if(versionInfo.dwMajorVersion == 6) { m_useTrayIcon = versionInfo.dwMinorVersion < 1; } else { m_useTrayIcon = true; } #ifdef FORCE_ENABLE_TRAYICON m_useTrayIcon = true; #endif if(!m_useTrayIcon) { m_taskBarList = new Framework::Win32::CTaskBarList(); } { srand(static_cast<unsigned int>(time(NULL)) * 0x13579ACD); float delta = (static_cast<float>(rand()) / static_cast<float>(RAND_MAX)); m_randomSeed = delta * static_cast<float>(0xCAFECAFE) + 0xDAEBB042; } CAppConfig::GetInstance().RegisterPreferenceBoolean(PREF_REVERB_ENABLED, true); CAppConfig::GetInstance().RegisterPreferenceInteger(PREF_SOUNDHANDLER_ID, DEFAULT_SOUND_HANDLER_ID); CAppConfig::GetInstance().RegisterPreferenceInteger(PREF_CHAR_ENCODING_ID, DEFAULT_CHAR_ENCODING_ID); CAppConfig::GetInstance().RegisterPreferenceInteger(PREF_REPEAT_MODE, DEFAULT_REPEAT_MODE); m_reverbEnabled = CAppConfig::GetInstance().GetPreferenceBoolean(PREF_REVERB_ENABLED); m_repeatMode = static_cast<REPEAT_MODE>(CAppConfig::GetInstance().GetPreferenceInteger(PREF_REPEAT_MODE)); LoadAudioPluginPreferences(); LoadCharEncodingPreferences(); for(unsigned int i = 0; i < MAX_PANELS; i++) { m_panels[i] = NULL; } SetClassPtr(); SetTimer(m_hWnd, TIMER_UPDATE_CLOCK, 200, NULL); SetTimer(m_hWnd, TIMER_UPDATE_FADE, 50, NULL); SetTimer(m_hWnd, TIMER_UPDATE_DISCOVERIES, 100, NULL); { int smallIconSizeX = GetSystemMetrics(SM_CXSMICON); int smallIconSizeY = GetSystemMetrics(SM_CYSMICON); int bigIconSizeX = GetSystemMetrics(SM_CXICON); int bigIconSizeY = GetSystemMetrics(SM_CYICON); HICON smallIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MAIN), IMAGE_ICON, smallIconSizeX, smallIconSizeY, 0)); HICON bigIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MAIN), IMAGE_ICON, bigIconSizeX, bigIconSizeY, 0)); SetIcon(ICON_SMALL, smallIcon); SetIcon(ICON_BIG, bigIcon); } m_trayPopupMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_TRAY_POPUP)); m_configPopupMenu = LoadMenu(GetModuleHandle(NULL), MAKEINTRESOURCE(IDR_CONFIG_POPUP)); m_virtualMachine.OnNewFrame.connect(std::bind(&CMainWindow::OnNewFrame, this)); m_toolTip = new Framework::Win32::CToolTip(m_hWnd); m_toolTip->Activate(true); ChangeAudioPlugin(FindAudioPlugin(m_selectedAudioPlugin)); m_playListOnceIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_PLAYONCE), IMAGE_ICON, 16, 16, 0)); m_repeatListIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_REPEAT_LIST), IMAGE_ICON, 16, 16, 0)); m_shuffleListIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_SHUFFLE_LIST), IMAGE_ICON, 16, 16, 0)); m_repeatTrackIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_REPEAT_TRACK), IMAGE_ICON, 16, 16, 0)); m_configIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_CONFIG), IMAGE_ICON, 16, 16, 0)); m_playIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_PLAY), IMAGE_ICON, 16, 16, 0)); m_pauseIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_PAUSE), IMAGE_ICON, 16, 16, 0)); m_prevTrackIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_PREV_TRACK), IMAGE_ICON, 16, 16, 0)); m_nextTrackIcon = reinterpret_cast<HICON>(LoadImage(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_NEXT_TRACK), IMAGE_ICON, 16, 16, 0)); m_timerLabel = Framework::Win32::CStatic(GetItem(IDC_TIMER_LABEL)); m_titleLabel = Framework::Win32::CStatic(GetItem(IDC_TITLE_LABEL)); m_placeHolder = Framework::Win32::CStatic(GetItem(IDC_PLACEHOLDER)); m_configButton = Framework::Win32::CButton(GetItem(IDC_CONFIG_BUTTON)); m_toolTip->AddTool(m_configButton.m_hWnd, _T("Configuration")); m_configButton.SetIcon(m_configIcon); m_repeatButton = Framework::Win32::CButton(GetItem(IDC_REPEAT_BUTTON)); m_toolTip->AddTool(m_repeatButton.m_hWnd, _T("")); UpdateRepeatButton(); m_pauseButton = Framework::Win32::CButton(GetItem(IDC_PAUSE_BUTTON)); //Initialize symbol fonts CreateSymbolFonts(); { m_pauseButton.SetFont(m_webdingsFont); SendMessage(GetItem(ID_FILE_PREVIOUSTRACK), WM_SETFONT, reinterpret_cast<WPARAM>(static_cast<HFONT>(m_webdingsFont)), 0); SendMessage(GetItem(ID_FILE_NEXTTRACK), WM_SETFONT, reinterpret_cast<WPARAM>(static_cast<HFONT>(m_webdingsFont)), 0); SendMessage(GetItem(IDC_PREVTAB_BUTTON), WM_SETFONT, reinterpret_cast<WPARAM>(static_cast<HFONT>(m_webdingsFont)), 0); SendMessage(GetItem(IDC_NEXTTAB_BUTTON), WM_SETFONT, reinterpret_cast<WPARAM>(static_cast<HFONT>(m_webdingsFont)), 0); } if(m_segoeUiSymbolFont.IsValid()) { SendMessage(GetItem(IDC_EJECT_BUTTON), WM_SETFONT, reinterpret_cast<WPARAM>(static_cast<HFONT>(m_segoeUiSymbolFont)), 0); SendMessage(GetItem(IDC_EJECT_BUTTON), WM_SETTEXT, NULL, reinterpret_cast<LPARAM>(_T("\u23CF"))); } //Create tray icon if(m_useTrayIcon) { m_trayIconServer = new Framework::Win32::CTrayIconServer(); Framework::Win32::CTrayIcon* trayIcon = m_trayIconServer->Insert(); trayIcon->SetIcon(LoadIcon(GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_MAIN))); trayIcon->SetTip(_T("PsfPlayer")); m_trayIconServer->RegisterHandler(std::bind(&CMainWindow::OnTrayIconEvent, this, std::placeholders::_1, std::placeholders::_2)); } //Create play list panel m_playlistPanel = new CPlaylistPanel(m_hWnd, m_playlist); m_playlistPanel->OnItemDblClick.connect(std::bind(&CMainWindow::OnPlaylistItemDblClick, this, std::placeholders::_1)); m_playlistPanel->OnAddClick.connect(std::bind(&CMainWindow::OnPlaylistAddClick, this)); m_playlistPanel->OnRemoveClick.connect(std::bind(&CMainWindow::OnPlaylistRemoveClick, this, std::placeholders::_1)); m_playlistPanel->OnSaveClick.connect(std::bind(&CMainWindow::OnPlaylistSaveClick, this)); //Create file information panel m_fileInformationPanel = new CFileInformationPanel(m_hWnd); //Create RegView panels m_spu0RegViewPanel = new CSpuRegViewPanel(m_hWnd, _T("SPU0")); m_spu1RegViewPanel = new CSpuRegViewPanel(m_hWnd, _T("SPU1")); //Initialize panels m_panels[0] = m_playlistPanel; m_panels[1] = m_fileInformationPanel; m_panels[2] = m_spu0RegViewPanel; m_panels[3] = m_spu1RegViewPanel; CreateAudioPluginMenu(); UpdateAudioPluginMenu(); CreateCharEncodingMenu(); UpdateCharEncodingMenu(); UpdateClock(); UpdateTitle(); UpdatePlaybackButtons(); UpdateConfigMenu(); m_currentPanel = -1; ActivatePanel(0); }
void CMainWindow::OnPrevPanel() { unsigned int newPanelIdx = (m_currentPanel == 0) ? (MAX_PANELS - 1) : (m_currentPanel - 1); ActivatePanel(newPanelIdx); }
void ToolsOptionsWindow::OnCommand (HWND hWnd, WPARAM wParam, LPARAM lParam) { switch (LOWORD (wParam)) { case ID_LSTOPTIONCATEGORY: { switch (HIWORD (wParam)) { case LBN_SELCHANGE: { int iIndex = SendMessage (m_lstcategory, LB_GETCURSEL, 0, 0); char selItem[SIZE_STRING]; ZeroMemory (selItem, SIZE_STRING); if (iIndex != LB_ERR) { SendMessage (m_lstcategory,LB_GETTEXT, iIndex, (LPARAM) selItem); ActivatePanel (selItem); } } break; } break; } break; case ID_OPTWINDOWCLOSE: { if (SaveHotKeySettings () == true) { Hide (); } } break; case ID_CHKPFOLDERPROMPTPUP: { if (m_bpfolderspromptpowerup == false) { SetCheck (m_pfolderspromptpowerup, true); m_bpfolderspromptpowerup = true; m_registry.WriteStringSetting (PROTECTEDFOLDERSPROMPTPUP, "yes"); } else { m_registry.WriteStringSetting (PROTECTEDFOLDERSPROMPTPUP, "no"); SetCheck (m_pfolderspromptpowerup, false); m_bpfolderspromptpowerup = false; } } break; case ID_CHKPFOLDERPROMPTPDN: { if (m_bpfolderspromptpowerdown == false) { SetCheck (m_pfolderspromptpowerdown, true); m_bpfolderspromptpowerdown = true; m_registry.WriteStringSetting (PROTECTEDFOLDERSPROMPTPDN, "yes"); } else { m_registry.WriteStringSetting (PROTECTEDFOLDERSPROMPTPDN, "no"); SetCheck (m_pfolderspromptpowerdown, false); m_bpfolderspromptpowerdown = false; } } break; // Encryption CTRL key case ID_UTEBTNHOTENCCTRL: { if (m_buseencctrl == false) { SetCheck (m_chkencctrl, true); m_buseencctrl = true; m_registry.WriteStringSetting (UTEENCRYPTUSECTRL, "yes"); } else { SetCheck (m_chkencctrl, false); m_buseencctrl = false; m_registry.WriteStringSetting (UTEENCRYPTUSECTRL, "no"); } } break; // Encryption ALT key case ID_UTEBTNHOTENCALT: { if (m_buseencalt == false) { SetCheck (m_chkencalt, true); m_buseencalt = true; m_registry.WriteStringSetting (UTEENCRYPTUSEALT, "yes"); } else { SetCheck (m_chkencalt, false); m_buseencalt = false; m_registry.WriteStringSetting (UTEENCRYPTUSEALT, "no"); } } break; // Decryption CTRL key case ID_UTEBTNHOTDECCTRL: { if (m_busedecctrl == false) { SetCheck (m_chkdecctrl, true); m_busedecctrl = true; m_registry.WriteStringSetting (UTEDECRYPTUSECTRL, "yes"); } else { SetCheck (m_chkdecctrl, false); m_busedecctrl = false; m_registry.WriteStringSetting (UTEDECRYPTUSECTRL, "no"); } } break; // Decryption ALT key case ID_UTEBTNHOTDECALT: { if (m_busedecalt == false) { SetCheck (m_chkdecalt, true); m_busedecalt = true; m_registry.WriteStringSetting (UTEDECRYPTUSEALT, "yes"); } else { SetCheck (m_chkdecalt, false); m_busedecalt = false; m_registry.WriteStringSetting (UTEDECRYPTUSEALT, "no"); } } break; case ID_CHKAUTOUPDATECHECK: { // SetCheck (m_chkautoupdate, true); // Default value // m_buseautoupdate = true; // Default value if (m_buseautoupdate == true) { SetCheck (m_chkautoupdate, false); m_buseautoupdate = false; m_registry.WriteStringSetting (AUTOUPDATECHECK, "no"); } else { SetCheck (m_chkautoupdate, true); m_buseautoupdate = true; m_registry.WriteStringSetting (AUTOUPDATECHECK, "yes"); } } break; case ID_OPTALGCYBERCEDE: { SetAlgorithm (ALG_CYBERCEDE); } break; case ID_OPTALGAES256: { SetAlgorithm (ALG_AES256); } break; case ID_OPTALG3DES: { SetAlgorithm (ALG_3DES); } break; case ID_OPTALGDES: { SetAlgorithm (ALG_DES); } break; } }