repositories
/
deb_libcec.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
respond to vendor command 89:10:01:03 for panasonic and send the same response as...
[deb_libcec.git]
/
src
/
lib
/
implementations
/
VLCommandHandler.cpp
diff --git
a/src/lib/implementations/VLCommandHandler.cpp
b/src/lib/implementations/VLCommandHandler.cpp
index 44feabc4f4e5efe0e6cd74739121605646ca74fd..329eab2f930cff5b547417bd75057ecd526bde7c 100644
(file)
--- a/
src/lib/implementations/VLCommandHandler.cpp
+++ b/
src/lib/implementations/VLCommandHandler.cpp
@@
-106,11
+106,12
@@
int CVLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &comman
command.parameters[2] != 0x45)
return CEC_ABORT_REASON_INVALID_OPERAND;
command.parameters[2] != 0x45)
return CEC_ABORT_REASON_INVALID_OPERAND;
- // XXX this is also sent when the TV is powered off
-#if 0
if (command.initiator == CECDEVICE_TV &&
command.parameters.At(3) == VL_UNKNOWN1)
{
if (command.initiator == CECDEVICE_TV &&
command.parameters.At(3) == VL_UNKNOWN1)
{
+ // XXX this is also sent when the TV is powered off
+ // TODO power up sends 06:05. check whether this is also sent on power off
+#if 0
// set the power up event time
{
CLockObject lock(m_mutex);
// set the power up event time
{
CLockObject lock(m_mutex);
@@
-119,10
+120,10
@@
int CVLCommandHandler::HandleDeviceVendorCommandWithId(const cec_command &comman
}
// mark the TV as powered on
m_processor->GetTV()->SetPowerStatus(CEC_POWER_STATUS_ON);
}
// mark the TV as powered on
m_processor->GetTV()->SetPowerStatus(CEC_POWER_STATUS_ON);
- }
- else
#endif
#endif
- if (command.initiator == CECDEVICE_TV &&
+ return COMMAND_HANDLED;
+ }
+ else if (command.initiator == CECDEVICE_TV &&
command.destination == CECDEVICE_BROADCAST &&
command.parameters.At(3) == VL_POWER_CHANGE)
{
command.destination == CECDEVICE_BROADCAST &&
command.parameters.At(3) == VL_POWER_CHANGE)
{
@@
-248,9
+249,10
@@
int CVLCommandHandler::HandleVendorCommand(const cec_command &command)
if (command.parameters.size == 3 &&
command.parameters[0] == 0x10 &&
command.parameters[1] == 0x01 &&
if (command.parameters.size == 3 &&
command.parameters[0] == 0x10 &&
command.parameters[1] == 0x01 &&
- command.parameters[2] == 0x05 &&
m_processor->IsHandledByLibCEC(command.destination))
{
m_processor->IsHandledByLibCEC(command.destination))
{
+ // XXX i've seen 0x05 and 0x03 as third param. these probably indicate different types of TVs/capabilities
+ // when we feature abort this, then the TV will try the same thing with a vendor command with id
SendVendorCommandCapabilities(m_processor->GetLogicalAddress(), command.initiator);
return COMMAND_HANDLED;
}
SendVendorCommandCapabilities(m_processor->GetLogicalAddress(), command.initiator);
return COMMAND_HANDLED;
}
@@
-261,7
+263,7
@@
int CVLCommandHandler::HandleVendorCommand(const cec_command &command)
bool CVLCommandHandler::SourceSwitchAllowed(void)
{
if (!PowerUpEventReceived())
bool CVLCommandHandler::SourceSwitchAllowed(void)
{
if (!PowerUpEventReceived())
- TransmitRequestPowerStatus(m_processor->GetPrimaryDevice()->GetLogicalAddress(), CECDEVICE_TV, false);
+ TransmitRequestPowerStatus(m_processor->GetPrimaryDevice()->GetLogicalAddress(), CECDEVICE_TV, false
, false
);
return PowerUpEventReceived();
}
return PowerUpEventReceived();
}