diff options
author | Lars Hanisch <dvb@flensrocker.de> | 2011-02-26 17:15:41 +0100 |
---|---|---|
committer | Lars Hanisch <dvb@flensrocker.de> | 2011-02-26 17:15:41 +0100 |
commit | 730ff56de4b4cd4aea74535fba347b8d1f4a09bd (patch) | |
tree | c7b55acc9fb6511aea17bc3a0c1714191f06ba2a /dynamicdevice.c | |
parent | e92b0f7b6c3c02b5d903eab398682bcbf6ae6d65 (diff) | |
download | vdr-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.c | 12 |
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; |