apt-pkg/cdrom.{cc,h}: add ScanForRemovable helper
authorMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Mar 2011 10:31:08 +0000 (11:31 +0100)
committerMichael Vogt <michael.vogt@ubuntu.com>
Wed, 9 Mar 2011 10:31:08 +0000 (11:31 +0100)
apt-pkg/cdrom.cc
apt-pkg/cdrom.h

index 86fe45f..deca6b4 100644 (file)
@@ -868,8 +868,19 @@ pkgUdevCdromDevices::Dlopen()                                      /*{{{*/
    return true;
 }
                                                                        /*}}}*/
+
+                                                                        /*{{{*/
+// compatiblity only with the old API/ABI, can be removed on the next
+// ABI break
+vector<CdromDevice>
+pkgUdevCdromDevices::Scan()
+{ 
+   return ScanForRemovable(true); 
+};
+                                                                       /*}}}*/
+                                                                        /*{{{*/
 vector<CdromDevice>
-pkgUdevCdromDevices::Scan()                                             /*{{{*/
+pkgUdevCdromDevices::ScanForRemovable(bool CdromOnly)
 {
    vector<CdromDevice> cdrom_devices;
    struct udev_enumerate *enumerate;
@@ -881,9 +892,10 @@ pkgUdevCdromDevices::Scan()                                             /*{{{*/
 
    udev_ctx = udev_new();
    enumerate = udev_enumerate_new (udev_ctx);
-   udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1");
-   //FIXME: just use removalble here to include usb etc
-   //udev_enumerate_add_match_sysattr(enumerate, "removable", "1");
+   if (CdromOnly)
+      udev_enumerate_add_match_property(enumerate, "ID_CDROM", "1");
+   else
+      udev_enumerate_add_match_sysattr(enumerate, "removable", "1");
 
    udev_enumerate_scan_devices (enumerate);
    devices = udev_enumerate_get_list_entry (enumerate);
@@ -899,9 +911,6 @@ pkgUdevCdromDevices::Scan()                                             /*{{{*/
       if (mountpath == NULL)
          mountpath = FindMountPointForDevice(devnode);
 
-      if (_config->FindB("Debug::Acquire::cdrom", false))
-         cerr << "found " << devnode << " mounted on " << mountpath << endl;
-
       // fill in the struct
       cdrom.DeviceName = string(devnode);
       if (mountpath) {
index 5f67a3a..032fae7 100644 (file)
@@ -68,7 +68,7 @@ class pkgCdrom                                                                /*{{{*/
                                                                        /*}}}*/
 
 
-// class that uses libudev to find cdrom devices dynamically
+// class that uses libudev to find cdrom/removable devices dynamically
 struct CdromDevice                                                     /*{{{*/
 {
    string DeviceName;
@@ -101,7 +101,12 @@ class pkgUdevCdromDevices                                          /*{{{*/
 
    // try to open 
    bool Dlopen();
+
+   // this is the new interface
+   vector<CdromDevice> ScanForRemovable(bool CdromOnly);
+   // FIXME: compat with the old interface/API/ABI only
    vector<CdromDevice> Scan();
+
 };
                                                                        /*}}}*/