- CCECBusDevice *device = GetDevice(command.destination);
- if (device && (device->GetType() == CEC_DEVICE_TYPE_PLAYBACK_DEVICE || device->GetType() == CEC_DEVICE_TYPE_RECORDING_DEVICE))
- {
- if (command.parameters.size > 0)
- {
- if (command.parameters[0] == CEC_STATUS_REQUEST_ON)
- {
- ((CCECPlaybackDevice *) device)->SetDeckStatus(CEC_DECK_INFO_STOP);
- return ((CCECPlaybackDevice *) device)->TransmitDeckStatus(command.initiator) &&
- device->TransmitImageViewOn() &&
- device->TransmitPhysicalAddress();
- }
- else if (command.parameters[0] == CEC_STATUS_REQUEST_ONCE)
- {
- ((CCECPlaybackDevice *) device)->SetDeckStatus(CEC_DECK_INFO_OTHER_STATUS_LG);
- return ((CCECPlaybackDevice *) device)->TransmitDeckStatus(command.initiator);
- }
- }
- }
- return CCECCommandHandler::HandleGiveDeckStatus(command);
+ device->TransmitDeckStatus(command.initiator, true);
+ if (!ActiveSourceSent())
+ ActivateSource();
+ return COMMAND_HANDLED;
+ }
+ else if (command.parameters[0] == CEC_STATUS_REQUEST_ONCE)
+ {
+ device->TransmitDeckStatus(command.initiator, true);
+ return COMMAND_HANDLED;