亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gui_player.h

?? 彩信瀏覽器
?? H
字號:
/* * This file is part of Ambulant Player, www.ambulantplayer.org. * * Copyright (C) 2003-2007 Stichting CWI,  * Kruislaan 413, 1098 SJ Amsterdam, The Netherlands. * * Ambulant Player 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.1 of the License, or * (at your option) any later version. * * Ambulant Player 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 Ambulant Player; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */#ifndef GUI_PLAYER_H#define GUI_PLAYER_H#include "ambulant/config/config.h"#include "ambulant/lib/mtsync.h"#include "ambulant/common/factory.h"#include "ambulant/common/player.h"namespace ambulant {namespace common {/// This class allows plugins access to the screen (window, actually).class gui_screen {  public:	virtual ~gui_screen() {};		/// Return size of the ambulant output window.	virtual void get_size(int *width, int *height) = 0;		/// Obtain a screenshot.	/// Type is a string such as "png" or "jpeg". The caller is responsible	/// for freeing out_data when done.	virtual bool get_screenshot(const char *type, char **out_data, size_t *out_size) = 0;		/// Not implemented: Overlay an image on the current ambulant window.    /// The overlay will remain in-place until replaced or cleared. The caller    /// is reponsible for eventually freeing data.	virtual bool set_overlay(const char *type, const char *data, size_t size) = 0;    /// Not implemented: clear overlay image.	virtual bool clear_overlay() = 0;};/// Complete Ambulant Player, base class for GUI./// Contains all factories, loads plugins, parses and plays document,/// handles feedback from Ambulant Player to user interface code./// Some methods are expected to be overridden, some are not, some can/// optionally be overridden.class AMBULANTAPI gui_player : public factories {  public:	gui_player()	:	factories(),		m_doc(NULL),		m_embedder(NULL),		m_player(NULL),		m_goto_node(NULL) {}	virtual ~gui_player();		/// Initialize playable factory.	/// Usually overridden to supply platform- or gui-toolkit-dependent	/// renderers.	virtual void init_playable_factory() { factories::init_playable_factory(); }	/// Initialize window factory.	/// Always overridden to allow the player to actually create windows.	virtual void init_window_factory() { factories::init_window_factory(); }	/// Initialize datasource factory.	/// Override when the embedder supplies non-standard datasources.	virtual void init_datasource_factory() { factories::init_datasource_factory(); }	/// Initialize parser factory.	/// Override when the embedder supplies additional XML parsers.	virtual void init_parser_factory() { factories::init_parser_factory(); }	/// Load and initialize plugins.	/// Called at end of initialization, to load and initialize plugins	/// (which will in turn extend the various factories).	/// Usually not overridden.	virtual void init_plugins();		/// Start document playback. Usually not overridden.	virtual void play();	/// Stop document playback. Usually not overridden.	virtual void stop();	/// Pause document playback. Usually not overridden.	virtual void pause();		/// Restart document playback.	/// If reparse is true the document is re-read, otherwise the in-core	/// tree is restarted from the beginning. Usually called when the embedder	/// has modified the document (either the external representation or	/// the incore tree).	virtual void restart(bool reparse=true);		/// Set initial playback node.	/// Embedder can call this before start() to make the document	/// start at this node (in stead of at the root).	virtual void goto_node(const lib::node *n);//	virtual void set_speed(double speed) = 0;//	virtual double get_speed() const = 0;		/// Call this to check whether "play" menu entry should be enabled.	virtual bool is_play_enabled() const;	/// Call this to check whether "stop" menu entry should be enabled.	virtual bool is_stop_enabled() const;	/// Call this to check whether "pause" menu entry should be enabled.	virtual bool is_pause_enabled() const;	/// Call this to check whether "play" menu entry should be flagged.	virtual bool is_play_active() const;	/// Call this to check whether "stop" menu entry should be flagged.	virtual bool is_stop_active() const;	/// Call this to check whether "pause" menu entry should be flagged.	virtual bool is_pause_active() const;		/// Signal to player that a mousemove event is about to be communicated.	/// The embedder MUST call this method before communicating the mouse move	/// the the ambulant player core through the gui_event.	virtual void before_mousemove(int cursor);	/// Signal to player that mousemove event handling is done.	/// The embedder MUST call this method after communicating the mouse move	/// the the ambulant player core through the gui_event.	virtual int after_mousemove();		/// Embedder calls this to communicate keypress to the player.	virtual void on_char(int c);	/// Embedder calls this to communicate focus advance to the player.	virtual void on_focus_advance();	/// Embedder calls this to communicate focus activate to the player.	virtual void on_focus_activate();		/// Obtain the current document from the player.	virtual lib::document *get_document() const { return m_doc; }	/// Set the document to play.	virtual void set_document(lib::document *doc) { m_doc = doc; }		/// Get the current embedder object.	/// The embedding application can use this if it wants to extend	/// the embedder functionality while keeping the original embedder	/// object.	virtual embedder *get_embedder() const { return m_embedder; }	/// Set the embedder object.	virtual void set_embedder(embedder *em) { m_embedder = em; }		/// Get the player object.	/// The embedding application can use this if it wants to extend the	/// player object while using the original player to implement most	/// functionality.	virtual player *get_player() const { return m_player; }	/// Set the player object.	virtual void set_player(player *pl) { m_player = pl; }    /// Get URL of current document.	virtual net::url get_url() const { return m_url; }		/// Embedder should implement this if it implements the gui_screen interface.	virtual gui_screen *get_gui_screen() { return NULL; }		/// ???	static void load_test_attrs(std::string& filename);  protected:    /// Convenience method to parse XML.	lib::document *create_document(const net::url& url);	net::url m_url;	lib::document *m_doc;	embedder *m_embedder;	player *m_player;	const lib::node *m_goto_node;	lib::critical_section m_lock;};} // end namespaces} // end namespaces#endif /* GUI_PLAYER_H */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩亚洲电影在线| 天堂成人国产精品一区| 国产欧美一区在线| 国产网红主播福利一区二区| 日韩一级二级三级| 日韩三级视频中文字幕| 日韩免费高清av| 欧美白人最猛性xxxxx69交| 精品国产露脸精彩对白| 日韩三级免费观看| 精品免费99久久| 国产亚洲欧洲997久久综合| 国产欧美一区二区在线观看| 中文文精品字幕一区二区| 国产精品美日韩| 一区二区三区免费看视频| 亚洲bt欧美bt精品777| 秋霞电影一区二区| 国产呦精品一区二区三区网站| 国产在线一区二区| 99麻豆久久久国产精品免费| 91视频精品在这里| 欧美日韩你懂得| 欧美不卡激情三级在线观看| 国产免费久久精品| 一区二区三区在线播| 五月激情综合婷婷| 韩国女主播一区| 91一区二区三区在线观看| 欧美日韩亚洲丝袜制服| 精品久久久久久久人人人人传媒| 欧美激情综合五月色丁香小说| 中文字幕在线不卡| 日韩av在线免费观看不卡| 国产在线精品不卡| 色悠久久久久综合欧美99| 91精品国产综合久久精品| 国产午夜精品福利| 一区二区三区在线观看网站| 青青草精品视频| 成人激情黄色小说| 欧美剧情片在线观看| 国产欧美一区二区精品仙草咪| 亚洲日本成人在线观看| 蜜臀av一区二区| 成人18精品视频| 3d动漫精品啪啪一区二区竹菊| 久久久高清一区二区三区| 亚洲精品高清视频在线观看| 精品一区二区三区免费毛片爱| www.亚洲人| 欧美成人video| 一区二区三区四区在线| 国产一区二区三区免费看| 欧美在线观看你懂的| 久久先锋影音av鲁色资源网| 一片黄亚洲嫩模| 国产99精品国产| 7777精品伊人久久久大香线蕉 | 欧美伊人久久久久久久久影院| 精品欧美一区二区在线观看| 亚洲精品国产高清久久伦理二区| 国产在线精品免费av| 欧美日韩高清不卡| 国产精品久久久久天堂| 久久精品国产99| 欧美三日本三级三级在线播放| 中文字幕不卡一区| 蜜臀av国产精品久久久久| 91激情在线视频| 国产精品美女视频| 国产伦理精品不卡| 91精品国产乱码| 一区二区三区高清不卡| 成人一道本在线| 日韩亚洲欧美中文三级| 亚洲国产精品欧美一二99| av电影天堂一区二区在线| 精品国产乱码久久久久久免费 | 国产成人免费视频网站| 日韩午夜激情视频| 亚洲高清三级视频| 91国在线观看| 中文字幕一区二区三区色视频| 国产一区在线观看麻豆| 日韩免费在线观看| 奇米影视7777精品一区二区| 欧美日韩性生活| 一区二区成人在线| 色综合久久综合网欧美综合网| 国产日韩精品一区| 国产风韵犹存在线视精品| 精品伦理精品一区| 久久爱另类一区二区小说| 日韩视频123| 免费在线观看精品| 日韩三级视频在线观看| 秋霞国产午夜精品免费视频| 正在播放一区二区| 日欧美一区二区| 欧美放荡的少妇| 男女男精品视频| 欧美一区二区三区思思人| 爽好久久久欧美精品| 欧美乱妇一区二区三区不卡视频| 亚洲国产aⅴ成人精品无吗| 91成人免费电影| 亚洲大片一区二区三区| 538在线一区二区精品国产| 日韩av中文字幕一区二区三区| 91麻豆精品国产91久久久资源速度 | 精品亚洲国产成人av制服丝袜| 91精品欧美一区二区三区综合在| 日韩av一区二区三区| 精品欧美久久久| 国产.精品.日韩.另类.中文.在线.播放| 26uuu国产一区二区三区| 激情成人午夜视频| 国产偷国产偷亚洲高清人白洁| 成人性视频免费网站| 亚洲欧美韩国综合色| 欧美在线免费观看视频| 日韩成人免费电影| 亚洲精品在线观看网站| 国产aⅴ综合色| 亚洲精品大片www| 91精品久久久久久久91蜜桃| 麻豆91在线观看| 国产精品午夜免费| 日本电影欧美片| 免费成人在线观看| 欧美高清在线一区| 欧洲精品一区二区三区在线观看| 丝袜诱惑亚洲看片| 久久噜噜亚洲综合| 色嗨嗨av一区二区三区| 青娱乐精品视频在线| 中文字幕不卡在线| 欧美天堂一区二区三区| 久久99久久99精品免视看婷婷| 亚洲欧洲日韩女同| 制服丝袜在线91| 丁香桃色午夜亚洲一区二区三区| 亚洲自拍偷拍欧美| 精品福利av导航| 一本到一区二区三区| 日本不卡123| 亚洲人亚洲人成电影网站色| 欧美一区中文字幕| 99精品视频一区| 久久精品久久久精品美女| 综合分类小说区另类春色亚洲小说欧美 | 韩国欧美国产一区| 一区二区三区在线播| 精品久久久久久久久久久久久久久 | 国产成人精品免费在线| 亚洲综合av网| 久久久久久亚洲综合影院红桃| 日本精品一级二级| 国产一区二区剧情av在线| 久久99蜜桃精品| 亚洲制服欧美中文字幕中文字幕| 精品播放一区二区| 在线视频中文字幕一区二区| 国产精品99久久久| 日韩国产欧美三级| 亚洲欧美日韩国产中文在线| 亚洲精品一区二区精华| 欧美日韩精品一区二区三区| 成人精品视频网站| 久久国产剧场电影| 亚州成人在线电影| 亚洲人成人一区二区在线观看| 久久众筹精品私拍模特| 欧美精品tushy高清| 91丨porny丨国产入口| 国产福利精品一区二区| 久久电影网站中文字幕| 午夜日韩在线电影| 亚洲欧美日韩国产中文在线| 国产三级欧美三级| 精品精品欲导航| 7777精品伊人久久久大香线蕉经典版下载 | 91丝袜国产在线播放| 国产福利一区二区三区| 精品夜夜嗨av一区二区三区| 日本麻豆一区二区三区视频| 亚洲午夜在线视频| 一区二区三区电影在线播| 亚洲日本一区二区| 亚洲欧洲色图综合| 18欧美亚洲精品| 国产精品国产三级国产专播品爱网| 精品国产免费一区二区三区香蕉| 欧美人与性动xxxx| 欧美精选一区二区| 欧美日韩国产一级| 欧美三级资源在线| 欧美日韩成人激情| 欧美剧情片在线观看|