Example #1
0
void mainFrame::OnMenuProfile(wxCommandEvent& event)
{
    avrProfile* pProfile = m_mProfiles[event.GetId()];
    if(!pProfile)
        return;
    if(pProfile->GetDeviceType().IsEmpty())
        return;
    m_lFrequency = pProfile->GetFrequency();
    m_pSpnFreq->SetValue(m_lFrequency);
    SetDeviceType(pProfile->GetDeviceType());
}
Example #2
0
bool CVolumeOutMaster::Init()
{
	if ( !mixerGetNumDevs() )
		return false;
	// Getting Mixer ID
	HWAVEOUT hwaveOut;
	MMRESULT mmResult;
	WAVEFORMATEX WaveFmt;
	SetDeviceType( &WaveFmt );
	mmResult = waveOutOpen( &hwaveOut, WAVE_MAPPER, &WaveFmt, 0L, 0L, CALLBACK_NULL );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		qDebug(".MasterOutputVolume: FAILURE: Could not open WaveOut Mapper. mmResult=%d\n", mmResult );
		return false;
	} else {
		mmResult = mixerGetID( (HMIXEROBJ)hwaveOut, &m_uMixerID, MIXER_OBJECTF_HWAVEOUT );
		waveOutClose( hwaveOut );
		if ( mmResult != MMSYSERR_NOERROR )
		{
			qDebug(".MasterOutputVolume: FAILURE: WaveOut Mapper in Mixer is not available. mmResult=%d\n", mmResult );
			return false;
		}
	}

	//////////////// Exposing Window to Mixer
	//////////////WNDCLASSEX wcx;
	//////////////memset( &wcx, 0, sizeof(WNDCLASSEX) );
	//////////////wcx.cbSize = sizeof(WNDCLASSEX);
	//////////////wcx.lpszClassName = _T(WND_CLASS_NAME);
	//////////////wcx.lpfnWndProc = (WNDPROC)MixerWndProc;
	//////////////::RegisterClassEx(&wcx);
	//////////////m_hWnd = CreateWindow(_T(WND_CLASS_NAME),
	//////////////						_T(WND_NAME),
	//////////////						WS_POPUP | WS_DISABLED,
	//////////////						0, 0, 0, 0,
	//////////////						NULL, NULL, NULL, NULL );
	//////////////if ( !m_hWnd )
	//////////////{
	//////////////	qDebug(".MasterOutputVolume: FAILURE: Could not create internal window.\n" );
	//////////////	return false;
	//////////////}
	//////////////::ShowWindow(m_hWnd, SW_HIDE);
	//////////////mmResult = mixerOpen( (LPHMIXER)&m_dwMixerHandle, m_uMixerID, (DWORD)m_hWnd, 0L, CALLBACK_WINDOW );
	mmResult = mixerOpen( (LPHMIXER)&m_dwMixerHandle, m_uMixerID, NULL, 0L, CALLBACK_NULL );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		qDebug(".MasterOutputVolume: FAILURE: Could not open Mixer. mmResult=%d\n", mmResult );
		//////////////::DestroyWindow( m_hWnd );
		return false;
	}
	return true;
}
Example #3
0
int SetDeviceType_1260(int identifier,int fd, int cmd, char *data, int vallen)
{
	/*设置设备型号*/
	DEBUG(DL_DEBUG, "Set Device Type\n");
	char dtype[16] = {0};
	unsigned char sdata[256] = {0};
	int totallen = 0;
	int cmdlen = sizeof(int);
	int retlen = sizeof(int);
	int ret;
	memset(dtype, 0x000, strlen(dtype));
	memcpy(dtype, data, vallen);
	ret = SetDeviceType(DTYPECONFIG_NAME, dtype);
	totallen = MSGINFOHEAD + cmdlen + vallen + retlen;
	msgPacket(identifier,sdata, STRING_TYPE, totallen, cmd, ret);
	memcpy(sdata + totallen - vallen, data, vallen);
	DEBUG(DL_DEBUG, "SetDeviceType...cmd =0x%x\n", cmd);
	send(fd, sdata, totallen, 0);
	return 0;
}
Example #4
0
mainFrame::mainFrame(wxWindow* parent,wxWindowID id,const wxPoint& pos,const wxSize& size) :
    m_sDeviceType(wxEmptyString),
    m_lFrequency(16000000),
    m_nLogMax(1000),
    m_bScrollLock(false),
    m_bInit(false),
    m_pFileLog(NULL),
    m_pFnFirmware(NULL),
    m_pFnCode(NULL),
    m_pFnConfig(NULL),
    m_pFnVcd(NULL)
{
	//(*Initialize(mainFrame)
	wxMenuItem* MenuItem2;
	wxFlexGridSizer* FlexGridSizer1;
	wxFlexGridSizer* FlexGridSizer2;
	wxMenu* Menu1;
	wxFlexGridSizer* FlexGridSizer4;
	wxStaticText* StaticText1;
	wxFlexGridSizer* FlexGridSizer3;
	wxStaticText* StaticText6;
	wxMenu* Menu2;

	Create(parent, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxDEFAULT_FRAME_STYLE, _T("wxID_ANY"));
	m_pAuiManager = new wxAuiManager(this, wxAUI_MGR_DEFAULT);
	m_pToolbarControl = new wxAuiToolBar(this, ID_TOOLBAR_CONTROL, wxPoint(75,96), wxDefaultSize, wxAUI_TB_DEFAULT_STYLE);
	m_pToolbarControl->AddTool(ID_TOOLBARITEM_START, _("Start"), play_xpm, wxNullBitmap, wxITEM_NORMAL, _("Start simulator"), wxEmptyString, NULL);
	m_pToolbarControl->AddTool(ID_TOOLBARITEM_PAUSE, _("Pause"), pause_xpm, wxNullBitmap, wxITEM_NORMAL, _("Pause simulator"), wxEmptyString, NULL);
	m_pToolbarControl->AddTool(ID_TOOLBARITEM_STOP, _("Stop"), stop_xpm, wxNullBitmap, wxITEM_NORMAL, _("Stop simulator"), wxEmptyString, NULL);
	m_pToolbarControl->AddTool(ID_TOOLBARITEM_RESET, _("Reset"), reset_xpm, wxNullBitmap, wxITEM_NORMAL, _("Reset MCU"), wxEmptyString, NULL);
	m_pToolbarControl->Realize();
	m_pAuiManager->AddPane(m_pToolbarControl, wxAuiPaneInfo().Name(_T("ToolbarControl")).ToolbarPane().Caption(_("Toolbar")).CloseButton(false).Layer(10).Top().Gripper());
	m_pToolbarFile = new wxAuiToolBar(this, ID_AUITOOL_FILE, wxDefaultPosition, wxDefaultSize, wxAUI_TB_DEFAULT_STYLE);
	m_pToolbarFile->AddTool(ID_TOOLBARITEM_LOADHEX, _("Load Hex"), wxArtProvider::GetBitmap(wxART_MAKE_ART_ID_FROM_STR(_T("wxART_FOLDER")),wxART_TOOLBAR), wxNullBitmap, wxITEM_NORMAL, _("Load Intel Hex File"), wxEmptyString, NULL);
	m_pToolbarFile->Realize();
	m_pAuiManager->AddPane(m_pToolbarFile, wxAuiPaneInfo().Name(_T("ToolbarFile")).ToolbarPane().Caption(_("File")).CloseButton(false).Layer(10).Top().Gripper());
	m_pPnlMain = new wxPanel(this, ID_PNLMAIN, wxPoint(172,246), wxDefaultSize, wxTAB_TRAVERSAL, _T("ID_PNLMAIN"));
	FlexGridSizer1 = new wxFlexGridSizer(0, 1, 0, 0);
	FlexGridSizer1->AddGrowableCol(0);
	FlexGridSizer1->AddGrowableRow(2);
	FlexGridSizer3 = new wxFlexGridSizer(0, 0, 0, 0);
	FlexGridSizer3->AddGrowableCol(6);
	StaticText1 = new wxStaticText(m_pPnlMain, wxID_ANY, _("MCU"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("wxID_ANY"));
	FlexGridSizer3->Add(StaticText1, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pLblDeviceType = new wxStaticText(m_pPnlMain, ID_LBLDEVICETYPE, _("-"), wxDefaultPosition, wxSize(100,17), wxALIGN_CENTRE, _T("ID_LBLDEVICETYPE"));
	m_pLblDeviceType->SetBackgroundColour(wxColour(255,255,255));
	FlexGridSizer3->Add(m_pLblDeviceType, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pLblFrequency = new wxStaticText(m_pPnlMain, ID_LBLFREQUENCY, _("Frequency"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("ID_LBLFREQUENCY"));
	FlexGridSizer3->Add(m_pLblFrequency, 1, wxALL|wxEXPAND|wxALIGN_RIGHT|wxALIGN_CENTER_VERTICAL, 5);
	m_pSpnFreq = new wxSpinCtrl(m_pPnlMain, ID_SPNFREQ, _T("0"), wxDefaultPosition, wxDefaultSize, 0, 0, 99999999, 0, _T("ID_SPNFREQ"));
	m_pSpnFreq->SetValue(_T("0"));
	FlexGridSizer3->Add(m_pSpnFreq, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticText6 = new wxStaticText(m_pPnlMain, wxID_ANY, _("EEPROM"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("wxID_ANY"));
	FlexGridSizer3->Add(StaticText6, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pLblEeprom = new wxStaticText(m_pPnlMain, wxID_ANY, _("-"), wxDefaultPosition, wxDefaultSize, wxALIGN_CENTRE, _T("wxID_ANY"));
	FlexGridSizer3->Add(m_pLblEeprom, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer3->Add(-1,-1,1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer1->Add(FlexGridSizer3, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer4 = new wxFlexGridSizer(0, 3, 0, 0);
	FlexGridSizer4->AddGrowableCol(1);
	StaticText2 = new wxStaticText(m_pPnlMain, ID_STATICTEXT1, _("Program Memory"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT1"));
	FlexGridSizer4->Add(StaticText2, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pGaugeProgMem = new wxGauge(m_pPnlMain, ID_GAUGEPROGMEM, 100, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_GAUGEPROGMEM"));
	FlexGridSizer4->Add(m_pGaugeProgMem, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pLblProgMem = new wxStaticText(m_pPnlMain, ID_LBLPROGMEM, _("00000/00000"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_LBLPROGMEM"));
	FlexGridSizer4->Add(m_pLblProgMem, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	StaticText3 = new wxStaticText(m_pPnlMain, ID_STATICTEXT2, _("SRAM"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_STATICTEXT2"));
	FlexGridSizer4->Add(StaticText3, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pGaugeSram = new wxGauge(m_pPnlMain, ID_GUAGESRAM, 100, wxDefaultPosition, wxDefaultSize, 0, wxDefaultValidator, _T("ID_GUAGESRAM"));
	FlexGridSizer4->Add(m_pGaugeSram, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pLblSram = new wxStaticText(m_pPnlMain, ID_LBLSRAM, _("00000/00000"), wxDefaultPosition, wxDefaultSize, 0, _T("ID_LBLSRAM"));
	FlexGridSizer4->Add(m_pLblSram, 1, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer1->Add(FlexGridSizer4, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer2 = new wxFlexGridSizer(0, 1, 0, 0);
	FlexGridSizer2->AddGrowableCol(0);
	FlexGridSizer2->AddGrowableRow(0);
	m_pTxtLog = new wxTextCtrl(m_pPnlMain, ID_TXTLOG, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_MULTILINE|wxTE_READONLY, wxDefaultValidator, _T("ID_TXTLOG"));
	FlexGridSizer2->Add(m_pTxtLog, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	FlexGridSizer1->Add(FlexGridSizer2, 1, wxALL|wxEXPAND|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);
	m_pPnlMain->SetSizer(FlexGridSizer1);
	FlexGridSizer1->Fit(m_pPnlMain);
	FlexGridSizer1->SetSizeHints(m_pPnlMain);
	m_pAuiManager->AddPane(m_pPnlMain, wxAuiPaneInfo().Name(_T("PanelMain")).CenterPane().Caption(_("Main Panel")).FloatingPosition(wxPoint(0,0)).FloatingSize(wxSize(0,0)));
	m_pAuiManager->Update();
	m_pMenubar = new wxMenuBar();
	Menu1 = new wxMenu();
	m_pMenuitemFirmware = new wxMenuItem(Menu1, ID_MENUITEM_FIRMWARE, _("Firmware"), _("Load firmware"), wxITEM_NORMAL);
	Menu1->Append(m_pMenuitemFirmware);
	m_pMenuitemCode = new wxMenuItem(Menu1, ID_MENUITEM_CODE, _("Load Code"), _("Load code"), wxITEM_NORMAL);
	Menu1->Append(m_pMenuitemCode);
	m_pMenuitemLoadHex = new wxMenuItem(Menu1, ID_MENUITEM_LOADHEX, _("Load Hex\tCtrl-O"), _("Load Intel hex file"), wxITEM_NORMAL);
	Menu1->Append(m_pMenuitemLoadHex);
	m_pMenuitemQuit = new wxMenuItem(Menu1, idMenuQuit, _("Quit\tAlt-F4"), _("Quit application"), wxITEM_NORMAL);
	Menu1->Append(m_pMenuitemQuit);
	m_pMenubar->Append(Menu1, _("&File"));
	m_pMenuDevice = new wxMenu();
	m_pMenuProfile = new wxMenu();
	m_pMenuitemModifyProfile = new wxMenuItem(m_pMenuProfile, ID_MENUITEM_MODIFYPROFILE, _("Modify Profiles\tShift+Ctrl+P"), _("Add, modify or remove profile"), wxITEM_NORMAL);
	m_pMenuProfile->Append(m_pMenuitemModifyProfile);
	m_pMenuDevice->Append(ID_MENUITEM_PROFILE, _("Profile"), m_pMenuProfile, wxEmptyString);
	m_pMenuMcu = new wxMenu();
	m_pMenuMcu->Break();
	m_pMenuDevice->Append(ID_MENUITEM_MCU, _("MCU"), m_pMenuMcu, wxEmptyString);
	m_pMenuitemWipe = new wxMenuItem(m_pMenuDevice, ID_MENUITEM_WIPE, _("Wipe device"), _("Wipe all data from device"), wxITEM_NORMAL);
	m_pMenuDevice->Append(m_pMenuitemWipe);
	m_pMenuitemSerial = new wxMenuItem(m_pMenuDevice, ID_MENUITEM_SERIAL, _("Enable Serial Port"), _("Enable the serial port on the MCU"), wxITEM_CHECK);
	m_pMenuDevice->Append(m_pMenuitemSerial);
	m_pMenuitemVcd = new wxMenuItem(m_pMenuDevice, ID_MENUITEM_VCD, _("Enable VCD logging"), wxEmptyString, wxITEM_CHECK);
	m_pMenuDevice->Append(m_pMenuitemVcd);
	m_pMenuitemVcdFile = new wxMenuItem(m_pMenuDevice, ID_MENUITEM_VCDFILE, _("Select VCD log file"), _("Selects the file to log VCD traces to"), wxITEM_NORMAL);
	m_pMenuDevice->Append(m_pMenuitemVcdFile);
	m_pMenubar->Append(m_pMenuDevice, _("Device"));
	Menu3 = new wxMenu();
	m_pMenuitemStart = new wxMenuItem(Menu3, ID_MENUITEM_START, _("Start\tF9"), _("Start MCU"), wxITEM_NORMAL);
	m_pMenuitemStart->SetBitmap(play_xpm);
	Menu3->Append(m_pMenuitemStart);
	m_pMenuitemPause = new wxMenuItem(Menu3, ID_MENUITEM_PAUSE, _("Pause"), _("Pause MCU"), wxITEM_NORMAL);
	m_pMenuitemPause->SetBitmap(pause_xpm);
	Menu3->Append(m_pMenuitemPause);
	m_pMenuitemStop = new wxMenuItem(Menu3, ID_MENUITEM_STOP, _("Stop\tCtrl-F9"), _("Stop MCU"), wxITEM_NORMAL);
	m_pMenuitemStop->SetBitmap(stop_xpm);
	Menu3->Append(m_pMenuitemStop);
	m_pMenuitemReset = new wxMenuItem(Menu3, ID_MENUITEM_RESET, _("Reset\tCtrl-R"), _("Reset MCU"), wxITEM_NORMAL);
	m_pMenuitemReset->SetBitmap(reset_xpm);
	Menu3->Append(m_pMenuitemReset);
	m_pMenubar->Append(Menu3, _("Control"));
	Menu4 = new wxMenu();
	m_pMenuitemToolbarFile = new wxMenuItem(Menu4, ID_MENUITEM_TOOLBARFILE, _("Show file toobar"), _("Show or hide the file toolbar"), wxITEM_CHECK);
	Menu4->Append(m_pMenuitemToolbarFile);
	m_pMenuitemToolbarControl = new wxMenuItem(Menu4, ID_MENUITEM_TOOLBARCONTROL, _("Show control toolbar"), _("Shows or hides the control toolbar"), wxITEM_CHECK);
	Menu4->Append(m_pMenuitemToolbarControl);
	m_pMenuitemResetLayout = new wxMenuItem(Menu4, ID_MENUITEM_LAYOUT, _("Reset layout"), _("Resets the application interface"), wxITEM_NORMAL);
	Menu4->Append(m_pMenuitemResetLayout);
	m_pMenubar->Append(Menu4, _("View"));
	m_pMenuLog = new wxMenu();
	m_pMenuitemLogToFile = new wxMenuItem(m_pMenuLog, ID_MENUITEM_LOGTOFILE, _("Log to file"), _("Record log entries to file"), wxITEM_CHECK);
	m_pMenuLog->Append(m_pMenuitemLogToFile);
	m_pMenuitemLogVerbose = new wxMenuItem(m_pMenuLog, ID_MENUITEM_LOGVERBOSE, _("Verbose"), _("Enable verbose logging"), wxITEM_CHECK);
	m_pMenuLog->Append(m_pMenuitemLogVerbose);
	m_pMenubar->Append(m_pMenuLog, _("Log"));
	Menu2 = new wxMenu();
	m_pMenuitemLogmcu = new wxMenuItem(Menu2, ID_MENUITEM_LOGMCU, _("Log MCU details"), _("Prints details of current MCU to log"), wxITEM_NORMAL);
	Menu2->Append(m_pMenuitemLogmcu);
	MenuItem2 = new wxMenuItem(Menu2, idMenuAbout, _("About\tF1"), _("Show info"), wxITEM_NORMAL);
	Menu2->Append(MenuItem2);
	m_pMenubar->Append(Menu2, _("Help"));
	SetMenuBar(m_pMenubar);
	m_pStatusBar = new wxStatusBar(this, ID_STATUSBAR, 0, _T("ID_STATUSBAR"));
	int __wxStatusBarWidths_1[3] = { -10, -10, -10 };
	int __wxStatusBarStyles_1[3] = { wxSB_NORMAL, wxSB_NORMAL, wxSB_NORMAL };
	m_pStatusBar->SetFieldsCount(3,__wxStatusBarWidths_1);
	m_pStatusBar->SetStatusStyles(3,__wxStatusBarStyles_1);
	SetStatusBar(m_pStatusBar);

	Connect(ID_TOOLBARITEM_START,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuStart);
	Connect(ID_TOOLBARITEM_PAUSE,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuPause);
	Connect(ID_TOOLBARITEM_STOP,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuStop);
	Connect(ID_TOOLBARITEM_RESET,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuReset);
	Connect(ID_TOOLBARITEM_LOADHEX,wxEVT_COMMAND_TOOL_CLICKED,(wxObjectEventFunction)&mainFrame::OnMenuitemLoadHexSelected);
	Connect(ID_SPNFREQ,wxEVT_COMMAND_SPINCTRL_UPDATED,(wxObjectEventFunction)&mainFrame::OnSpnFreqChange);
	Connect(ID_MENUITEM_FIRMWARE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemFirmwareSelected);
	Connect(ID_MENUITEM_CODE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemCodeSelected);
	Connect(ID_MENUITEM_LOADHEX,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemLoadHexSelected);
	Connect(idMenuQuit,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnQuit);
	Connect(ID_MENUITEM_MODIFYPROFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemModifyProfileSelected);
	Connect(ID_MENUITEM_WIPE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemWipeSelected);
	Connect(ID_MENUITEM_SERIAL,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemSerialSelected);
	Connect(ID_MENUITEM_VCD,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemVcdSelected);
	Connect(ID_MENUITEM_VCDFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemVcdFileSelected);
	Connect(ID_MENUITEM_START,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuStart);
	Connect(ID_MENUITEM_PAUSE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuPause);
	Connect(ID_MENUITEM_STOP,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuStop);
	Connect(ID_MENUITEM_RESET,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemMcuReset);
	Connect(ID_MENUITEM_TOOLBARFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemToolbarFileSelected);
	Connect(ID_MENUITEM_TOOLBARCONTROL,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemToolbarControlSelected);
	Connect(ID_MENUITEM_LAYOUT,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemResetLayoutSelected);
	Connect(ID_MENUITEM_LOGTOFILE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemLogToFileSelected);
	Connect(ID_MENUITEM_LOGVERBOSE,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemLogVerboseSelected);
	Connect(ID_MENUITEM_LOGMCU,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnMenuitemLogmcuSelected);
	Connect(idMenuAbout,wxEVT_COMMAND_MENU_SELECTED,(wxObjectEventFunction)&mainFrame::OnAbout);
	//*)
    Connect(wxID_ANY, wxEVT_CLOSE_WINDOW,(wxObjectEventFunction)&mainFrame::OnClose);
    Connect(wxID_ANY, wxEVT_AVR_STATUS, (wxObjectEventFunction)&mainFrame::HandleAvrStatus);
    Connect(wxID_ANY, wxEVT_AVR_WRITE, (wxObjectEventFunction)&mainFrame::HandleAvrWrite);

    //Configure logging
    m_pLog = new wxLogTextCtrl(m_pTxtLog);

    wxLog::SetActiveTarget(m_pLog);
    wxLog::SetTimestamp("%Y-%m-%d %H:%M:%S");

    Running(AVR_STATUS_STOPPED);

    wxString sTmp;
    if(wxGetEnv("HOME", &sTmp))
        m_pFnConfig = new wxFileName(sTmp + "/.config/riban/wxsimavr/config.cfg");

    if(!ReadConfig())
    {
        wxMessageBox("Error reading configuration file. Closing...");
        Close();
        return;
    }
    m_pSpnFreq->SetValue(m_lFrequency);
    SetDeviceType(m_sDeviceType);
    m_bInit = true;
    wxLogDebug("mainFrame completed constructor\n");
}
Example #5
0
void mainFrame::OnMenuDeviceType(wxCommandEvent& event)
{
    SetDeviceType(m_mDevices[event.GetId()]);
}
Example #6
0
BOOL CVolumeCtrl::EnumerateInputLines( DWORD dwDeviceID, PINPUTLINEPROC pUserCallback, DWORD dwUserValue )
{
	if (!pUserCallback)
	{
		return FALSE;
	}

	MMRESULT mmResult;
	HWAVEIN hwaveIn;
	WAVEFORMATEX WaveFmt;
	SetDeviceType( &WaveFmt );
	mmResult = waveInOpen( &hwaveIn, dwDeviceID, &WaveFmt, 0L, 0L, CALLBACK_NULL );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		return FALSE;
	}

	UINT uMixerID;
	DWORD dwMixerHandle;
	mmResult = mixerGetID( (HMIXEROBJ)hwaveIn, &uMixerID, MIXER_OBJECTF_HWAVEIN );
	waveInClose( hwaveIn );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		return FALSE;
	}
	mmResult = mixerOpen( (LPHMIXER)&dwMixerHandle, uMixerID, 0L, 0L, 0L );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		mixerClose( (HMIXER)dwMixerHandle );
		return FALSE;
	}
	MIXERLINE MixerLine;
	memset( &MixerLine, 0, sizeof(MIXERLINE) );
	MixerLine.cbStruct = sizeof(MIXERLINE);
	MixerLine.dwComponentType = MIXERLINE_COMPONENTTYPE_DST_WAVEIN;
	mmResult = mixerGetLineInfo( (HMIXEROBJ)dwMixerHandle, &MixerLine, MIXER_GETLINEINFOF_COMPONENTTYPE );
	if ( mmResult != MMSYSERR_NOERROR )
	{
		mixerClose( (HMIXER)dwMixerHandle );
		return FALSE;
	}
	MIXERLINE Line;
	for ( UINT uLineIndex = 0; uLineIndex < MixerLine.cConnections; uLineIndex++ )
	{
		memset( &Line, 0, sizeof(MIXERLINE) );
		Line.cbStruct = sizeof(MIXERLINE);
		Line.dwDestination = MixerLine.dwDestination;
		Line.dwSource = uLineIndex;
		mmResult = mixerGetLineInfo( (HMIXEROBJ)dwMixerHandle, &Line, MIXER_GETLINEINFOF_SOURCE );
		if ( mmResult != MMSYSERR_NOERROR )
		{
			mixerClose( (HMIXER)dwMixerHandle );
			return FALSE;
		}
		if ( !((*pUserCallback)( uLineIndex, &Line, dwUserValue )) )
		{
			break;
		}
	}
	mixerClose( (HMIXER)dwMixerHandle );

	return TRUE;
}
Example #7
0
BOOL CVolumeCtrl::Init()
{
	if (!mixerGetNumDevs())
	{
		return FALSE;
	}

	HWAVEIN hwaveIn;
	MMRESULT mmResult;
	WAVEFORMATEX WaveFmt;
	SetDeviceType( &WaveFmt );
	mmResult = waveInOpen(&hwaveIn, m_dwDeviceID, &WaveFmt, 0L, 0L, CALLBACK_NULL);
	if (mmResult != MMSYSERR_NOERROR)
	{
		return FALSE;
	}
	else
	{
		// 得到混响器的标识号
		mmResult = mixerGetID((HMIXEROBJ)hwaveIn, &m_uMixerID, MIXER_OBJECTF_HWAVEIN);
		waveInClose(hwaveIn);
		if (mmResult != MMSYSERR_NOERROR )
		{
			return FALSE;
		}
	}

	// Exposing Window to Mixer
	WNDCLASSEX wcx;
	memset( &wcx, 0, sizeof(WNDCLASSEX) );	
	wcx.cbSize = sizeof(WNDCLASSEX);
	wcx.lpszClassName = WND_CLASS_NAME;
	wcx.lpfnWndProc = (WNDPROC)MixerWndProc;
	::RegisterClassEx(&wcx);
	m_hWnd = CreateWindow(WND_CLASS_NAME,
		                  WND_NAME, 
						  WS_POPUP | WS_DISABLED,
						  0, 0, 0, 0,
						  NULL, NULL, NULL, NULL );
	if (!m_hWnd)
	{
		return FALSE;
	}
	::ShowWindow(m_hWnd, SW_HIDE);
	::UpdateWindow(m_hWnd);

	//
	// 打开混响器设备
	// 参数:
	//      m_dwMixerHandle--混响器设备的句柄  
	//      m_uMixerID--为混响器的标识号,用于指定要打开的混响器设备
	//	
	mmResult = mixerOpen( (LPHMIXER)&m_dwMixerHandle, m_uMixerID, (DWORD)m_hWnd, 0L, CALLBACK_WINDOW );
	if (mmResult != MMSYSERR_NOERROR || m_uMixerID == -1)
	{
		::DestroyWindow( m_hWnd );
		return FALSE;
	}

	return TRUE;
}