/*********************************************************************** * AUTHOR: Marcus Overhagen * FILE: TimedEventQueue.cpp * DESCR: used by BMediaEventLooper ***********************************************************************/ #include #include #include "TimedEventQueuePrivate.h" #include "debug.h" /************************************************************* * struct media_timed_event *************************************************************/ media_timed_event::media_timed_event() { CALLED(); memset(this, 0, sizeof(*this)); } media_timed_event::media_timed_event(bigtime_t inTime, int32 inType) { CALLED(); memset(this, 0, sizeof(*this)); event_time = inTime; type = inType; } media_timed_event::media_timed_event(bigtime_t inTime, int32 inType, void *inPointer, uint32 inCleanup) { CALLED(); memset(this, 0, sizeof(*this)); event_time = inTime; type = inType; pointer = inPointer; cleanup = inCleanup; } media_timed_event::media_timed_event(bigtime_t inTime, int32 inType, void *inPointer, uint32 inCleanup, int32 inData, int64 inBigdata, char *inUserData, size_t dataSize) { CALLED(); memset(this, 0, sizeof(*this)); event_time = inTime; type = inType; pointer = inPointer; cleanup = inCleanup; data = inData; bigdata = inBigdata; memcpy(user_data,inUserData,min_c(sizeof(media_timed_event::user_data),dataSize)); } media_timed_event::media_timed_event(const media_timed_event &clone) { CALLED(); *this = clone; } void media_timed_event::operator=(const media_timed_event &clone) { CALLED(); memcpy(this, &clone, sizeof(*this)); } media_timed_event::~media_timed_event() { CALLED(); } /************************************************************* * global operators *************************************************************/ bool operator==(const media_timed_event & a, const media_timed_event & b) { CALLED(); return (0 == memcmp(&a,&b,sizeof(media_timed_event))); } bool operator!=(const media_timed_event & a, const media_timed_event & b) { CALLED(); return (0 != memcmp(&a,&b,sizeof(media_timed_event))); } bool operator<(const media_timed_event & a, const media_timed_event & b) { CALLED(); return a.event_time < b.event_time; } bool operator>(const media_timed_event & a, const media_timed_event &b) { CALLED(); return a.event_time > b.event_time; } /************************************************************* * public BTimedEventQueue *************************************************************/ void * BTimedEventQueue::operator new(size_t s) { CALLED(); return ::operator new(s); } void BTimedEventQueue::operator delete(void *p, size_t s) { CALLED(); return ::operator delete(p); } BTimedEventQueue::BTimedEventQueue() : fImp(new _event_queue_imp) { CALLED(); } BTimedEventQueue::~BTimedEventQueue() { CALLED(); delete fImp; } status_t BTimedEventQueue::AddEvent(const media_timed_event &event) { CALLED(); return fImp->AddEvent(event); } status_t BTimedEventQueue::RemoveEvent(const media_timed_event *event) { CALLED(); return fImp->RemoveEvent(event); } status_t BTimedEventQueue::RemoveFirstEvent(media_timed_event *outEvent) { CALLED(); return fImp->RemoveFirstEvent(outEvent); } bool BTimedEventQueue::HasEvents() const { CALLED(); return fImp->HasEvents(); } int32 BTimedEventQueue::EventCount() const { CALLED(); return fImp->EventCount(); } const media_timed_event * BTimedEventQueue::FirstEvent() const { CALLED(); return fImp->FirstEvent(); } bigtime_t BTimedEventQueue::FirstEventTime() const { CALLED(); return fImp->FirstEventTime(); } const media_timed_event * BTimedEventQueue::LastEvent() const { CALLED(); return fImp->LastEvent(); } bigtime_t BTimedEventQueue::LastEventTime() const { CALLED(); return fImp->LastEventTime(); } const media_timed_event * BTimedEventQueue::FindFirstMatch(bigtime_t eventTime, time_direction direction, bool inclusive, int32 eventType) { CALLED(); return fImp->FindFirstMatch(eventTime, direction, inclusive, eventType); } status_t BTimedEventQueue::DoForEach(for_each_hook hook, void *context, bigtime_t eventTime, time_direction direction, bool inclusive, int32 eventType) { CALLED(); return fImp->DoForEach(hook, context, eventTime, direction, inclusive, eventType); } void BTimedEventQueue::SetCleanupHook(cleanup_hook hook, void *context) { CALLED(); fImp->SetCleanupHook(hook, context); } status_t BTimedEventQueue::FlushEvents(bigtime_t eventTime, time_direction direction, bool inclusive, int32 eventType) { CALLED(); return fImp->FlushEvents(eventTime, direction, inclusive, eventType); } /************************************************************* * private BTimedEventQueue *************************************************************/ /* // unimplemented BTimedEventQueue::BTimedEventQueue(const BTimedEventQueue &other) BTimedEventQueue &BTimedEventQueue::operator=(const BTimedEventQueue &other) */ status_t BTimedEventQueue::_Reserved_BTimedEventQueue_0(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_1(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_2(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_3(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_4(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_5(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_6(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_7(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_8(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_9(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_10(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_11(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_12(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_13(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_14(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_15(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_16(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_17(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_18(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_19(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_20(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_21(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_22(void *, ...) { return B_ERROR; } status_t BTimedEventQueue::_Reserved_BTimedEventQueue_23(void *, ...) { return B_ERROR; }