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

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

?? time_node.h

?? 彩信瀏覽器
?? H
?? 第 1 頁 / 共 2 頁
字號:
/* * 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 *//*  * @$Id: time_node.h,v 1.49 2007/02/12 14:14:45 jackjansen Exp $  */#ifndef AMBULANT_SMIL2_TIME_NODE_H#define AMBULANT_SMIL2_TIME_NODE_H#include "ambulant/config/config.h"#include "ambulant/lib/node.h"#include "ambulant/lib/timer.h"#include "ambulant/lib/node_navigator.h"#include "ambulant/common/schema.h"#include "ambulant/smil2/smil_time.h"#include "ambulant/smil2/sync_rule.h"#include "ambulant/smil2/time_attrs.h"#include "ambulant/smil2/time_state.h"#include "ambulant/smil2/time_nctx.h"#include <cassert>#include <utility>#include <list>#include <map>namespace ambulant {namespace smil2 {// fwd declaration.class time_calc;// Represents a node in the timing model.class time_node : public schedulable {  public:	typedef time_node_context context_type;	typedef node_navigator<time_node> nnhelper;	typedef node_navigator<const time_node> const_nnhelper;		time_node(context_type *ctx, const node *n, time_container_type type = tc_none, bool discrete = false); 		virtual ~time_node();  		// TimeElement DOM interface	// Currently support only startElement for the root.	virtual void start();	virtual void stop();	virtual void pause();	virtual void resume();	virtual void reset();		// driver interface	virtual void exec(qtime_type timestamp);	void get_pending_events(std::map<time_type, std::list<time_node*> >& events);		// Sets the timer for this node	// This node becomes the owner of the timer e.g. should delete it on exit	// The timegraph builder has already established the clocks network	virtual void set_timer(lib::timer_control *tmr) { m_timer = tmr;}	virtual lib::timer_control *get_timer() { return m_timer;}		// Timegarph configuration	void set_want_activate_event(bool want) { m_want_activate_events = want;}	void set_want_inbounds_event(bool want) { m_want_inbounds_events = want;}	void set_want_outofbounds_event(bool want) { m_want_outofbounds_events = want;}	void set_want_focusin_event(bool want) { m_want_focusin_events = want;}	void set_want_focusout_event(bool want) { m_want_focusout_events = want;}	bool wants_activate_event() const { return m_want_activate_events;}	bool wants_inbounds_event() const { return m_want_inbounds_events;}	bool wants_outofbounds_event() const { return m_want_outofbounds_events;}	bool wants_focusin_event() const { return m_want_focusin_events;}	bool wants_focusout_event() const { return m_want_focusout_events;}	void want_accesskey(bool want) { m_want_accesskey = want;}	bool want_accesskey() const { return m_want_accesskey;}	// Functions that may be overriden by subclasses	virtual time_node *append_child(time_node *child) {return nnhelper::append_child(this, child);}	virtual void get_children(std::list<time_node*>& l) { nnhelper::get_children(this, l);}	virtual void get_children(std::list<const time_node*>& l) const { const_nnhelper::get_children(this, l);}	virtual time_type get_implicit_dur();		// End sync functions	virtual bool end_sync_cond_applicable() const { return false;}	virtual bool end_sync_cond() const { return true;}		// Begin and end conditions evaluator	virtual bool begin_cond(qtime_type timestamp);	virtual bool end_cond(qtime_type timestamp);	// Feedback	void node_started();	// Forced transitions	virtual void reset(qtime_type timestamp, time_node *oproot);	virtual void reset_children(qtime_type timestamp, time_node *oproot);	virtual void startup_children(qtime_type timestamp);	virtual void kill(qtime_type timestamp, time_node *oproot);		virtual void kill_children(qtime_type timestamp, time_node *oproot);		// Sync update 	virtual void sync_update(qtime_type timestamp);		// Begin of media update	void on_bom(qtime_type timestamp);		// End of media update	void on_eom(qtime_type timestamp);		// Return true if the node is waiting for on on_eom callback.	bool want_on_eom();		// Pause of media update	void on_pom(qtime_type timestamp);		// Resume of media update	void on_rom(qtime_type timestamp);		// End of simple duration update	void on_eosd(qtime_type timestamp);		// End of (visual) transition	void on_transitioned(qtime_type timestamp);		// Raising events	virtual void raise_begin_event(qtime_type timestamp);	virtual void raise_repeat_event(qtime_type timestamp);	virtual void raise_end_event(qtime_type timestamp, time_node *oproot);	virtual void raise_activate_event(qtime_type timestamp);	virtual void raise_inbounds_event(qtime_type timestamp);	virtual void raise_outofbounds_event(qtime_type timestamp);	virtual void raise_focusin_event(qtime_type timestamp);	virtual void raise_focusout_event(qtime_type timestamp);	virtual void raise_accesskey(std::pair<qtime_type, int> accesskey);	virtual void raise_update_event(qtime_type timestamp);		// Interval manipulators		void set_interval(qtime_type timestamp, const interval_type& i);	void cancel_interval(qtime_type timestamp);	void update_interval(qtime_type timestamp, const interval_type& i);	void update_interval_end(qtime_type timestamp, time_type newend);	void played_interval(qtime_type timestamp);	void clear_history() { m_history.clear(); }	bool can_set_interval(qtime_type timestamp, const interval_type& i);		// excl	void defer_interval(qtime_type timestamp);		// Node activities	void activate(qtime_type timestamp);	void repeat(qtime_type timestamp);	void remove(qtime_type timestamp);	void fill(qtime_type timestamp);	void pause(qtime_type timestamp, pause_display d);	void resume(qtime_type timestamp);	void check_repeat(qtime_type timestamp);		// Anchors and areas	void follow_link(qtime_type timestamp);		// Playable commands	common::playable *create_playable();	void start_playable(time_type offset = 0);	void seek_playable(time_type offset);	void pause_playable(common::pause_display d = common::display_show);	void resume_playable();	void repeat_playable();	void stop_playable();	time_type get_playable_dur();	void prepare_playables();		// Animations are special internal playables	void start_animation(time_type offset);	void stop_animation();		// Std xml tree navigation interface	const time_node *down() const { return m_child;}	const time_node *up() const { return m_parent;}	const time_node *next() const { return m_next;}	time_node *down()  { return m_child;}	time_node *up()  { return m_parent;}	time_node *next()  { return m_next;}	void down(time_node *n)  { m_child = n;}	void up(time_node *n)  { m_parent = n;}	void next(time_node *n)  { m_next = n;}		const time_node* previous() const {return const_nnhelper::previous(this);}	time_node* previous() { return nnhelper::previous(this);}		time_node* last_child() { return nnhelper::last_child(this);}	const time_node* last_child() const { return const_nnhelper::last_child(this);}		time_node* get_root() {return nnhelper::get_root(this);}	const time_node* get_root() const {return const_nnhelper::get_root(this);}		bool is_descendent_of(time_node *tn) const {return const_nnhelper::is_descendent(this, tn);}		void get_path(std::list<time_node*>& path) { nnhelper::get_path(this, path);}	void get_path(std::list<const time_node*>& path) { const_nnhelper::get_path(this, path);}		// tree iterators	typedef tree_iterator<time_node> iterator;	typedef const_tree_iterator<time_node> const_iterator;	    iterator begin() { return iterator(this);}    const_iterator begin() const { return const_iterator(this);}    iterator end() { return iterator(0);}    const_iterator end() const { return const_iterator(0);}		// Returns the underlying DOM node associated with this	const node* dom_node() const { return m_node;}		// Timing reference node for this.	// This node uses the clock of the sync node for time notifications.	// Here it is defined to be the parent unless it is the time root.	// Could be the time root always (document time).	const time_node* sync_node() const { return up()?up():this;}	time_node* sync_node() { return up()?up():this;}	time_type get_rad() const { return m_rad;}	time_type get_pad() const { return m_pad;}	value_type get_simple_time() const;	time_type get_interval_end() const;	value_type get_time() const;		// Time type queries and classification	time_container_type get_type() const { return m_type;}	const char* get_type_as_str() const { return time_container_type_as_str(m_type);}	bool is_time_container() const { return m_type != tc_none;}	bool is_seq() const { return m_type == tc_seq;}	bool is_par() const { return m_type == tc_par;}	bool is_excl() const { return m_type == tc_excl;}#if 1	// Handling discrete media different than continuous media	// is a bad idea from a SMIL point of view (the tag name	// really is documentary only), and practically it	// caused problems with AmisAmbulant, which wants to	// pause after putting up a text node to allow the screen	// reader to do its thing.	// Code temporarily re-enabled because of bug #1553249.	bool is_discrete() const { return m_discrete;}#else	bool is_discrete() const { return false;}#endif	bool is_root() const { return !up();}	bool is_cmedia() const {return !is_time_container() && !is_discrete();}	bool is_area() const { return m_attrs.get_tag() == "area";}	bool is_a() const { return m_attrs.get_tag() == "a";}	bool is_link() const { return is_area() || is_a();}	bool is_animation() const;	bool is_playable() const;	const time_attrs* get_time_attrs() const { return &m_attrs;}	bool needs_implicit_dur() const;		// Time graph building functions		// Adds a begin rule to this node.	// The rule maybe implicit dictated by the model 	// or due to an explicit begin spec in the DOM.	// For each rule, the timegraph builder will call 	// this function in pair with add_dependent() against	// the node that this rule depends on.	void add_begin_rule(sync_rule *sr);		// Adds an end rule to this node.	// The rule maybe implicit dictated by the model 	// or due to an explicit end spec in the DOM.	// For each rule, the timegraph builder will call 	// this function in pair with add_dependent() against	// the node that this rule depends on.	void add_end_rule(sync_rule *sr);		// Sets the transOut rule for this node.	void set_transout_rule(sync_rule *sr);		// Adds a rule that dependents on this time node.	// The rule will get a timestamped notification from this	// node when the real or model event specified by the ev	// argument occurs for this node.	void add_dependent(sync_rule *sr, sync_event ev); 				// Update dependents	void on_new_instance(qtime_type timestamp, sync_event ev, time_type instance, time_node *filter=0);	void on_cancel_instance(qtime_type timestamp, sync_event ev, time_type instance, time_node *filter=0);	void on_update_instance(qtime_type timestamp, sync_event ev, time_type instance, time_type old_instance, time_node *filter=0);	void on_add_instance(qtime_type timestamp, sync_event ev, time_type instance, int data = 0, time_node *filter=0);			// Returns the lifetime state handler object of this time node	time_state* get_state() { return m_state;}	const time_state* get_state() const { return m_state;}		// Retuns the context of this time node	context_type* get_context() {return m_context;}	void set_context(context_type *ctx) { m_context = ctx;}		// Sets the state of this node	void set_state(time_state_type state, qtime_type timestamp, time_node *oproot);	// Calls set_state() after checking for excl	void set_state_ex(time_state_type tst, qtime_type timestamp);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
不卡一区二区三区四区| 国产视频一区二区在线观看| 色视频一区二区| 91国产精品成人| 精品久久久久久久一区二区蜜臀| 26uuu色噜噜精品一区| 国产精品视频看| 亚洲高清免费观看 | 欧美tk—视频vk| 久久成人免费日本黄色| 99精品视频一区二区三区| 91精品国产综合久久福利| 国产亚洲精品aa| 成人av集中营| 亚洲一区在线观看视频| 国产成人高清视频| 精品精品国产高清一毛片一天堂| 一区二区不卡在线播放 | 中文无字幕一区二区三区| 亚洲成人综合网站| 91视频你懂的| 久久亚洲捆绑美女| 不卡视频在线看| 午夜精品福利久久久| 一本到不卡精品视频在线观看| 亚洲一区二区三区三| 欧美成人精精品一区二区频| 成人少妇影院yyyy| 日本一区免费视频| 国产美女久久久久| 欧美日韩国产首页在线观看| 18欧美亚洲精品| 国产精品综合久久| 精品国产免费一区二区三区四区| 福利一区福利二区| 国产精品久久久久aaaa| 99精品久久只有精品| 婷婷六月综合亚洲| 亚洲国产电影在线观看| 欧美老女人第四色| 日韩**一区毛片| 欧美精品自拍偷拍动漫精品| 国产福利不卡视频| 日韩黄色一级片| 日韩亚洲欧美一区| 久久99精品视频| 久久丝袜美腿综合| 欧美亚洲国产怡红院影院| 性做久久久久久免费观看 | 欧美综合天天夜夜久久| 亚洲一区在线观看免费观看电影高清 | 精品国产一区二区三区久久影院 | 伊人性伊人情综合网| 欧美日韩和欧美的一区二区| 夫妻av一区二区| 免费看欧美女人艹b| 26uuu亚洲婷婷狠狠天堂| 欧美人与禽zozo性伦| 91免费版在线| 粉嫩绯色av一区二区在线观看| 毛片不卡一区二区| 久久新电视剧免费观看| 3d动漫精品啪啪| 国产成人av资源| 国产精品一区专区| 奇米精品一区二区三区四区| 樱花草国产18久久久久| 中文字幕一区日韩精品欧美| 亚洲精品一区二区三区蜜桃下载| 欧美日韩精品免费观看视频| 91成人在线精品| 91在线精品一区二区| 国产 日韩 欧美大片| 国产在线精品国自产拍免费| 蜜臀va亚洲va欧美va天堂| 午夜视黄欧洲亚洲| 亚洲妇熟xx妇色黄| 一区二区成人在线| 亚洲综合网站在线观看| 亚洲综合激情另类小说区| 亚洲欧美日韩一区二区| 日韩一区二区视频| 日韩亚洲电影在线| 欧美一区二区三区影视| 正在播放一区二区| 91麻豆精品国产91| 日韩欧美在线影院| 欧美zozo另类异族| 久久久精品国产免费观看同学| av在线播放成人| 久久电影网站中文字幕| 国产一区二区三区不卡在线观看| 久久99国产精品久久| 国产麻豆视频一区二区| 高清不卡一区二区在线| www.亚洲国产| 在线观看亚洲精品| 欧美一级淫片007| 久久亚洲春色中文字幕久久久| 日本一区二区三区在线不卡| 综合网在线视频| 久久婷婷综合激情| 亚洲欧美在线高清| 一区二区三区欧美| 手机精品视频在线观看| 狠狠色丁香久久婷婷综合_中 | 欧美日韩国产精品自在自线| 911精品国产一区二区在线| 日韩欧美卡一卡二| 欧美日本韩国一区| 精品精品欲导航| 中文字幕一区二区三| 舔着乳尖日韩一区| 国产剧情一区二区| 91免费版在线看| 日韩午夜在线观看| 中文字幕一区二区三| 天天av天天翘天天综合网色鬼国产| 久久国产夜色精品鲁鲁99| 成人黄色国产精品网站大全在线免费观看| 99国产欧美另类久久久精品| 欧美久久久久久蜜桃| 久久精品亚洲精品国产欧美 | 91麻豆自制传媒国产之光| 日韩一区二区高清| 最新日韩在线视频| 日本不卡一区二区| av网站一区二区三区| 精品美女被调教视频大全网站| 亚洲视频 欧洲视频| 美女在线一区二区| 91免费观看在线| 精品国产99国产精品| 亚洲色图在线看| 麻豆精品国产91久久久久久| 色呦呦网站一区| 欧美高清在线精品一区| 免费成人在线观看视频| 91国偷自产一区二区使用方法| www国产成人| 奇米影视一区二区三区小说| 在线精品国精品国产尤物884a| 国产日韩精品视频一区| 日本午夜精品视频在线观看| 色8久久人人97超碰香蕉987| 久久久久久久久99精品| 日本亚洲免费观看| 欧美日韩一区二区在线观看视频 | 午夜电影久久久| av影院午夜一区| 久久综合丝袜日本网| 五月天激情综合网| 一本大道av一区二区在线播放| 久久婷婷色综合| 久久av资源站| 91精品国产综合久久国产大片| 亚洲一区二区三区四区的| 91原创在线视频| 国产精品美女久久久久av爽李琼| 极品销魂美女一区二区三区| 在线播放日韩导航| 水野朝阳av一区二区三区| 欧美日韩久久久久久| 一区二区三区免费看视频| 91污在线观看| ...av二区三区久久精品| 成人av影院在线| 国产精品视频线看| 国产不卡高清在线观看视频| 久久精品人人做人人爽97| 国产一区在线不卡| 国产亚洲1区2区3区| 国产乱码精品一区二区三| 精品99一区二区三区| 国内不卡的二区三区中文字幕 | 欧美欧美欧美欧美| 亚洲第一电影网| 欧美精三区欧美精三区| 日本成人中文字幕在线视频| 精品少妇一区二区三区视频免付费| 理论电影国产精品| 国产亚洲欧洲997久久综合 | 亚洲欧美韩国综合色| 日本韩国精品在线| 婷婷激情综合网| 欧美不卡视频一区| 国产精品91xxx| 国产精品第一页第二页第三页 | 欧美综合一区二区| 天天色综合天天| 欧美白人最猛性xxxxx69交| 国产成人精品三级| 亚洲女爱视频在线| 欧美精品一二三四| 国内精品伊人久久久久av一坑 | 精品国内二区三区| 成人听书哪个软件好| 亚洲资源中文字幕| 精品久久国产字幕高潮| 99久久精品免费观看|