xref: /haiku/src/kits/media/TimeSourceObject.h (revision 287f7492c391deeb77d87951ed2b0620a9d163d5)
1*287f7492Sbeveloper /***********************************************************************
2*287f7492Sbeveloper  * Copyright (c) 2002 Marcus Overhagen. All Rights Reserved.
3*287f7492Sbeveloper  * This file may be used under the terms of the OpenBeOS License.
4*287f7492Sbeveloper  *
5*287f7492Sbeveloper  * The object returned by BMediaRoster's
6*287f7492Sbeveloper  * BTimeSource * MakeTimeSourceFor(const media_node & for_node);
7*287f7492Sbeveloper  *
8*287f7492Sbeveloper  ***********************************************************************/
9*287f7492Sbeveloper #ifndef _TIME_SOURCE_OBJECT_H_
10*287f7492Sbeveloper #define _TIME_SOURCE_OBJECT_H_
11*287f7492Sbeveloper 
12*287f7492Sbeveloper #include <TimeSource.h>
13*287f7492Sbeveloper 
14*287f7492Sbeveloper namespace BPrivate { namespace media {
15*287f7492Sbeveloper 
16*287f7492Sbeveloper class TimeSourceObject : public BTimeSource
17*287f7492Sbeveloper {
18*287f7492Sbeveloper public:
19*287f7492Sbeveloper 	TimeSourceObject(const media_node &node);
20*287f7492Sbeveloper 
21*287f7492Sbeveloper 	virtual	status_t SnoozeUntil(
22*287f7492Sbeveloper 				bigtime_t performance_time,
23*287f7492Sbeveloper 				bigtime_t with_latency = 0,
24*287f7492Sbeveloper 				bool retry_signals = false);
25*287f7492Sbeveloper protected:
26*287f7492Sbeveloper 	virtual	status_t TimeSourceOp(
27*287f7492Sbeveloper 				const time_source_op_info & op,
28*287f7492Sbeveloper 				void * _reserved);
29*287f7492Sbeveloper 
30*287f7492Sbeveloper virtual	BMediaAddOn* AddOn(
31*287f7492Sbeveloper 				int32 * internal_id) const;
32*287f7492Sbeveloper 
33*287f7492Sbeveloper };
34*287f7492Sbeveloper 
35*287f7492Sbeveloper } } using namespace BPrivate::media;
36*287f7492Sbeveloper 
37*287f7492Sbeveloper #endif
38