mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands at any given time
This commit is contained in:
parent
acaa549404
commit
2b3821cc88
@ -2742,6 +2742,7 @@ Milan Cvijanovic <elcom_cvijo@hotmail.com>
|
|||||||
|
|
||||||
Frank Neumann <frank.neumann@hp.com>
|
Frank Neumann <frank.neumann@hp.com>
|
||||||
for suggesting to reduce the thread and I/O priority cCuttingThread::Action()
|
for suggesting to reduce the thread and I/O priority cCuttingThread::Action()
|
||||||
|
for reporting a problem with tuning timeouts when using SCR with multiple tuners
|
||||||
|
|
||||||
Gerald Dachs <vdr@dachsweb.de>
|
Gerald Dachs <vdr@dachsweb.de>
|
||||||
for reporting a problem with checking for minimum line length of 21 characters in
|
for reporting a problem with checking for minimum line length of 21 characters in
|
||||||
|
2
HISTORY
2
HISTORY
@ -6801,3 +6801,5 @@ Video Disk Recorder Revision History
|
|||||||
DTV_ENUM_DELSYS call. With older drivers it will fall back to one delivery
|
DTV_ENUM_DELSYS call. With older drivers it will fall back to one delivery
|
||||||
system per frontend.
|
system per frontend.
|
||||||
- Updated the Hungarian language texts (thanks to István Füley).
|
- Updated the Hungarian language texts (thanks to István Füley).
|
||||||
|
- cDvbTuner::ExecuteDiseqc() now makes sure only one tuner sends SCR commands
|
||||||
|
at any given time (reported by Frank Neumann).
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: dvbdevice.c 2.51 2012/01/07 10:42:47 kls Exp $
|
* $Id: dvbdevice.c 2.52 2012/01/08 14:30:04 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "dvbdevice.h"
|
#include "dvbdevice.h"
|
||||||
@ -642,6 +642,9 @@ void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency)
|
|||||||
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power
|
CHECK(ioctl(fd_frontend, FE_SET_VOLTAGE, SEC_VOLTAGE_13)); // must explicitly turn on LNB power
|
||||||
lnbPowerTurnedOn = true;
|
lnbPowerTurnedOn = true;
|
||||||
}
|
}
|
||||||
|
static cMutex Mutex;
|
||||||
|
if (Diseqc->IsScr())
|
||||||
|
Mutex.Lock();
|
||||||
struct dvb_diseqc_master_cmd cmd;
|
struct dvb_diseqc_master_cmd cmd;
|
||||||
const char *CurrentAction = NULL;
|
const char *CurrentAction = NULL;
|
||||||
for (;;) {
|
for (;;) {
|
||||||
@ -662,6 +665,8 @@ void cDvbTuner::ExecuteDiseqc(const cDiseqc *Diseqc, unsigned int *Frequency)
|
|||||||
}
|
}
|
||||||
if (scr)
|
if (scr)
|
||||||
ResetToneAndVoltage(); // makes sure we don't block the bus!
|
ResetToneAndVoltage(); // makes sure we don't block the bus!
|
||||||
|
if (Diseqc->IsScr())
|
||||||
|
Mutex.Unlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
void cDvbTuner::ResetToneAndVoltage(void)
|
void cDvbTuner::ResetToneAndVoltage(void)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user