📄 wxwindows.h
字号:
#define MAX_ACCESS CAPTURE_ACCESS/* Stream output Dialog */enum{ PLAY_ACCESS_OUT = 0, FILE_ACCESS_OUT, HTTP_ACCESS_OUT, MMSH_ACCESS_OUT, UDP_ACCESS_OUT, ACCESS_OUT_NUM};enum{ TS_ENCAPSULATION = 0, PS_ENCAPSULATION, MPEG1_ENCAPSULATION, OGG_ENCAPSULATION, ASF_ENCAPSULATION, MP4_ENCAPSULATION, MOV_ENCAPSULATION, WAV_ENCAPSULATION, RAW_ENCAPSULATION, AVI_ENCAPSULATION, ENCAPS_NUM};enum{ ANN_MISC_SOUT = 0, MISC_SOUT_NUM};class SoutDialog: public wxDialog{public: /* Constructor */ SoutDialog( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~SoutDialog(); wxArrayString GetOptions();private: void UpdateMRL(); wxPanel *AccessPanel( wxWindow* parent ); wxPanel *MiscPanel( wxWindow* parent ); wxPanel *EncapsulationPanel( wxWindow* parent ); wxPanel *TranscodingPanel( wxWindow* parent ); void ParseMRL(); /* Event handlers (these functions should _not_ be virtual) */ void OnOk( wxCommandEvent& event ); void OnCancel( wxCommandEvent& event ); void OnMRLChange( wxCommandEvent& event ); void OnAccessTypeChange( wxCommandEvent& event ); /* Event handlers for the file access output */ void OnFileChange( wxCommandEvent& event ); void OnFileBrowse( wxCommandEvent& event ); void OnFileDump( wxCommandEvent& event ); /* Event handlers for the net access output */ void OnNetChange( wxCommandEvent& event ); /* Event specific to the announce address */ void OnAnnounceGroupChange( wxCommandEvent& event ); void OnAnnounceAddrChange( wxCommandEvent& event ); /* Event handlers for the encapsulation panel */ void OnEncapsulationChange( wxCommandEvent& event ); /* Event handlers for the transcoding panel */ void OnTranscodingEnable( wxCommandEvent& event ); void OnTranscodingChange( wxCommandEvent& event ); /* Event handlers for the misc panel */ void OnSAPMiscChange( wxCommandEvent& event ); void OnSLPMiscChange( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; wxWindow *p_parent; wxComboBox *mrl_combo; /* Controls for the access outputs */ wxPanel *access_panel; wxPanel *access_subpanels[ACCESS_OUT_NUM]; wxCheckBox *access_checkboxes[ACCESS_OUT_NUM]; int i_access_type; wxComboBox *file_combo; wxCheckBox *dump_checkbox; wxSpinCtrl *net_ports[ACCESS_OUT_NUM]; wxTextCtrl *net_addrs[ACCESS_OUT_NUM]; /* Controls for the SAP announces */ wxPanel *misc_panel; wxPanel *misc_subpanels[MISC_SOUT_NUM]; wxCheckBox *sap_checkbox; wxCheckBox *slp_checkbox; wxTextCtrl *announce_group; wxTextCtrl *announce_addr; /* Controls for the encapsulation */ wxPanel *encapsulation_panel; wxRadioButton *encapsulation_radios[ENCAPS_NUM]; int i_encapsulation_type; /* Controls for transcoding */ wxPanel *transcoding_panel; wxCheckBox *video_transc_checkbox; wxComboBox *video_codec_combo; wxComboBox *audio_codec_combo; wxCheckBox *audio_transc_checkbox; wxComboBox *video_bitrate_combo; wxComboBox *audio_bitrate_combo; wxComboBox *audio_channels_combo; wxComboBox *video_scale_combo; wxComboBox *subtitles_codec_combo; wxCheckBox *subtitles_transc_checkbox; wxCheckBox *subtitles_overlay_checkbox; /* Misc controls */ wxCheckBox *sout_all_checkbox;};/* Subtitles File Dialog */class SubsFileDialog: public wxDialog{public: /* Constructor */ SubsFileDialog( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~SubsFileDialog(); wxComboBox *file_combo; wxComboBox *encoding_combo; wxComboBox *size_combo; wxComboBox *align_combo; wxSpinCtrl *fps_spinctrl; wxSpinCtrl *delay_spinctrl;private: /* Event handlers (these functions should _not_ be virtual) */ void OnOk( wxCommandEvent& event ); void OnCancel( wxCommandEvent& event ); void OnFileBrowse( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; wxWindow *p_parent;};/* Stream */class StreamDialog: public wxFrame{public: /* Constructor */ StreamDialog( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~StreamDialog();private: void OnClose( wxCommandEvent& event ); void OnOpen( wxCommandEvent& event ); void OnSout( wxCommandEvent& event ); void OnStart( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; wxStaticText *step2_label; wxStaticText *step3_label; wxButton *sout_button; wxButton *start_button; wxArrayString mrl; wxArrayString sout_mrl; OpenDialog *p_open_dialog; SoutDialog *p_sout_dialog;};/* Wizard */class WizardDialog : public wxWizard{public: /* Constructor */ WizardDialog( intf_thread_t *p_intf, wxWindow *p_parent,char *, int, int ); virtual ~WizardDialog(); void SetTranscode( char *vcodec, int vb, char *acodec,int ab); void SetMrl( const char *mrl ); void SetTTL( int i_ttl ); void SetPartial( int, int ); void SetStream( char *method, char *address ); void SetTranscodeOut( const char *address ); void SetAction( int i_action ); int GetAction(); void SetSAP( bool b_enabled, const char *psz_name ); void SetMux( char *mux ); void Run(); int i_action; char *method;protected: int vb,ab; int i_from, i_to, i_ttl; char *vcodec , *acodec , *address , *mrl , *mux ; char *psz_sap_name; bool b_sap; DECLARE_EVENT_TABLE(); intf_thread_t *p_intf;};/* Preferences Dialog */class PrefsDialog: public wxFrame{public: /* Constructor */ PrefsDialog( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~PrefsDialog();private: wxPanel *PrefsPanel( wxWindow* parent ); /* Event handlers (these functions should _not_ be virtual) */ void OnOk( wxCommandEvent& event ); void OnCancel( wxCommandEvent& event ); void OnSave( wxCommandEvent& event ); void OnResetAll( wxCommandEvent& event ); void OnAdvanced( wxCommandEvent& event ); void OnClose( wxCloseEvent& event ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; PrefsTreeCtrl *prefs_tree;};/* Messages */class Messages: public wxFrame{public: /* Constructor */ Messages( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~Messages(); bool Show( bool show = TRUE ); void UpdateLog();private: /* Event handlers (these functions should _not_ be virtual) */ void OnButtonClose( wxCommandEvent& event ); void OnClose( wxCloseEvent& WXUNUSED(event) ); void OnClear( wxCommandEvent& event ); void OnSaveLog( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; wxTextCtrl *textctrl; wxTextAttr *info_attr; wxTextAttr *err_attr; wxTextAttr *warn_attr; wxTextAttr *dbg_attr; wxFileDialog *save_log_dialog; vlc_bool_t b_verbose;};/* Playlist */class Playlist: public wxFrame{public: /* Constructor */ Playlist( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~Playlist(); void UpdatePlaylist(); void ShowPlaylist( bool show ); void UpdateItem( int ); void AppendItem( wxCommandEvent& ); bool b_need_update;private: void RemoveItem( int ); void DeleteTreeItem( wxTreeItemId ); void DeleteItem( int item ); void DeleteNode( playlist_item_t *node ); void RecursiveDeleteSelection( wxTreeItemId ); /* Event handlers (these functions should _not_ be virtual) */ /* Menu Handlers */ void OnAddFile( wxCommandEvent& event ); void OnAddDir( wxCommandEvent& event ); void OnAddMRL( wxCommandEvent& event ); void OnMenuClose( wxCommandEvent& event ); void OnClose( wxCloseEvent& WXUNUSED(event) ); void OnDeleteSelection( wxCommandEvent& event ); void OnOpen( wxCommandEvent& event ); void OnSave( wxCommandEvent& event ); /* Search (user) */ void OnSearch( wxCommandEvent& event ); /*void OnSearchTextChange( wxCommandEvent& event );*/ wxTextCtrl *search_text; wxButton *search_button; wxTreeItemId search_current; void OnEnDis( wxCommandEvent& event ); /* Sort */ int i_sort_mode; void OnSort( wxCommandEvent& event ); int i_title_sorted; int i_group_sorted; int i_duration_sorted; /* Dynamic menus */ void OnMenuEvent( wxCommandEvent& event ); void OnMenuOpen( wxMenuEvent& event ); wxMenu *p_view_menu; wxMenu *p_sd_menu; wxMenu *ViewMenu(); wxMenu *SDMenu(); void OnUp( wxCommandEvent& event); void OnDown( wxCommandEvent& event); void OnRandom( wxCommandEvent& event ); void OnRepeat( wxCommandEvent& event ); void OnLoop ( wxCommandEvent& event ); void OnActivateItem( wxTreeEvent& event ); void OnKeyDown( wxTreeEvent& event ); void OnNewGroup( wxCommandEvent& event ); /* Popup */ wxMenu *item_popup; wxMenu *node_popup; wxTreeItemId i_wx_popup_item; int i_popup_item; int i_popup_parent; void OnPopup( wxContextMenuEvent& event ); void OnPopupPlay( wxCommandEvent& event ); void OnPopupPreparse( wxCommandEvent& event ); void OnPopupSort( wxCommandEvent& event ); void OnPopupDel( wxCommandEvent& event ); void OnPopupEna( wxCommandEvent& event ); void OnPopupInfo( wxCommandEvent& event ); void Rebuild( vlc_bool_t ); void Preparse(); /* Update */ void UpdateNode( playlist_item_t*, wxTreeItemId ); void UpdateNodeChildren( playlist_item_t*, wxTreeItemId ); void CreateNode( playlist_item_t*, wxTreeItemId ); void UpdateTreeItem( wxTreeItemId ); /* Search (internal) */ int CountItems( wxTreeItemId); wxTreeItemId FindItem( wxTreeItemId, int ); wxTreeItemId FindItemByName( wxTreeItemId, wxString, wxTreeItemId, vlc_bool_t *); wxTreeItemId saved_tree_item; int i_saved_id; playlist_t *p_playlist; /* Custom events */ void OnPlaylistEvent( wxCommandEvent& event ); DECLARE_EVENT_TABLE(); /* Global widgets */ wxStatusBar *statusbar; ItemInfoDialog *iteminfo_dialog; int i_update_counter; intf_thread_t *p_intf; wxTreeCtrl *treectrl; int i_current_view; vlc_bool_t b_changed_view; char **pp_sds;};/* ItemInfo Dialog */class ItemInfoDialog: public wxDialog{public: /* Constructor */ ItemInfoDialog( intf_thread_t *p_intf, playlist_item_t *_p_item, wxWindow *p_parent ); virtual ~ItemInfoDialog(); wxArrayString GetOptions();private: wxPanel *InfoPanel( wxWindow* parent ); wxPanel *GroupPanel( wxWindow* parent ); /* Event handlers (these functions should _not_ be virtual) */ void OnOk( wxCommandEvent& event ); void OnCancel( wxCommandEvent& event ); void UpdateInfo(); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; playlist_item_t *p_item; wxWindow *p_parent; /* Controls for the iteminfo dialog box */ wxPanel *info_subpanel; wxPanel *info_panel; wxPanel *group_subpanel; wxPanel *group_panel; wxTextCtrl *uri_text; wxTextCtrl *name_text; wxTreeCtrl *info_tree; wxTreeItemId info_root;};/* File Info */class FileInfo: public wxFrame{public: /* Constructor */ FileInfo( intf_thread_t *p_intf, wxWindow *p_parent ); virtual ~FileInfo(); void UpdateFileInfo(); vlc_bool_t b_need_update;private: void OnButtonClose( wxCommandEvent& event ); void OnClose( wxCloseEvent& WXUNUSED(event) ); DECLARE_EVENT_TABLE(); intf_thread_t *p_intf; wxTreeCtrl *fileinfo_tree; wxTreeItemId fileinfo_root; wxString fileinfo_root_label;};#if wxUSE_DRAG_AND_DROP/* Drag and Drop class */class DragAndDrop: public wxFileDropTarget{public: DragAndDrop( intf_thread_t *_p_intf, vlc_bool_t b_enqueue = VLC_FALSE ); virtual bool OnDropFiles( wxCoord x, wxCoord y, const wxArrayString& filenames );private: intf_thread_t *p_intf; vlc_bool_t b_enqueue;};#endif} // end of wxvlc namespace/* */class WindowSettings{public: WindowSettings( intf_thread_t *_p_intf ); virtual ~WindowSettings(); enum { ID_SCREEN = -1, ID_MAIN, ID_PLAYLIST, ID_MESSAGES, ID_FILE_INFO, ID_BOOKMARKS, ID_VIDEO, ID_MAX, }; void SetSettings( int id, bool _b_shown, wxPoint p = wxDefaultPosition, wxSize s = wxDefaultSize ); bool GetSettings( int id, bool& _b_shown, wxPoint& p, wxSize& s ); void SetScreen( int i_screen_w, int i_screen_h );private: intf_thread_t *p_intf; int i_screen_w; int i_screen_h; bool b_valid[ID_MAX]; bool b_shown[ID_MAX]; wxPoint position[ID_MAX]; wxSize size[ID_MAX];};/* Menus */void PopupMenu( intf_thread_t *, wxWindow *, const wxPoint& );wxMenu *SettingsMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *AudioMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *VideoMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );wxMenu *NavigMenu( intf_thread_t *, wxWindow *, wxMenu * = NULL );namespace wxvlc{class MenuEvtHandler : public wxEvtHandler{public: MenuEvtHandler( intf_thread_t *p_intf, Interface *p_main_interface ); virtual ~MenuEvtHandler(); void OnMenuEvent( wxCommandEvent& event ); void OnShowDialog( wxCommandEvent& event );private: DECLARE_EVENT_TABLE() intf_thread_t *p_intf; Interface *p_main_interface;};} // end of wxvlc namespace/* * wxWindows keeps dead locking because the timer tries to lock the playlist * when it's already locked somewhere else in the very wxWindows interface * module. Unless someone implements a "vlc_mutex_trylock", we need that. */inline void LockPlaylist( intf_sys_t *p_sys, playlist_t *p_pl ){ if( p_sys->i_playlist_usage++ == 0) vlc_mutex_lock( &p_pl->object_lock );}inline void UnlockPlaylist( intf_sys_t *p_sys, playlist_t *p_pl ){ if( --p_sys->i_playlist_usage == 0) vlc_mutex_unlock( &p_pl->object_lock );}using namespace wxvlc;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -