⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 vlm_panel.cpp

📁 uclinux 下的vlc播放器源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void VLMPanel::RemoveBroadcast( VLMBroadcastStreamPanel *p_streamp ){    scrolled_broadcasts_sizer->Remove( p_streamp );    scrolled_broadcasts_sizer->Layout();    scrolled_broadcasts->FitInside();}/************************* * VODS management *************************/wxPanel * VLMPanel::VODPanel( wxWindow *parent ){     vods_panel = new wxPanel( parent, -1, wxDefaultPosition, wxSize( 500, 350 ) );     return vods_panel;}wxPanel * VLMPanel::AddVODPanel( wxPanel *panel ){     return new VLMAddStreamPanel( p_intf, panel, p_vlm, VLC_FALSE,                                   VLC_FALSE );}void VLMPanel::AppendVOD( VLMVODStream *p_vod ){    VLMVODStreamPanel *p_new =                   new VLMVODStreamPanel( p_intf, scrolled_vods, p_vod );    p_new->b_found = VLC_TRUE;    scrolled_vods_sizer->Add( p_new, 0, wxEXPAND | wxALL, 5 );    scrolled_vods_sizer->Layout();    scrolled_vods->FitInside();    vods.push_back( p_new );}void VLMPanel::RemoveVOD( VLMVODStreamPanel *p_streamp ){    scrolled_vods_sizer->Remove( p_streamp );    scrolled_vods_sizer->Layout();    scrolled_vods->FitInside();}/**************************************************************************** * VLM Add Broadcast panel implementation *****************************************************************************/enum{    Create_Event,    Clear_Event,    ChooseInput_Event,    ChooseOutput_Event,};BEGIN_EVENT_TABLE( VLMAddStreamPanel, wxPanel)   EVT_BUTTON( Create_Event, VLMAddStreamPanel::OnCreate )   EVT_BUTTON( Clear_Event, VLMAddStreamPanel::OnClear )   EVT_BUTTON( ChooseInput_Event, VLMAddStreamPanel::OnChooseInput )   EVT_BUTTON( ChooseOutput_Event, VLMAddStreamPanel::OnChooseOutput )END_EVENT_TABLE()VLMAddStreamPanel::VLMAddStreamPanel( intf_thread_t *_p_intf,                wxWindow *_p_parent, VLMWrapper *_p_vlm,                vlc_bool_t _b_edit, vlc_bool_t _b_broadcast ):                wxPanel( _p_parent, -1, wxDefaultPosition, wxDefaultSize ){    p_intf = _p_intf;    p_parent = _p_parent;    p_vlm = _p_vlm;    b_edit = _b_edit;    b_broadcast = _b_broadcast;    p_open_dialog = NULL;    p_sout_dialog = NULL;    SetAutoLayout( TRUE );    wxBoxSizer *panel_sizer = new wxBoxSizer( wxVERTICAL );    wxFlexGridSizer *upper_sizer = new wxFlexGridSizer( 5, 2 );    upper_sizer->AddGrowableCol( 1 );    upper_sizer->AddGrowableCol( 3 );    upper_sizer->Add( new wxStaticText( this, -1, wxU( _("Name") ) ), 0,                                        wxALIGN_CENTER_VERTICAL, 0 );    name_text = new wxTextCtrl( this, -1, wxU( "" ), wxDefaultPosition,                                          wxSize( 150, -1 ) );    upper_sizer->Add( name_text , 1, wxEXPAND | wxLEFT | wxRIGHT, 5 );    upper_sizer->Add( new wxStaticText( this, -1, wxU( _("Input") ) ), 0,                                        wxALIGN_CENTER_VERTICAL, 0 );    input_text = new wxTextCtrl( this, -1, wxU( "" ) ,                      wxDefaultPosition, wxSize( 150, -1 ) );    upper_sizer->Add( input_text , 1, wxEXPAND | wxLEFT | wxRIGHT, 5 );    upper_sizer->Add( new wxButton( this, ChooseInput_Event, wxU( _("Choose") )  ) );    upper_sizer->Add( 0,0 );    upper_sizer->Add( 0,0 );    upper_sizer->Add( new wxStaticText( this, -1, wxU( _("Output") ) ), 0,                                        wxALIGN_CENTER_VERTICAL, 0 );    output_text = new wxTextCtrl( this, -1, wxU( "" ) ,                      wxDefaultPosition, wxSize( 150, -1 ) );    upper_sizer->Add( output_text, 1, wxEXPAND | wxLEFT | wxRIGHT, 5 );    upper_sizer->Add( new wxButton( this, ChooseOutput_Event,                      wxU( _("Choose") )  ) );    panel_sizer->Add( upper_sizer, 0, wxEXPAND | wxALL, 5 );    wxBoxSizer *lower_sizer = new wxBoxSizer( wxHORIZONTAL );    enabled_checkbox = new wxCheckBox( this, -1, wxU( _("Enabled" ) ) );    enabled_checkbox->SetValue( true );    lower_sizer->Add( enabled_checkbox,  1 , wxEXPAND | wxALL , 5 );    if( b_broadcast )    {        loop_checkbox = new wxCheckBox( this, -1, wxU( _("Loop" ) ) );        lower_sizer->Add( loop_checkbox,  1 , wxEXPAND | wxALL , 5 );    }    if( !b_edit )    {        lower_sizer->Add( new wxButton( this, wxID_CLEAR,                          wxU( _( "&Clear" )  ) ),                         0 , wxEXPAND | wxALL , 5 );    }    lower_sizer->Add( new wxButton( this, Create_Event,                          wxU( _( b_edit ? "OK" : "Create" ) ) ),                      0 , wxEXPAND | wxALL , 5 );    panel_sizer->Add( lower_sizer, 0 , wxEXPAND| wxALL, 5 );    panel_sizer->Layout();    SetSizerAndFit( panel_sizer );}VLMAddStreamPanel::~VLMAddStreamPanel(){}void VLMAddStreamPanel::Load( VLMStream *p_stream ){    name_text->SetValue( wxU( p_stream->p_media->psz_name ) );    name_text->SetEditable( false );    if( p_stream->p_media->i_input > 0 )    {        input_text->SetValue( wxU( p_stream->p_media->input[0] ) );    }    output_text->SetValue( wxU( p_stream->p_media->psz_output ) );    enabled_checkbox->SetValue( p_stream->p_media->b_enabled );    if( b_broadcast)        loop_checkbox->SetValue( p_stream->p_media->b_loop );}void VLMAddStreamPanel::OnCreate( wxCommandEvent &event ){    char *psz_name = wxFromLocale( name_text->GetValue() );    char *psz_input = wxFromLocale(  input_text->GetValue() );    char *psz_output = wxFromLocale( output_text->GetValue() );    if( b_broadcast && ! b_edit )    {        p_vlm->AddBroadcast( psz_name, psz_input, psz_output,                         enabled_checkbox->IsChecked() ? VLC_TRUE: VLC_FALSE,                         loop_checkbox->IsChecked() ? VLC_TRUE : VLC_FALSE );    }    else if( b_broadcast && b_edit )    {        p_vlm->EditBroadcast( psz_name, psz_input, psz_output,                        enabled_checkbox->IsChecked() ? VLC_TRUE: VLC_FALSE,                        loop_checkbox->IsChecked() ? VLC_TRUE : VLC_FALSE );    }    else if( !b_broadcast && !b_edit )    {        p_vlm->AddVod( psz_name, psz_input, psz_output,                       enabled_checkbox->IsChecked() ? VLC_TRUE: VLC_FALSE,                       loop_checkbox->IsChecked() ? VLC_TRUE : VLC_FALSE );    }    else    {        p_vlm->EditVod( psz_name, psz_input, psz_output,                        enabled_checkbox->IsChecked() ? VLC_TRUE: VLC_FALSE,                        loop_checkbox->IsChecked() ? VLC_TRUE : VLC_FALSE );    }    wxLocaleFree( psz_name) ; wxLocaleFree( psz_input ) ;    wxLocaleFree( psz_output);    if( !b_edit )        OnClear( event );    if( b_edit )        p_parent->Hide();}void VLMAddStreamPanel::OnClear( wxCommandEvent &event ){    name_text->SetValue( wxU("") );    input_text->SetValue( wxU("") );    output_text->SetValue( wxU("") );}void VLMAddStreamPanel::OnChooseInput( wxCommandEvent &event ){    if( p_open_dialog == NULL )        p_open_dialog = new OpenDialog( p_intf, this, -1, -1, OPEN_STREAM );    if( p_open_dialog && p_open_dialog->ShowModal() == wxID_OK )    {        input_text->SetValue( p_open_dialog->mrl[0] );    }}void VLMAddStreamPanel::OnChooseOutput( wxCommandEvent &event ){    if( p_sout_dialog == NULL )        p_sout_dialog = new SoutDialog( p_intf, this );    if( p_sout_dialog && p_sout_dialog->ShowModal() == wxID_OK )    {        wxString sout = (p_sout_dialog->GetOptions())[0] ;        sout = sout.AfterFirst( '=' );        output_text->SetValue( sout );    }}/**************************************************************************** * VLM Frame implementation ****************************************************************************/enum{};BEGIN_EVENT_TABLE( VLMFrame, wxFrame )    EVT_CLOSE( VLMFrame::OnClose )END_EVENT_TABLE()VLMFrame::VLMFrame( intf_thread_t *_p_intf, wxWindow *_p_parent ) :        wxFrame( _p_parent, -1, wxU( _("VLM") ),        wxDefaultPosition, wxSize( 640,480 ), wxDEFAULT_FRAME_STYLE ){    SetIcon( *_p_intf->p_sys->p_icon );    wxBoxSizer *main_sizer = new wxBoxSizer( wxHORIZONTAL );    vlm_panel = new VLMPanel( _p_intf, this );#if defined(WIN32)    main_sizer->Add( vlm_panel, 1, wxGROW, 0 );#else    main_sizer->Add( vlm_panel, 1, wxEXPAND | wxALL, 5 );#endif    main_sizer->Layout();    SetSizerAndFit( main_sizer );}void VLMFrame::OnClose( wxCloseEvent& WXUNUSED(event) ){    Hide();}void VLMFrame::Update(){    vlm_panel->Update();}VLMFrame::~VLMFrame(){    delete vlm_panel;}/**************************************************************************** * VLM Add stream Frame implementation ****************************************************************************/VLMEditStreamFrame::VLMEditStreamFrame( intf_thread_t *_p_intf,            wxWindow *_p_parent, VLMWrapper *_p_vlm, vlc_bool_t _b_broadcast,            VLMStream *p_stream ) :        wxFrame( _p_parent, -1, wxU( _("VLM stream") ),        wxDefaultPosition, wxSize( 640,480 ), wxDEFAULT_FRAME_STYLE ){    SetIcon( *_p_intf->p_sys->p_icon );    wxBoxSizer *main_sizer = new wxBoxSizer( wxHORIZONTAL );    vlm_panel = new VLMAddStreamPanel( _p_intf, this, _p_vlm ,                                       VLC_TRUE, _b_broadcast );    vlm_panel->Load( p_stream );    main_sizer->Add( vlm_panel, 1, wxEXPAND | wxALL, 5 );    main_sizer->Layout();    SetSizerAndFit( main_sizer );}VLMEditStreamFrame::~VLMEditStreamFrame(){}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -