/*---------------------------------------------------------------------- | PLT_MediaController::OnActionResponse +---------------------------------------------------------------------*/ NPT_Result PLT_MediaController::OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata) { if (m_Delegate == NULL) return NPT_SUCCESS; PLT_DeviceDataReference device; NPT_String uuid = action->GetActionDesc().GetService()->GetDevice()->GetUUID(); /* extract action name */ NPT_String actionName = action->GetActionDesc().GetName(); /* AVTransport response ? */ if (actionName.Compare("GetCurrentTransportActions", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetCurrentTransportActionsResponse(res, device, action, userdata); } else if (actionName.Compare("GetDeviceCapabilities", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetDeviceCapabilitiesResponse(res, device, action, userdata); } else if (actionName.Compare("GetMediaInfo", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetMediaInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetPositionInfo", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetPositionInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetTransportInfo", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetTransportInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetTransportSettings", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetTransportSettingsResponse(res, device, action, userdata); } else if (actionName.Compare("Next", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnNextResult(res, device, userdata); } else if (actionName.Compare("Pause", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnPauseResult(res, device, userdata); } else if (actionName.Compare("Play", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnPlayResult(res, device, userdata); } else if (actionName.Compare("Previous", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnPreviousResult(res, device, userdata); } else if (actionName.Compare("Seek", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnSeekResult(res, device, userdata); } else if (actionName.Compare("SetAVTransportURI", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnSetAVTransportURIResult(res, device, userdata); } else if (actionName.Compare("SetPlayMode", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnSetPlayModeResult(res, device, userdata); } else if (actionName.Compare("Stop", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnStopResult(res, device, userdata); } else if (actionName.Compare("GetCurrentConnectionIDs", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetCurrentConnectionIDsResponse(res, device, action, userdata); } else if (actionName.Compare("GetCurrentConnectionInfo", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetCurrentConnectionInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetProtocolInfo", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetProtocolInfoResponse(res, device, action, userdata); } else if (actionName.Compare("SetMute", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnSetMuteResult(res, device, userdata); } else if (actionName.Compare("GetMute", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetMuteResponse(res, device, action, userdata); } else if (actionName.Compare("SetVolume", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; m_Delegate->OnSetVolumeResult(res, device, userdata); } else if (actionName.Compare("GetVolume", true) == 0) { if (NPT_FAILED(FindRenderer(uuid, device))) res = NPT_FAILURE; return OnGetVolumeResponse(res, device, action, userdata); } return NPT_SUCCESS; }
/*---------------------------------------------------------------------- | PLT_MediaController::OnActionResponse +---------------------------------------------------------------------*/ NPT_Result PLT_MediaController::OnActionResponse(NPT_Result res, PLT_ActionReference& action, void* userdata) { if (m_Listener == NULL) { return NPT_SUCCESS; } /* make sure device is a renderer we've previously found */ PLT_DeviceDataReference device; NPT_String uuid = action->GetActionDesc()->GetService()->GetDevice()->GetUUID(); if (NPT_FAILED(NPT_ContainerFind(m_MediaRenderers, PLT_DeviceDataFinder(uuid), device))) { NPT_LOG_FINE_1("Device (%s) not found in our list of renderers", (const char*)uuid); res = NPT_FAILURE; } /* extract action name */ NPT_String actionName = action->GetActionDesc()->GetName(); /* AVTransport response ? */ if (actionName.Compare("GetCurrentTransportActions", true) == 0) { return OnGetCurrentTransportActionsResponse(res, device, action, userdata); } else if (actionName.Compare("GetDeviceCapabilities", true) == 0) { return OnGetDeviceCapabilitiesResponse(res, device, action, userdata); } else if (actionName.Compare("GetMediaInfo", true) == 0) { return OnGetMediaInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetPositionInfo", true) == 0) { return OnGetPositionInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetTransportInfo", true) == 0) { return OnGetTransportInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetTransportSettings", true) == 0) { return OnGetTransportSettingsResponse(res, device, action, userdata); } else if (actionName.Compare("Next", true) == 0) { m_Listener->OnNextResult(res, device, userdata); } else if (actionName.Compare("Pause", true) == 0) { m_Listener->OnPauseResult(res, device, userdata); } else if (actionName.Compare("Play", true) == 0) { m_Listener->OnPlayResult(res, device, userdata); } else if (actionName.Compare("Previous", true) == 0) { m_Listener->OnPreviousResult(res, device, userdata); } else if (actionName.Compare("Seek", true) == 0) { m_Listener->OnSeekResult(res, device, userdata); } else if (actionName.Compare("SetAVTransportURI", true) == 0) { m_Listener->OnSetAVTransportURIResult(res, device, userdata); } else if (actionName.Compare("SetPlayMode", true) == 0) { m_Listener->OnSetPlayModeResult(res, device, userdata); } else if (actionName.Compare("Stop", true) == 0) { m_Listener->OnStopResult(res, device, userdata); } else if (actionName.Compare("GetCurrentConnectionIDs", true) == 0) { return OnGetCurrentConnectionIDsResponse(res, device, action, userdata); } else if (actionName.Compare("GetCurrentConnectionInfo", true) == 0) { return OnGetCurrentConnectionInfoResponse(res, device, action, userdata); } else if (actionName.Compare("GetProtocolInfo", true) == 0) { return OnGetProtocolInfoResponse(res, device, action, userdata); } return NPT_SUCCESS; }