From deeea70d0c88754e157b2942bfcae0deea77b549 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Tue, 14 Feb 2012 22:38:26 +0100 Subject: [PATCH] spark: add {open,close}Device() to cVideo --- libspark/video.cpp | 21 ++++++++++++++++----- libspark/video_lib.h | 3 +++ 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/libspark/video.cpp b/libspark/video.cpp index 4f9abb1..dd92d40 100644 --- a/libspark/video.cpp +++ b/libspark/video.cpp @@ -104,11 +104,8 @@ static unsigned int proc_get_hex(const char *path) cVideo::cVideo(int, void *, void *) { lt_debug("%s\n", __FUNCTION__); - if ((fd = open(VIDEO_DEVICE, O_RDWR)) < 0) - lt_info("%s cannot open %s: %m\n", __FUNCTION__, VIDEO_DEVICE); - fcntl(fd, F_SETFD, FD_CLOEXEC); - playstate = VIDEO_STOPPED; + openDevice(); //croppingMode = VID_DISPMODE_NORM; //outputformat = VID_OUTFMT_RGBC_SVIDEO; scartvoltage = -1; @@ -152,7 +149,6 @@ cVideo::cVideo(int, void *, void *) cVideo::~cVideo(void) { - playstate = VIDEO_STOPPED; for (int i = 0; i < 2; i++) { if (blank_data[i]) @@ -161,8 +157,23 @@ cVideo::~cVideo(void) } /* disable DACs and SCART voltage */ Standby(true); + closeDevice(); +} + +void cVideo::openDevice(void) +{ + if ((fd = open(VIDEO_DEVICE, O_RDWR)) < 0) + lt_info("%s cannot open %s: %m\n", __FUNCTION__, VIDEO_DEVICE); + fcntl(fd, F_SETFD, FD_CLOEXEC); + playstate = VIDEO_STOPPED; +} + +void cVideo::closeDevice(void) +{ if (fd >= 0) close(fd); + fd = -1; + playstate = VIDEO_STOPPED; } int cVideo::setAspectRatio(int aspect, int mode) diff --git a/libspark/video_lib.h b/libspark/video_lib.h index 672dee1..e6e18f2 100644 --- a/libspark/video_lib.h +++ b/libspark/video_lib.h @@ -138,6 +138,9 @@ class cVideo void routeVideo(int standby); int video_standby; int64_t GetPTS(void); + + void openDevice(void); + void closeDevice(void); public: /* constructor & destructor */ cVideo(int mode, void *, void *);