diff --git a/src/kits/media/MediaRoster.cpp b/src/kits/media/MediaRoster.cpp index d3d40f50ff..e7910296ac 100644 --- a/src/kits/media/MediaRoster.cpp +++ b/src/kits/media/MediaRoster.cpp @@ -2847,7 +2847,55 @@ status_t BMediaRoster::SniffRef(const entry_ref& file, uint64 requireNodeKinds, dormant_node_info* _node, BMimeType* mimeType) { - UNIMPLEMENTED(); + CALLED(); + + TRACE("BMediaRoster::SniffRef looking for a node to handle %s : %Ld\n",file.name, requireNodeKinds); + + if (_node == NULL) + return B_BAD_VALUE; + + BMimeType aMimeType; + + dormant_node_info nodes[30]; + int32 count = 30; + int32 highestCapability = -1; + float capability; + + media_node node; + + // Get all dormant nodes using GetDormantNodes + if (B_OK == GetDormantNodes(nodes, &count, NULL, NULL, NULL, requireNodeKinds | B_FILE_INTERFACE, 0)) { + // Call SniffRefFor on each node that matches requireNodeKinds + for (int32 i=0;i