xref: /haiku/src/kits/media/TimeSourceObject.h (revision 31f5d420edd1625a5c211fceee69e943677593d2)
1 /***********************************************************************
2  * Copyright (c) 2002 Marcus Overhagen. All Rights Reserved.
3  * This file may be used under the terms of the OpenBeOS License.
4  *
5  * The object returned by BMediaRoster's
6  * BTimeSource * MakeTimeSourceFor(const media_node & for_node);
7  *
8  ***********************************************************************/
9 #ifndef _TIME_SOURCE_OBJECT_H_
10 #define _TIME_SOURCE_OBJECT_H_
11 
12 #include <TimeSource.h>
13 
14 #define NODE_KIND_USER_MASK 			0x00000000FFFFFFFFLL
15 #define NODE_KIND_SHADOW_TIMESOURCE		0x0000000100000000LL
16 #define NODE_KIND_SYSTEM_TIMESOURCE		0x0000000200000000LL
17 
18 namespace BPrivate { namespace media {
19 
20 class TimeSourceObject : public BTimeSource
21 {
22 public:
23 	TimeSourceObject(const media_node &node);
24 
25 protected:
26 	virtual	status_t TimeSourceOp(
27 				const time_source_op_info & op,
28 				void * _reserved);
29 
30 	virtual	BMediaAddOn* AddOn(
31 				int32 * internal_id) const;
32 
33 	// override from BMediaNode
34 	virtual status_t DeleteHook(BMediaNode * node);
35 };
36 
37 class SystemTimeSourceObject : public TimeSourceObject
38 {
39 public:
40 	SystemTimeSourceObject(const media_node &node);
41 
42 protected:
43 	// override from BMediaNode
44 	virtual status_t DeleteHook(BMediaNode * node);
45 
46 };
47 
48 } } using namespace BPrivate::media;
49 
50 #endif
51