armbox: improve cec

This commit is contained in:
TangoCash
2017-10-19 21:39:55 +02:00
parent 9bdcb65a61
commit 0b69bc17f9
2 changed files with 18 additions and 5 deletions

View File

@@ -161,6 +161,7 @@ cVideo::cVideo(int, void *, void *, unsigned int unit)
} else
devnum = unit;
fd = -1;
hdmiFd = -1;
standby_cec_activ = autoview_cec_activ = false;
openDevice();
}
@@ -815,9 +816,21 @@ bool cVideo::SetCECMode(VIDEO_HDMI_CEC_MODE _deviceType)
physicalAddress[0] = 0x10;
physicalAddress[1] = 0x00;
logicalAddress = 1;
deviceType = 1; /* default: recorder */
if (_deviceType == VIDEO_HDMI_CEC_MODE_OFF)
{
if (hdmiFd >= 0) {
close hdmiFd;
hdmiFd = -1;
}
return false;
}
else
deviceType = _deviceType;
if (hdmiFd == -1)
hdmiFd = open("/dev/cec0", O_RDWR | O_CLOEXEC);
hdmiFd = open("/dev/cec0", O_RDWR | O_CLOEXEC);
if (hdmiFd >= 0)
{
__u32 monitor = CEC_MODE_INITIATOR | CEC_MODE_FOLLOWER;
@@ -891,6 +904,7 @@ bool cVideo::SetCECMode(VIDEO_HDMI_CEC_MODE _deviceType)
GetCECAddressInfo();
return true;
}
void cVideo::GetCECAddressInfo()

View File

@@ -118,11 +118,10 @@ typedef enum {
VIDEO_STD_MAX = VIDEO_STD_AUTO
} VIDEO_STD;
/* not used, for dummy functions */
typedef enum {
VIDEO_HDMI_CEC_MODE_OFF = 0,
VIDEO_HDMI_CEC_MODE_TUNER,
VIDEO_HDMI_CEC_MODE_RECORDER
VIDEO_HDMI_CEC_MODE_TUNER = 3,
VIDEO_HDMI_CEC_MODE_RECORDER = 1
} VIDEO_HDMI_CEC_MODE;
typedef enum