diff --git a/headers/os/media/BufferConsumer.h b/headers/os/media/BufferConsumer.h index 31dc3fa969..3249f40b36 100644 --- a/headers/os/media/BufferConsumer.h +++ b/headers/os/media/BufferConsumer.h @@ -146,8 +146,6 @@ virtual status_t SeekTagRequested( private: - friend class BMediaNode; - BBufferConsumer(); /* private unimplemented */ BBufferConsumer( const BBufferConsumer & clone); @@ -190,6 +188,8 @@ virtual status_t _Reserved_BufferConsumer_14(void *); virtual status_t _Reserved_BufferConsumer_15(void *); friend class BMediaRoster; + friend class BMediaNode; + friend class BBufferProducer; media_type fConsumerType; _buffer_id_cache * fBufferCache; diff --git a/headers/os/media/BufferProducer.h b/headers/os/media/BufferProducer.h index 6016d75f2a..6fa6e3e2a1 100644 --- a/headers/os/media/BufferProducer.h +++ b/headers/os/media/BufferProducer.h @@ -221,6 +221,7 @@ virtual status_t _Reserved_BufferProducer_15(void *); media_type fProducerType; bigtime_t fInitialLatency; uint32 fInitialFlags; + bigtime_t fDelay; static status_t clip_shorts_to_region( const int16 * data, @@ -232,7 +233,7 @@ static status_t clip_region_to_shorts( int max_count, int * out_count); - uint32 _reserved_buffer_producer_[14]; + uint32 _reserved_buffer_producer_[12]; }; #endif /* _BUFFER_PRODUCER_H */ diff --git a/headers/private/media/DataExchange.h b/headers/private/media/DataExchange.h index 480c981f36..2e45656eb3 100644 --- a/headers/private/media/DataExchange.h +++ b/headers/private/media/DataExchange.h @@ -145,7 +145,8 @@ enum { PRODUCER_GET_INITIAL_LATENCY, PRODUCER_FORMAT_SUGGESTION_REQUESTED, PRODUCER_SET_PLAY_RATE, - PRODUCER_ENABLE_OUTPUT, + PRODUCER_ENABLE_OUTPUT, + PRODUCER_SET_RUN_MODE_DELAY, PRODUCER_MESSAGE_END, FILEINTERFACE_MESSAGE_START = 0x500, @@ -421,6 +422,12 @@ struct producer_late_notice_received_command : public command_data bigtime_t performance_time; }; +struct producer_set_run_mode_delay_command : public command_data +{ + BMediaNode::run_mode mode; + bigtime_t delay; +}; + struct consumer_accept_format_request : public request_data { media_destination dest; diff --git a/headers/private/media/MediaMisc.h b/headers/private/media/MediaMisc.h index 1c46105b2d..8d2f875851 100644 --- a/headers/private/media/MediaMisc.h +++ b/headers/private/media/MediaMisc.h @@ -16,6 +16,10 @@ #define NODE_UNREGISTERED_ID -2 #define SHADOW_TIMESOURCE_CONTROL_PORT -333 +#define IS_SHADOW_TIMESOURCE(_node) ((_node).node > 0 && (_node).port == SHADOW_TIMESOURCE_CONTROL_PORT) + +#define SYSTEM_TIMESOURCE_CONTROL_PORT -666 +#define IS_SYSTEM_TIMESOURCE(_node) ((_node).node > 0 && (_node).port == SYSTEM_TIMESOURCE_CONTROL_PORT) #define NODE_KIND_NO_REFCOUNTING 0x80000000