Updated time source code to allow automatic starting and stopping of time sources.
Sending run mode changes and broadcasting of time changes is also implemented. For one reason or another, all this doesn't work right now. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2520 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -22,6 +22,7 @@ namespace BPrivate { namespace media {
|
||||
class TimeSourceObject;
|
||||
class SystemTimeSourceObject;
|
||||
struct TimeSourceTransmit;
|
||||
struct SlaveNodes;
|
||||
} }
|
||||
|
||||
|
||||
@@ -124,9 +125,9 @@ virtual status_t _Reserved_TimeSource_5(void *);
|
||||
bool fStarted;
|
||||
area_id fArea;
|
||||
volatile BPrivate::media::TimeSourceTransmit *fBuf;
|
||||
_BSlaveNodeStorageP * _mSlaveNodes;
|
||||
BPrivate::media::SlaveNodes *fSlaveNodes;
|
||||
|
||||
area_id _mOrigArea;
|
||||
area_id _reserved_area;
|
||||
bool fIsRealtime;
|
||||
bool _reserved_bool_[3];
|
||||
uint32 _reserved_time_source_[10];
|
||||
@@ -142,6 +143,8 @@ virtual status_t AddMe(BMediaNode * node);
|
||||
void DirectStop(bigtime_t at, bool immediate);
|
||||
void DirectSeek(bigtime_t to, bigtime_t at);
|
||||
void DirectSetRunMode(run_mode mode);
|
||||
void DirectAddMe(const media_node &node);
|
||||
void DirectRemoveMe(const media_node &node);
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -149,11 +149,13 @@ enum {
|
||||
FILEINTERFACE_MESSAGE_END,
|
||||
CONTROLLABLE_MESSAGE_START = 0x600,
|
||||
CONTROLLABLE_MESSAGE_END,
|
||||
TIMESOURECE_MESSAGE_START = 0x700,
|
||||
TIMESOURCE_MESSAGE_START = 0x700,
|
||||
|
||||
TIMESOURCE_OP, // datablock is a struct time_source_op_info
|
||||
TIMESOURCE_ADD_SLAVE_NODE,
|
||||
TIMESOURCE_REMOVE_SLAVE_NODE,
|
||||
|
||||
TIMESOURECE_MESSAGE_END,
|
||||
TIMESOURCE_MESSAGE_END,
|
||||
};
|
||||
|
||||
|
||||
@@ -875,7 +877,14 @@ struct node_set_timesource_command : public command_data
|
||||
media_node_id timesource_id;
|
||||
};
|
||||
|
||||
struct timesource_add_slave_node_command : public command_data
|
||||
{
|
||||
media_node node;
|
||||
};
|
||||
|
||||
|
||||
struct timesource_remove_slave_node_command : public command_data
|
||||
{
|
||||
media_node node;
|
||||
};
|
||||
|
||||
#endif // _DATA_EXCHANGE_H
|
||||
|
||||
Reference in New Issue
Block a user