void MediaRoutingView::_checkDroppedFile( entry_ref *ref, BPoint dropPoint) { D_METHOD(("MediaRoutingView::_checkDroppedFile()\n")); // [cell 26apr00] traverse links BEntry entry(ref, true); entry.GetRef(ref); BNode node(ref); if (node.InitCheck() == B_OK) { BNodeInfo nodeInfo(&node); if (nodeInfo.InitCheck() == B_OK) { char mimeString[B_MIME_TYPE_LENGTH]; if (nodeInfo.GetType(mimeString) == B_OK) { BMimeType mimeType(mimeString); BMimeType superType; // [e.moon 22dec99] handle dropped node-set files if(mimeType == RouteApp::s_nodeSetType) { BMessage m(B_REFS_RECEIVED); m.AddRef("refs", ref); be_app_messenger.SendMessage(&m); } else if (mimeType.GetSupertype(&superType) == B_OK) { if (superType == "image") { _changeBackground(ref); } else if ((superType == "audio") || (superType == "video")) { NodeRef* droppedNode; status_t error; error = manager->instantiate(*ref, B_BUFFER_PRODUCER, &droppedNode); if (!error) { media_output encVideoOutput; if (droppedNode->findFreeOutput(&encVideoOutput, B_MEDIA_ENCODED_VIDEO) == B_OK) { droppedNode->setFlags(droppedNode->flags() | NodeRef::NO_POSITION_REPORTING); } m_lastDroppedNode = droppedNode->id(); m_lastDropPoint = align(dropPoint); } else { char fileName[B_FILE_NAME_LENGTH]; BEntry entry(ref); entry.GetName(fileName); BString s; s << "Could not load '" << fileName << "'"; showErrorMessage(s, error); } } } } } } }