📄 v4l.cpp
字号:
size_combo->SetSelection(5); subpanel_sizer->Add( size_checkbox, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( size_combo, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); static const wxString norm_array[] = { wxT("pal"), wxT("secam"), wxT("ntsc") }; norm_checkbox = new wxCheckBox( common_subpanel, Norm_Event, wxU(_("Norm")) ); norm_combo = new wxComboBox( common_subpanel, Norm_Event, wxT(""), wxPoint(20,25), wxSize( 120, -1), WXSIZEOF(norm_array), norm_array, wxCB_READONLY ); norm_combo->SetSelection(1); norm_combo->SetToolTip( wxU(_( "Standard of the analog signal" )) ); subpanel_sizer->Add( norm_checkbox, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( norm_combo, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); frequency_checkbox = new wxCheckBox( common_subpanel, FrequencyEnable_Event, wxU(_("Frequency (kHz)")) ); frequency = new wxSpinCtrl( common_subpanel, Frequency_Event, wxT("479250") ); frequency->SetToolTip( wxU(_("The channel frequency in kHz" )) ); subpanel_sizer->Add( frequency_checkbox, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( frequency, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); common_subpanel->SetSizerAndFit( subpanel_sizer ); /* Stuff everything into the main panel */ panel_sizer->Add( common_subpanel, 1, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5 ); panel->SetSizerAndFit( panel_sizer ); /* Update panel */ size_combo->Disable(); norm_combo->Disable(); frequency->Disable(); return panel;}wxPanel *V4LDialog::AudioPanel( wxWindow* parent ){ wxPanel *panel = new wxPanel( parent, -1, wxDefaultPosition, wxSize(200, 200) ); wxStaticBox *panel_box = new wxStaticBox( panel, -1, wxU(_("Audio options")) ); wxStaticBoxSizer *panel_sizer = new wxStaticBoxSizer( panel_box, wxVERTICAL ); wxStaticText *label; wxFlexGridSizer *subpanel_sizer; audio_subpanel = new wxPanel( panel, -1 ); subpanel_sizer = new wxFlexGridSizer( 2, 2, 20 ); audio_checkbox = new wxCheckBox( audio_subpanel, AudioDevice_Event, wxU(_("Audio device")) ); audio_device = new wxTextCtrl( audio_subpanel, ADevLocation, wxT("/dev/dsp"), wxDefaultPosition, wxSize( 120, -1 ), wxTE_PROCESS_ENTER); audio_device->SetToolTip( wxU(_("Audio device")) ); label = new wxStaticText( audio_subpanel, -1, wxU(_("Channel")) ); audio_channel = new wxSpinCtrl( audio_subpanel, AudioChannel_Event, wxT("1") ); audio_channel->SetToolTip( wxU(_("Usually 0 is for mono " "and 1 for stereo")) ); subpanel_sizer->Add( audio_checkbox, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( audio_device, 1, wxALIGN_RIGHT ); subpanel_sizer->Add( label, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( audio_channel, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); audio_subpanel->SetSizerAndFit( subpanel_sizer ); /* Stuff everything into the main panel */ panel_sizer->Add( audio_subpanel, 1, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5 ); panel->SetSizerAndFit( panel_sizer ); /* Update panel */ audio_device->Disable(); audio_channel->Disable(); return panel;}wxPanel *V4LDialog::BitratePanel( wxWindow* parent ){ wxPanel *panel = new wxPanel( parent, -1, wxDefaultPosition, wxSize(200, 200) ); wxStaticBox *panel_box = new wxStaticBox( panel, -1, wxU(_("Bitrate options")) ); wxStaticBoxSizer *panel_sizer = new wxStaticBoxSizer( panel_box, wxVERTICAL ); wxFlexGridSizer *subpanel_sizer; bitrate_subpanel = new wxPanel( panel, -1 ); subpanel_sizer = new wxFlexGridSizer( 2, 2, 20 ); bitrate_checkbox = new wxCheckBox( bitrate_subpanel, BitrateEnable_Event, wxU(_("Bitrate")) ); bitrate = new wxSpinCtrl( bitrate_subpanel, Bitrate_Event, wxT("3000") ); bitrate->SetToolTip( wxU(_("The average bitrate of the stream")) ); subpanel_sizer->Add( bitrate_checkbox, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( bitrate, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); maxbitrate_checkbox = new wxCheckBox( bitrate_subpanel, MaxBitrateEnable_Event, wxU(_("Maximum bitrate")) ); maxbitrate = new wxSpinCtrl( bitrate_subpanel, MaxBitrate_Event, wxT("3000") ); maxbitrate->SetToolTip( wxU(_("The maximum bitrate of the stream")) ); subpanel_sizer->Add( maxbitrate_checkbox, 0, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL ); subpanel_sizer->Add( maxbitrate, 0, wxALIGN_RIGHT | wxALIGN_CENTER_VERTICAL ); bitrate_subpanel->SetSizerAndFit( subpanel_sizer ); /* Stuff everything into the main panel */ panel_sizer->Add( bitrate_subpanel, 1, wxALIGN_LEFT | wxALIGN_CENTER_VERTICAL | wxALL, 5 ); panel->SetSizerAndFit( panel_sizer ); /* Update panel */ bitrate->Disable(); maxbitrate->Disable(); return panel;}/***************************************************************************** * Events methods. *****************************************************************************/void V4LDialog::OnOk( wxCommandEvent& WXUNUSED(event) ){ mrl_combo->Append( mrl_combo->GetValue() ); EndModal( wxID_OK );}void V4LDialog::OnCancel( wxCommandEvent& WXUNUSED(event) ){ EndModal( wxID_CANCEL );}void V4LDialog::OnMRLChange( wxCommandEvent& event ){ //mrl = event.GetString();}/****************************************************************************** * Common panel event methods. ******************************************************************************/void V4LDialog::OnSizeEnable( wxCommandEvent& event ){ UpdateMRL(); size_combo->Enable( event.GetInt() );}void V4LDialog::OnSize( wxCommandEvent& event ){ UpdateMRL();}void V4LDialog::OnNormEnable( wxCommandEvent& event ){ norm_combo->Enable( event.GetInt() ); UpdateMRL();}void V4LDialog::OnNorm( wxCommandEvent& event ){ UpdateMRL();}void V4LDialog::OnFrequencyEnable( wxCommandEvent& event ){ frequency->SetRange( 0, 1200000 ); frequency->Enable( event.GetInt() ); UpdateMRL();}void V4LDialog::OnFrequency( wxCommandEvent& event ){ UpdateMRL();}/***************************************************************************** * Audio panel event methods. *****************************************************************************/void V4LDialog::OnAudioEnable( wxCommandEvent& event ){ audio_channel->SetRange( 0, 255 ); audio_device->Enable( event.GetInt() ); audio_channel->Enable( event.GetInt() ); UpdateMRL();}void V4LDialog::OnAudioChange( wxCommandEvent& event ){ UpdateMRL();}void V4LDialog::OnAudioChannel( wxCommandEvent& event ){ UpdateMRL();}/****************************************************************************** * Bitrate panel event methods. ******************************************************************************/void V4LDialog::OnBitrateEnable( wxCommandEvent& event ){ bitrate->SetRange( 0, 10000 ); bitrate->Enable( event.GetInt() ); UpdateMRL();}void V4LDialog::OnBitrate( wxCommandEvent& event ){ UpdateMRL();}void V4LDialog::OnMaxBitrateEnable( wxCommandEvent& event ){ maxbitrate->SetRange( 0, 10000 ); maxbitrate->Enable( event.GetInt() ); UpdateMRL();}void V4LDialog::OnMaxBitrate( wxCommandEvent& event ){ UpdateMRL();}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -