diff --git a/src/tests/kits/media/nodetest/ProducerNode.cpp b/src/tests/kits/media/nodetest/ProducerNode.cpp index 13e47b4db8..a6869843ef 100644 --- a/src/tests/kits/media/nodetest/ProducerNode.cpp +++ b/src/tests/kits/media/nodetest/ProducerNode.cpp @@ -4,6 +4,7 @@ #include #include +#include #include #include "misc.h" @@ -45,6 +46,19 @@ ProducerNode::NodeRegistered() } +status_t +ProducerNode::GetNodeAttributes( + media_node_attribute* attributes, size_t count) +{ + uint32 what = media_node_attribute::B_FIRST_USER_ATTRIBUTE; + for (size_t i = 0; i < count; i++) { + attributes[i].what = what; + what++; + } + return B_OK; +} + + status_t ProducerNode::FormatSuggestionRequested(media_type type, int32 quality, media_format* format) diff --git a/src/tests/kits/media/nodetest/ProducerNode.h b/src/tests/kits/media/nodetest/ProducerNode.h index deeca06f10..c1b82e92a9 100644 --- a/src/tests/kits/media/nodetest/ProducerNode.h +++ b/src/tests/kits/media/nodetest/ProducerNode.h @@ -15,6 +15,10 @@ virtual BMediaAddOn* AddOn( virtual void NodeRegistered(); +virtual status_t GetNodeAttributes( + media_node_attribute* attributes, + size_t count); + /* functionality of BBufferProducer */ virtual status_t FormatSuggestionRequested( media_type type, @@ -84,9 +88,10 @@ virtual void LatencyChanged( uint32 flags); /* functionality of BMediaEventLooper */ -virtual void HandleEvent(const media_timed_event *event, - bigtime_t lateness, - bool realTimeEvent = false); +virtual void HandleEvent( + const media_timed_event *event, + bigtime_t lateness, + bool realTimeEvent = false); /* our own functionality */ void InitializeOutput(); diff --git a/src/tests/kits/media/nodetest/main.cpp b/src/tests/kits/media/nodetest/main.cpp index 481277e763..33a64464b1 100644 --- a/src/tests/kits/media/nodetest/main.cpp +++ b/src/tests/kits/media/nodetest/main.cpp @@ -1,10 +1,14 @@ -#include #include +#include #include #include + +#include + #include "ConsumerNode.h" -#include "ProducerNode.h" #include "misc.h" +#include "ProducerNode.h" + BMediaRoster *roster; ProducerNode *producer; @@ -172,6 +176,12 @@ int main() val(rv); out("Found %ld\n",count); + out("Calling GetAttNodeAttributesFor(source)\n"); + media_node_attribute attr[10]; + ssize_t size = roster->GetNodeAttributesFor(sourceNode, attr, 10); + val_size(size); + out("Found %" B_PRIdSSIZE "\n", size); + media_format format; format.type = B_MEDIA_RAW_AUDIO; format.u.raw_audio = media_raw_audio_format::wildcard; diff --git a/src/tests/kits/media/nodetest/misc.cpp b/src/tests/kits/media/nodetest/misc.cpp index aaaa0fcb76..72ec290e8c 100644 --- a/src/tests/kits/media/nodetest/misc.cpp +++ b/src/tests/kits/media/nodetest/misc.cpp @@ -13,10 +13,18 @@ void val(status_t status) { if (status == B_OK) out("OK\n"); - else + else out("failed, 0x%08x, %s\n",status,strerror(status)); } +void val_size(ssize_t size) +{ + if (size >= 0) + out("OK\n"); + else + out("failed, size %" B_PRIdSSIZE ", error %s\n", size, strerror(size)); +} + void wait() { out("press enter to continue\n"); diff --git a/src/tests/kits/media/nodetest/misc.h b/src/tests/kits/media/nodetest/misc.h index 57deb08bc9..83d226323e 100644 --- a/src/tests/kits/media/nodetest/misc.h +++ b/src/tests/kits/media/nodetest/misc.h @@ -3,6 +3,7 @@ void val(void *p); void val(status_t status); +void val_size(ssize_t size); void wait(); void out(const char *format,...);