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

📄 wxosmo4.h

📁 一个用于智能手机的多媒体库适合S60 WinCE的跨平台开发库
💻 H
字号:
/* *			GPAC - Multimedia Framework C SDK * *			Copyright (c) Jean Le Feuvre 2000-2005 *					All rights reserved * *  This file is part of GPAC / Osmo4 wxWidgets GUI * *  GPAC is free software; you can redistribute it and/or modify *  it under the terms of the GNU Lesser General Public License as published by *  the Free Software Foundation; either version 2, or (at your option) *  any later version. *    *  GPAC is distributed in the hope that it will be useful, *  but WITHOUT ANY WARRANTY; without even the implied warranty of *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the *  GNU Lesser General Public License for more details. *    *  You should have received a copy of the GNU Lesser General Public *  License along with this library; see the file COPYING.  If not, write to *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  * *		 */#ifndef _WXOSMO4_H#define _WXOSMO4_H/*we need to force X to work in sync mode when we use embedded view...include first to avoid Bool type redef between X11 and gpac*/#ifdef __WXGTK__#include <X11/Xlib.h>#endif#include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/wx.h"#endif#include <wx/image.h>#include <wx/listctrl.h>#include <wx/event.h>#include "menubtn.h"/*include gpac AFTER wx in case we override malloc/realloc/free for mem tracking*/#include <gpac/terminal.h>#include <gpac/term_info.h>class wxOsmo4App : public wxApp{public:	virtual bool OnInit();};DECLARE_APP(wxOsmo4App)class wxOsmo4Frame;class wxPlaylist;class GPACLogs : public wxLogWindow {public:    GPACLogs(wxFrame *parent) : wxLogWindow(parent, wxT("GPAC Logs"), FALSE, FALSE) {		m_pMain = (wxOsmo4Frame *) parent;	}	virtual bool OnFrameClose(wxFrame *frame);private:	wxOsmo4Frame *m_pMain;};#define MAX_VIEWPOINTS	50enum {	// Menu commands	FILE_OPEN = wxID_HIGHEST+1,	FILE_OPEN_URL,	FILE_RELOAD,	FILE_PLAY,	FILE_STEP,	FILE_STOP,	FILE_PREV,	FILE_NEXT,	FILE_PROPERTIES,	TERM_RELOAD,	FILE_QUIT,	VIEW_FULLSCREEN,	VIEW_ORIGINAL,	VIEW_AR_KEEP,	VIEW_AR_FILL,	VIEW_AR_43,	VIEW_AR_169,	VIEW_OPTIONS,	VIEW_LOGS,	VIEW_RTI,	VIEW_PLAYLIST,	SWITCH_RENDER,	APP_SHORTCUTS,	APP_NAV_KEYS,	APP_ABOUT,	ID_ADDRESS,	ID_URL_GO,	ID_ABOUT_CLOSE,	ID_CLEAR_NAV,	ID_STREAM_MENU,	ID_CHAPTER_MENU,	ID_ADD_SUB,	ID_MCACHE_ENABLE,	ID_MCACHE_STOP,	ID_MCACHE_ABORT,	ID_CTRL_TIMER,	ID_SLIDER,	ID_TREE_VIEW,	ID_OD_TIMER,	ID_VIEW_SG,	ID_VIEW_WI,	ID_VIEW_SEL,	ID_HEADLIGHT,	ID_NAVIGATE_NONE,	ID_NAVIGATE_WALK,	ID_NAVIGATE_FLY,	ID_NAVIGATE_EXAMINE,	ID_NAVIGATE_SLIDE,	ID_NAVIGATE_PAN,	ID_NAVIGATE_ORBIT,	ID_NAVIGATE_GAME,	ID_NAVIGATE_RESET,	ID_COLLIDE_NONE,	ID_COLLIDE_REG,	ID_COLLIDE_DISP,	ID_GRAVITY,	ID_PL_OPEN,	ID_PL_SAVE,	ID_PL_ADD_FILE,	ID_PL_ADD_URL,	ID_PL_ADD_DIR,	ID_PL_ADD_DIR_REC,	ID_PL_REM_FILE,	ID_PL_REM_ALL,	ID_PL_REM_DEAD,	ID_PL_UP,	ID_PL_DOWN,	ID_PL_RANDOMIZE,	ID_PL_REVERSE,	ID_PL_SEL_REV,	ID_PL_SORT_TITLE,	ID_PL_SORT_FILE,	ID_PL_SORT_DUR,	ID_PL_PLAY,	/*reserve IDs for viewpoint menu*/	ID_VIEWPOINT_FIRST,	ID_VIEWPOINT_LAST = ID_VIEWPOINT_FIRST + MAX_VIEWPOINTS,	/*reserve IDs for navigation menus*/	ID_NAV_PREV_0,	ID_NAV_PREV_9 = ID_NAV_PREV_0 + 10,	ID_NAV_NEXT_0,	ID_NAV_NEXT_9 = ID_NAV_NEXT_0 + 10,	/*reserve IDs for stream selection menus*/	ID_SELSTREAM_0,	ID_SELSTREAM_9 = ID_SELSTREAM_0 + 10,	/*reserve IDs for chapter selection menus*/	ID_SETCHAP_FIRST,	ID_SETCHAP_LAST = ID_SELSTREAM_0 + 200,};wxString get_pref_browser(GF_Config *cfg);class wxGPACEvent : public wxEvent{public:	wxGPACEvent( wxWindow* win = (wxWindow*) NULL );	void CopyObject( wxObject& obj ) const;	virtual wxEvent *Clone() const;	wxString to_url;	GF_Event gpac_evt;	DECLARE_DYNAMIC_CLASS(wxGPACEvent)};typedef void (wxEvtHandler::*GPACEventFunction)(wxGPACEvent&);DEFINE_EVENT_TYPE(GPAC_EVENT)#define EVT_GPACEVENT(func) DECLARE_EVENT_TABLE_ENTRY(GPAC_EVENT, -1, -1, (wxObjectEventFunction) (wxEventFunction) (GPACEventFunction) & func, (wxObject*) NULL),class OpenURLDlg : public wxDialog {public:    OpenURLDlg(wxWindow *parent, GF_Config *cfg);	wxString m_urlVal;private:    wxButton *m_go;    wxComboBox *m_url;	GF_Config *m_cfg;	void OnGo(wxCommandEvent& event);    DECLARE_EVENT_TABLE()};class wxMyComboBox : public wxComboBox{public:	wxMyComboBox(wxWindow* parent, wxWindowID id, const wxString& value = wxT(""), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize)		: wxComboBox(parent, id, value, pos, size, 0, NULL, wxCB_DROPDOWN)	{}private:	DECLARE_EVENT_TABLE()	void OnKeyUp(wxKeyEvent &event);};class wxOsmo4Frame : public wxFrame {public:    wxOsmo4Frame();    virtual ~wxOsmo4Frame();	char szAppPath[GF_MAX_PATH];	u32 m_duration;	wxString the_next_url;	GF_Terminal *m_term;	GF_User m_user;	Bool m_connected, m_can_seek, m_console_off, m_loop, m_lookforsubs;		void DoConnect();	void ConnectAcknowledged(Bool bOk); 	void ReloadTerminal(); 	void SetStatus(wxString str);	void OnFilePlay(wxCommandEvent &event);	void OnFileStep(wxCommandEvent &event);	void OnFileStop(wxCommandEvent &event);	wxString GetFileFilter();	void BuildViewList();	void BuildStreamList(Bool reset_only);	void BuildChapterList(Bool reset_only);	void AddSubtitle(const char *fileName, Bool auto_play);	wxWindow *m_pView;#ifdef __WXGTK__	u32 m_last_grab_time, m_last_grab_pos;	wxWindow *m_pVisual;#endif	wxSlider *m_pProg;		wxPlaylist *m_pPlayList;	void DoLayout(u32 v_width = 0, u32 v_height = 0);	s32 m_last_prog;	FILE *m_logs;	u32 m_log_level, m_log_tools;	u32 m_LastStatusTime;protected:private:	DECLARE_EVENT_TABLE()	void OnCloseApp(wxCloseEvent &event);	void OnSize(wxSizeEvent &event);	void OnFileOpen(wxCommandEvent &event);	void OnFileOpenURL(wxCommandEvent &event);	void OnFileReload(wxCommandEvent &event);	void OnFileProperties(wxCommandEvent &event);	void OnTermReload(wxCommandEvent &event);	void OnFileQuit(wxCommandEvent &event);	void OnFullScreen(wxCommandEvent &event);	void OnOptions(wxCommandEvent &event);	void OnViewARKeep(wxCommandEvent &event);	void OnViewARFill(wxCommandEvent &event);	void OnViewAR169(wxCommandEvent &event);	void OnViewAR43(wxCommandEvent &event);	void OnViewOriginal(wxCommandEvent &event);	void OnPlaylist(wxCommandEvent &event);	void OnShortcuts(wxCommandEvent &event);	void OnNavInfo(wxCommandEvent &event);	void OnAddSub(wxCommandEvent &event);	void OnAbout(wxCommandEvent &event);	Bool LoadTerminal();	void OnGPACEvent(wxGPACEvent &event);	void OnTimer(wxTimerEvent& event);	void OnSlide(wxScrollEvent &event);	void OnRelease(wxScrollEvent &event);	void OnLogs(wxCommandEvent & event);	void OnRTI(wxCommandEvent & event);	void OnUpdatePlay(wxUpdateUIEvent &event);	void OnUpdateNeedsConnect(wxUpdateUIEvent &event);	void OnUpdateFullScreen(wxUpdateUIEvent &event);	void OnUpdateAR(wxUpdateUIEvent &event);	void OnViewport(wxCommandEvent & event);	void OnUpdateViewport(wxUpdateUIEvent & event);	void OnNavigate(wxCommandEvent & event);	void OnNavigateReset(wxCommandEvent & event);	void OnUpdateNavigation(wxUpdateUIEvent & event);	void OnRenderSwitch(wxCommandEvent &event);	void OnCollide(wxCommandEvent & event);	void OnUpdateCollide(wxUpdateUIEvent & event);	void OnHeadlight(wxCommandEvent & event);	void OnUpdateHeadlight(wxUpdateUIEvent & event);	void OnGravity(wxCommandEvent & event);	void OnUpdateGravity(wxUpdateUIEvent & event);	void OnURLSelect(wxCommandEvent &event);	void OnUpdatePlayList(wxUpdateUIEvent & event);	void OnFilePrevOpen(wxNotifyEvent & event);	void OnFileNextOpen(wxNotifyEvent & event);	void OnNavPrev(wxCommandEvent &event);	void OnUpdateNavPrev(wxUpdateUIEvent & event);	void OnNavPrevMenu(wxCommandEvent &event);	void OnNavNext(wxCommandEvent &event);	void OnUpdateNavNext(wxUpdateUIEvent & event);	void OnNavNextMenu(wxCommandEvent &event);	void OnClearNav(wxCommandEvent &event);	void OnStreamSel(wxCommandEvent &event);	void OnUpdateStreamSel(wxUpdateUIEvent & event);	void OnUpdateStreamMenu(wxUpdateUIEvent & event);	void OnChapterSel(wxCommandEvent &event);	void OnUpdateChapterSel(wxUpdateUIEvent & event);	void OnUpdateChapterMenu(wxUpdateUIEvent & event);	void SelectionReady();	void ReloadURLs();	void LookForSubtitles();	void OnCacheEnable(wxCommandEvent &event);	void OnCacheStop(wxCommandEvent &event);	void OnCacheAbort(wxCommandEvent &event);	void OnUpdateCacheEnable(wxUpdateUIEvent & event);	void OnUpdateCacheAbort(wxUpdateUIEvent & event);	void CheckVideoOut();    wxMenuBar* m_pMenubar;    wxStatusBar* m_pStatusbar;	wxTimer *m_pTimer;	GPACLogs *m_pLogs;	wxBoxSizer *m_pAddBar;	Bool m_bGrabbed, m_bToReset, m_bFirstStreamListBuild;	wxBitmap *m_pOpenFile, *m_pPrev, *m_pNext, *m_pPlay, *m_pPause, *m_pStep, *m_pStop, *m_pInfo, *m_pConfig, *m_pSW2D, *m_pSW3D;	wxMenuButton *m_pPrevBut, *m_pNextBut;	wxToolBar *m_pToolBar;	wxMyComboBox *m_Address;		wxMenu *vp_list;	wxMenu *sel_menu;	wxMenu *chap_menu;	void Stop();	s32 nb_viewpoints;	void UpdateRenderSwitch();	void UpdatePlay();	u32 m_orig_width, m_orig_height;	u32 m_num_chapters;	Double *m_chapters_start;	Bool m_bExternalView, m_bViewRTI, m_bStartupFile;	void ShowViewWindow(Bool do_show);};#endif 

⌨️ 快捷键说明

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