Пример #1
0
void CMainWindow::OnNextPanel()
{
	unsigned int newPanelIdx = (m_currentPanel == MAX_PANELS - 1) ? 0 : (m_currentPanel + 1);
	ActivatePanel(newPanelIdx);
}
Пример #2
0
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);
}
Пример #3
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;
	}
}