From cb74eae85bf4fa313605facd501db4018cc3101c Mon Sep 17 00:00:00 2001 From: TangoCash Date: Thu, 5 Oct 2017 15:26:25 +0200 Subject: [PATCH] fix audio/video devices --- libarmbox/audio.cpp | 12 +++++------- libarmbox/video.cpp | 6 +++++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/libarmbox/audio.cpp b/libarmbox/audio.cpp index 7a55814..9e5960b 100644 --- a/libarmbox/audio.cpp +++ b/libarmbox/audio.cpp @@ -58,7 +58,7 @@ void cAudio::openDevice(void) if (fd < 0) { - if ((fd = open(AUDIO_DEVICE, O_RDWR)) < 0) + if ((fd = open(AUDIO_DEVICE, O_RDWR | O_NONBLOCK)) < 0) lt_info("openDevice: open failed (%m)\n"); fcntl(fd, F_SETFD, FD_CLOEXEC); do_mute(true, false); @@ -397,9 +397,7 @@ void cAudio::SetSRS(int /*iq_enable*/, int /*nmgr_enable*/, int /*iq_mode*/, int void cAudio::SetHdmiDD(bool enable) { - const char *opt[] = { "pcm", "spdif" }; - lt_debug("%s %d\n", __func__, enable); - proc_put("/proc/stb/hdmi/audio_source", opt[enable], strlen(opt[enable])); + lt_debug("%s\n", __FUNCTION__); } void cAudio::SetSpdifDD(bool enable) @@ -422,9 +420,9 @@ void cAudio::EnableAnalogOut(bool enable) #define AUDIO_BYPASS_OFF 1 void cAudio::setBypassMode(bool disable) { - const char *opt[] = { "passthrough", "downmix" }; - lt_debug("%s %d\n", __func__, disable); - proc_put("/proc/stb/audio/ac3", opt[disable], strlen(opt[disable])); + int mode = disable ? AUDIO_BYPASS_OFF : AUDIO_BYPASS_ON; + if (ioctl(fd, AUDIO_SET_BYPASS_MODE, mode) < 0) + lt_info("%s AUDIO_SET_BYPASS_MODE %d: %m\n", __func__, mode); } void cAudio::openMixers(void) diff --git a/libarmbox/video.cpp b/libarmbox/video.cpp index b5bfe38..a9a84bf 100644 --- a/libarmbox/video.cpp +++ b/libarmbox/video.cpp @@ -200,7 +200,7 @@ void cVideo::openDevice(void) if (fd != -1) /* already open */ return; retry: - if ((fd = open(VDEV[devnum], O_RDWR|O_CLOEXEC)) < 0) + if ((fd = open(VDEV[devnum], O_RDWR|O_CLOEXEC|O_NONBLOCK)) < 0) { if (errno == EBUSY) { @@ -359,6 +359,10 @@ int cVideo::GetVideoSystem() "1080p60", // VIDEO_STD_1080P60 "1080p2397", // VIDEO_STD_1080P2397 "1080p2997", // VIDEO_STD_1080P2997 + "2160p24", //VIDEO_STD_2160P24 + "2160p25", // VIDEO_STD_2160P25 + "2160p30", // VIDEO_STD_2160P30 + "2160p50", // VIDEO_STD_2160P50 "720p50" // VIDEO_STD_AUTO };