summaryrefslogtreecommitdiff
path: root/dynamicdevice.c
diff options
context:
space:
mode:
authorLars Hanisch <dvb@flensrocker.de>2011-02-26 17:15:41 +0100
committerLars Hanisch <dvb@flensrocker.de>2011-02-26 17:15:41 +0100
commit730ff56de4b4cd4aea74535fba347b8d1f4a09bd (patch)
treec7b55acc9fb6511aea17bc3a0c1714191f06ba2a /dynamicdevice.c
parente92b0f7b6c3c02b5d903eab398682bcbf6ae6d65 (diff)
downloadvdr-plugin-dynamite-730ff56de4b4cd4aea74535fba347b8d1f4a09bd.tar.gz
vdr-plugin-dynamite-730ff56de4b4cd4aea74535fba347b8d1f4a09bd.tar.bz2
add new command DTAD for detaching all devices
Diffstat (limited to 'dynamicdevice.c')
-rw-r--r--dynamicdevice.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/dynamicdevice.c b/dynamicdevice.c
index e7f5b1e..bf675e7 100644
--- a/dynamicdevice.c
+++ b/dynamicdevice.c
@@ -63,11 +63,16 @@ bool cDynamicDevice::ProcessQueuedCommands(void)
return true;
}
-void cDynamicDevice::DetachAllDevices(void)
+void cDynamicDevice::DetachAllDevices(bool Force)
{
cMutexLock lock(&arrayMutex);
- for (int i = 0; i < numDynamicDevices; i++)
- dynamicdevice[i]->DeleteSubDevice();
+ isyslog("dynamite: %sdetaching all devices", (Force ? "force " : ""));
+ for (int i = 0; i < numDynamicDevices; i++) {
+ if (Force)
+ dynamicdevice[i]->DeleteSubDevice();
+ else if (dynamicdevice[i]->devpath)
+ cDynamicDeviceProbe::QueueDynamicDeviceCommand(ddpcDetach, (**dynamicdevice[i]->devpath));
+ }
}
cString cDynamicDevice::ListAllDevices(int &ReplyCode)
@@ -380,6 +385,7 @@ void cDynamicDevice::DeleteSubDevice()
subDevice->StopSectionHandler();
delete subDevice;
subDevice = NULL;
+ isyslog("dynamite: deleted device for %s", (devpath ? **devpath : "(unknown)"));
}
if (devpath) {
delete devpath;