xberry / rpms / libffado

Forked from rpms/libffado 4 years ago
Clone
Blob Blame History Raw
Index: trunk/libffado/src/ffadodevice.cpp
===================================================================
--- trunk/libffado/src/ffadodevice.cpp (revision 2019)
+++ trunk/libffado/src/ffadodevice.cpp (revision 2691)
@@ -41,5 +41,5 @@
 IMPL_DEBUG_MODULE( FFADODevice, FFADODevice, DEBUG_LEVEL_NORMAL );
 
-FFADODevice::FFADODevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) )
+FFADODevice::FFADODevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) )
     : Control::Container(&d)
     , m_pConfigRom( configRom )
@@ -100,5 +100,5 @@
 
 FFADODevice *
-FFADODevice::createDevice(std::auto_ptr<ConfigRom>( x ))
+FFADODevice::createDevice(ffado_smartptr<ConfigRom>( x ))
 {
     // re-implement this!!
Index: trunk/libffado/src/devicemanager.h
===================================================================
--- trunk/libffado/src/devicemanager.h (revision 2078)
+++ trunk/libffado/src/devicemanager.h (revision 2691)
@@ -149,5 +149,5 @@
     FFADODevice* getDriverForDevice( ConfigRom *configRom,
                                      int id );
-    FFADODevice* getSlaveDriver( std::auto_ptr<ConfigRom>( configRom ) );
+    FFADODevice* getSlaveDriver( ffado_smartptr<ConfigRom>( configRom ) );
 
     void busresetHandler(Ieee1394Service &);
Index: trunk/libffado/src/rme/rme_avdevice.h
===================================================================
--- trunk/libffado/src/rme/rme_avdevice.h (revision 2663)
+++ trunk/libffado/src/rme/rme_avdevice.h (revision 2691)
@@ -79,5 +79,5 @@
 
     Device( DeviceManager& d,
-               std::auto_ptr<ConfigRom>( configRom ));
+               ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
@@ -87,5 +87,5 @@
     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
     static FFADODevice * createDevice( DeviceManager& d,
-                                        std::auto_ptr<ConfigRom>( configRom ));
+                                        ffado_smartptr<ConfigRom>( configRom ));
     static int getConfigurationId( );
     virtual bool discover();
Index: trunk/libffado/src/rme/rme_avdevice.cpp
===================================================================
--- trunk/libffado/src/rme/rme_avdevice.cpp (revision 2663)
+++ trunk/libffado/src/rme/rme_avdevice.cpp (revision 2691)
@@ -59,5 +59,5 @@
 
 Device::Device( DeviceManager& d,
-                      std::auto_ptr<ConfigRom>( configRom ))
+                      ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
     , m_rme_model( RME_MODEL_NONE )
@@ -372,5 +372,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     return new Device(d, configRom );
Index: trunk/libffado/src/motu/motu_avdevice.h
===================================================================
--- trunk/libffado/src/motu/motu_avdevice.h (revision 2502)
+++ trunk/libffado/src/motu/motu_avdevice.h (revision 2691)
@@ -381,5 +381,5 @@
 public:
 
-    MotuDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
+    MotuDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
     virtual ~MotuDevice();
 
@@ -388,5 +388,5 @@
 
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     static int getConfigurationId( );
     virtual bool discover();
Index: trunk/libffado/src/motu/motu_avdevice.cpp
===================================================================
--- trunk/libffado/src/motu/motu_avdevice.cpp (revision 2651)
+++ trunk/libffado/src/motu/motu_avdevice.cpp (revision 2691)
@@ -316,5 +316,5 @@
 };
 
-MotuDevice::MotuDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+MotuDevice::MotuDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
     , m_motu_model( MOTU_MODEL_NONE )
@@ -383,5 +383,5 @@
 
 FFADODevice *
-MotuDevice::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+MotuDevice::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     return new MotuDevice(d, configRom);
Index: trunk/libffado/src/ffadodevice.h
===================================================================
--- trunk/libffado/src/ffadodevice.h (revision 2587)
+++ trunk/libffado/src/ffadodevice.h (revision 2691)
@@ -36,4 +36,11 @@
 #include <vector>
 #include <string>
+
+// Prefer shared_ptr over auto_ptr if it is available
+#if __cplusplus >= 201103L
+#define ffado_smartptr std::shared_ptr
+#else
+#define ffado_smartptr std::auto_ptr
+#endif
 
 class DeviceManager;
@@ -61,5 +68,5 @@
 {
 public:
-    FFADODevice( DeviceManager&, std::auto_ptr< ConfigRom >( configRom ) );
+    FFADODevice( DeviceManager&, ffado_smartptr< ConfigRom >( configRom ) );
 
     virtual ~FFADODevice();
@@ -129,5 +136,5 @@
      * @return a new instance of the AvDevice type, NULL when unsuccessful
      */
-    static FFADODevice * createDevice( std::auto_ptr<ConfigRom>( x ));
+    static FFADODevice * createDevice( ffado_smartptr<ConfigRom>( x ));
 
     /**
@@ -481,5 +488,5 @@
         {return m_pDeviceManager;};
 private:
-    std::auto_ptr<ConfigRom>( m_pConfigRom );
+    ffado_smartptr<ConfigRom>( m_pConfigRom );
     DeviceManager& m_pDeviceManager;
     Control::Container* m_genericContainer;
Index: trunk/libffado/src/metrichalo/mh_avdevice.h
===================================================================
--- trunk/libffado/src/metrichalo/mh_avdevice.h (revision 1543)
+++ trunk/libffado/src/metrichalo/mh_avdevice.h (revision 2691)
@@ -41,10 +41,10 @@
 public:
     Device( DeviceManager& d,
-                std::auto_ptr<ConfigRom>( configRom ));
+                ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
     static FFADODevice * createDevice( DeviceManager& d,
-                                       std::auto_ptr<ConfigRom>( configRom ));
+                                       ffado_smartptr<ConfigRom>( configRom ));
     static int getConfigurationId();
     virtual bool discover();
Index: trunk/libffado/src/metrichalo/mh_avdevice.cpp
===================================================================
--- trunk/libffado/src/metrichalo/mh_avdevice.cpp (revision 1543)
+++ trunk/libffado/src/metrichalo/mh_avdevice.cpp (revision 2691)
@@ -47,5 +47,5 @@
 
 Device::Device( DeviceManager& d,
-                        std::auto_ptr<ConfigRom>( configRom ))
+                        ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
 {
@@ -76,5 +76,5 @@
 FFADODevice *
 Device::createDevice( DeviceManager& d,
-                          std::auto_ptr<ConfigRom>( configRom ))
+                          ffado_smartptr<ConfigRom>( configRom ))
 {
     return new Device(d, configRom );
Index: trunk/libffado/src/oxford/oxford_device.cpp
===================================================================
--- trunk/libffado/src/oxford/oxford_device.cpp (revision 1543)
+++ trunk/libffado/src/oxford/oxford_device.cpp (revision 2691)
@@ -45,5 +45,5 @@
 namespace Oxford {
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : GenericAVC::Device( d, configRom)
 {
@@ -121,5 +121,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     unsigned int vendorId = configRom->getNodeVendorId();
Index: trunk/libffado/src/oxford/oxford_device.h
===================================================================
--- trunk/libffado/src/oxford/oxford_device.h (revision 1543)
+++ trunk/libffado/src/oxford/oxford_device.h (revision 2691)
@@ -40,9 +40,9 @@
 
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
     virtual ~Device();
 
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual bool discover();
 
Index: trunk/libffado/src/dice/dice_avdevice.h
===================================================================
--- trunk/libffado/src/dice/dice_avdevice.h (revision 2430)
+++ trunk/libffado/src/dice/dice_avdevice.h (revision 2691)
@@ -69,10 +69,10 @@
 public:
     /// constructor
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     /// destructor
     ~Device();
 
     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual bool discover();
 
Index: trunk/libffado/src/dice/focusrite/saffire_56.h
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_56.h (revision 2580)
+++ trunk/libffado/src/dice/focusrite/saffire_56.h (revision 2691)
@@ -90,5 +90,5 @@
 public:
     Saffire56( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Saffire56();
 
Index: trunk/libffado/src/dice/focusrite/saffire_pro40.cpp
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (revision 2547)
+++ trunk/libffado/src/dice/focusrite/saffire_pro40.cpp (revision 2691)
@@ -479,5 +479,5 @@
 */
 SaffirePro40::SaffirePro40( DeviceManager& d,
-                                        std::auto_ptr<ConfigRom>( configRom ))
+                                        ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/dice/focusrite/saffire_pro14.cpp
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro14.cpp (revision 2431)
+++ trunk/libffado/src/dice/focusrite/saffire_pro14.cpp (revision 2691)
@@ -356,5 +356,5 @@
 */
 SaffirePro14::SaffirePro14( DeviceManager& d,
-                                        std::auto_ptr<ConfigRom>( configRom ))
+                                        ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/dice/focusrite/saffire_pro24.cpp
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (revision 2598)
+++ trunk/libffado/src/dice/focusrite/saffire_pro24.cpp (revision 2691)
@@ -408,5 +408,5 @@
 
 SaffirePro24::SaffirePro24( DeviceManager& d,
-                            std::auto_ptr<ConfigRom>( configRom ))
+                            ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device(d , configRom)
 {
Index: trunk/libffado/src/dice/focusrite/saffire_pro26.cpp
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro26.cpp (revision 2606)
+++ trunk/libffado/src/dice/focusrite/saffire_pro26.cpp (revision 2691)
@@ -358,5 +358,5 @@
 
 SaffirePro26::SaffirePro26( DeviceManager& d,
-                            std::auto_ptr<ConfigRom>( configRom ))
+                            ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device(d , configRom)
 {
Index: trunk/libffado/src/dice/focusrite/saffire_pro40.h
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro40.h (revision 2547)
+++ trunk/libffado/src/dice/focusrite/saffire_pro40.h (revision 2691)
@@ -85,5 +85,5 @@
 public:
     SaffirePro40( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~SaffirePro40();
 
Index: trunk/libffado/src/dice/focusrite/saffire_56.cpp
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_56.cpp (revision 2580)
+++ trunk/libffado/src/dice/focusrite/saffire_56.cpp (revision 2691)
@@ -502,5 +502,5 @@
 */
 Saffire56::Saffire56( DeviceManager& d,
-                                        std::auto_ptr<ConfigRom>( configRom ))
+                                        ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/dice/focusrite/saffire_pro14.h
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro14.h (revision 2431)
+++ trunk/libffado/src/dice/focusrite/saffire_pro14.h (revision 2691)
@@ -93,5 +93,5 @@
 public:
     SaffirePro14( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~SaffirePro14();
 
Index: trunk/libffado/src/dice/focusrite/saffire_pro24.h
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro24.h (revision 2431)
+++ trunk/libffado/src/dice/focusrite/saffire_pro24.h (revision 2691)
@@ -92,5 +92,5 @@
 public:
     SaffirePro24( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     ~SaffirePro24();
 
Index: trunk/libffado/src/dice/focusrite/saffire_pro26.h
===================================================================
--- trunk/libffado/src/dice/focusrite/saffire_pro26.h (revision 2590)
+++ trunk/libffado/src/dice/focusrite/saffire_pro26.h (revision 2691)
@@ -80,5 +80,5 @@
 public:
     SaffirePro26( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     ~SaffirePro26();
 
Index: trunk/libffado/src/dice/dice_avdevice.cpp
===================================================================
--- trunk/libffado/src/dice/dice_avdevice.cpp (revision 2651)
+++ trunk/libffado/src/dice/dice_avdevice.cpp (revision 2691)
@@ -61,5 +61,5 @@
 namespace Dice {
 
-Device::Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
     , m_eap( NULL )
@@ -126,5 +126,5 @@
 
 FFADODevice *
-Device::createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     unsigned int vendorId = configRom->getNodeVendorId();
Index: trunk/libffado/src/dice/maudio/profire_2626.cpp
===================================================================
--- trunk/libffado/src/dice/maudio/profire_2626.cpp (revision 2433)
+++ trunk/libffado/src/dice/maudio/profire_2626.cpp (revision 2691)
@@ -363,5 +363,5 @@
   Device
 */
-Profire2626::Profire2626( DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
+Profire2626::Profire2626( DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
     : Dice::Device( d, configRom)
 {
Index: trunk/libffado/src/dice/maudio/profire_2626.h
===================================================================
--- trunk/libffado/src/dice/maudio/profire_2626.h (revision 2433)
+++ trunk/libffado/src/dice/maudio/profire_2626.h (revision 2691)
@@ -44,5 +44,5 @@
 public:
     Profire2626( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Profire2626();
 
Index: trunk/libffado/src/dice/presonus/firestudio_tube.h
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_tube.h (revision 2251)
+++ trunk/libffado/src/dice/presonus/firestudio_tube.h (revision 2691)
@@ -37,5 +37,5 @@
 public:
     FirestudioTube( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~FirestudioTube();
 
Index: trunk/libffado/src/dice/presonus/firestudio_project.cpp
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_project.cpp (revision 2257)
+++ trunk/libffado/src/dice/presonus/firestudio_project.cpp (revision 2691)
@@ -155,5 +155,5 @@
 */
 FirestudioProject::FirestudioProject( DeviceManager& d,
-                                    std::auto_ptr<ConfigRom>( configRom ))
+                                    ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/dice/presonus/firestudio_mobile.cpp
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_mobile.cpp (revision 2578)
+++ trunk/libffado/src/dice/presonus/firestudio_mobile.cpp (revision 2691)
@@ -154,5 +154,5 @@
 */
 FirestudioMobile::FirestudioMobile( DeviceManager& d,
-                                    std::auto_ptr<ConfigRom>( configRom ))
+                                    ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/dice/presonus/firestudio_project.h
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_project.h (revision 2257)
+++ trunk/libffado/src/dice/presonus/firestudio_project.h (revision 2691)
@@ -37,5 +37,5 @@
 public:
     FirestudioProject( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~FirestudioProject();
 
Index: trunk/libffado/src/dice/presonus/firestudio_mobile.h
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_mobile.h (revision 2578)
+++ trunk/libffado/src/dice/presonus/firestudio_mobile.h (revision 2691)
@@ -38,5 +38,5 @@
 public:
     FirestudioMobile( DeviceManager& d,
-                  std::auto_ptr<ConfigRom>( configRom ));
+                  ffado_smartptr<ConfigRom>( configRom ));
     virtual ~FirestudioMobile();
 
Index: trunk/libffado/src/dice/presonus/firestudio_tube.cpp
===================================================================
--- trunk/libffado/src/dice/presonus/firestudio_tube.cpp (revision 2251)
+++ trunk/libffado/src/dice/presonus/firestudio_tube.cpp (revision 2691)
@@ -143,5 +143,5 @@
 */
 FirestudioTube::FirestudioTube( DeviceManager& d,
-                                    std::auto_ptr<ConfigRom>( configRom ))
+                                    ffado_smartptr<ConfigRom>( configRom ))
     : Dice::Device( d , configRom)
 {
Index: trunk/libffado/src/digidesign/digidesign_avdevice.h
===================================================================
--- trunk/libffado/src/digidesign/digidesign_avdevice.h (revision 1964)
+++ trunk/libffado/src/digidesign/digidesign_avdevice.h (revision 2691)
@@ -51,5 +51,5 @@
 
     Device( DeviceManager& d,
-               std::auto_ptr<ConfigRom>( configRom ));
+               ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
@@ -59,5 +59,5 @@
     static bool probe( Util::Configuration& c, ConfigRom& configRom, bool generic = false );
     static FFADODevice * createDevice( DeviceManager& d,
-                                        std::auto_ptr<ConfigRom>( configRom ));
+                                        ffado_smartptr<ConfigRom>( configRom ));
     static int getConfigurationId( );
     virtual bool discover();
Index: trunk/libffado/src/digidesign/digidesign_avdevice.cpp
===================================================================
--- trunk/libffado/src/digidesign/digidesign_avdevice.cpp (revision 1964)
+++ trunk/libffado/src/digidesign/digidesign_avdevice.cpp (revision 2691)
@@ -52,5 +52,5 @@
 
 Device::Device( DeviceManager& d,
-                      std::auto_ptr<ConfigRom>( configRom ))
+                      ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
     , m_digidesign_model( DIGIDESIGN_MODEL_NONE )
@@ -125,5 +125,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     return new Device(d, configRom );
Index: trunk/libffado/src/genericavc/avc_avdevice.cpp
===================================================================
--- trunk/libffado/src/genericavc/avc_avdevice.cpp (revision 1791)
+++ trunk/libffado/src/genericavc/avc_avdevice.cpp (revision 2691)
@@ -52,5 +52,5 @@
 IMPL_DEBUG_MODULE( Device, Device, DEBUG_LEVEL_NORMAL );
 
-Device::Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FFADODevice( d, configRom )
 {
@@ -109,5 +109,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     unsigned int vendorId = configRom->getNodeVendorId();
Index: trunk/libffado/src/genericavc/avc_avdevice.h
===================================================================
--- trunk/libffado/src/genericavc/avc_avdevice.h (revision 1543)
+++ trunk/libffado/src/genericavc/avc_avdevice.h (revision 2691)
@@ -48,10 +48,10 @@
 class Device : public FFADODevice, public AVC::Unit {
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
     virtual bool discover();
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
 
     virtual bool serialize( std::string basePath, Util::IOSerialize& ser ) const;
Index: trunk/libffado/src/genericavc/stanton/scs.cpp
===================================================================
--- trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2651)
+++ trunk/libffado/src/genericavc/stanton/scs.cpp (revision 2691)
@@ -34,5 +34,5 @@
 
 ScsDevice::ScsDevice( DeviceManager& d,
-                      std::auto_ptr<ConfigRom>( configRom ))
+                      ffado_smartptr<ConfigRom>( configRom ))
 : GenericAVC::Device( d , configRom)
 , m_hss1394handler( NULL )
Index: trunk/libffado/src/genericavc/stanton/scs.h
===================================================================
--- trunk/libffado/src/genericavc/stanton/scs.h (revision 1550)
+++ trunk/libffado/src/genericavc/stanton/scs.h (revision 2691)
@@ -71,5 +71,5 @@
 public:
     ScsDevice( DeviceManager& d,
-               std::auto_ptr<ConfigRom>( configRom ));
+               ffado_smartptr<ConfigRom>( configRom ));
     virtual ~ScsDevice();
 
Index: trunk/libffado/src/bebob/esi/quatafire610.cpp
===================================================================
--- trunk/libffado/src/bebob/esi/quatafire610.cpp (revision 1543)
+++ trunk/libffado/src/bebob/esi/quatafire610.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace ESI {
 
-QuataFireDevice::QuataFireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+QuataFireDevice::QuataFireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d, configRom)
 {
Index: trunk/libffado/src/bebob/esi/quatafire610.h
===================================================================
--- trunk/libffado/src/bebob/esi/quatafire610.h (revision 1543)
+++ trunk/libffado/src/bebob/esi/quatafire610.h (revision 2691)
@@ -34,5 +34,5 @@
 
 public:
-    QuataFireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    QuataFireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~QuataFireDevice();
 
Index: trunk/libffado/src/bebob/mackie/onyxmixer.cpp
===================================================================
--- trunk/libffado/src/bebob/mackie/onyxmixer.cpp (revision 1543)
+++ trunk/libffado/src/bebob/mackie/onyxmixer.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace Mackie {
 
-OnyxMixerDevice::OnyxMixerDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+OnyxMixerDevice::OnyxMixerDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d, configRom)
 {
Index: trunk/libffado/src/bebob/mackie/onyxmixer.h
===================================================================
--- trunk/libffado/src/bebob/mackie/onyxmixer.h (revision 1543)
+++ trunk/libffado/src/bebob/mackie/onyxmixer.h (revision 2691)
@@ -34,5 +34,5 @@
 
 public:
-    OnyxMixerDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    OnyxMixerDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~OnyxMixerDevice();
 
Index: trunk/libffado/src/bebob/bebob_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2671)
+++ trunk/libffado/src/bebob/bebob_avdevice.cpp (revision 2691)
@@ -65,5 +65,5 @@
 namespace BeBoB {
 
-Device::Device( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
+Device::Device( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
     : GenericAVC::Device( d, configRom )
     , m_last_discovery_config_id ( 0xFFFFFFFFFFFFFFFFLLU )
@@ -131,5 +131,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     unsigned int vendorId = configRom->getNodeVendorId();
Index: trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp (revision 2439)
+++ trunk/libffado/src/bebob/yamaha/yamaha_avdevice.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace Yamaha {
 
-GoDevice::GoDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+GoDevice::GoDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d, configRom)
 {
Index: trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h (revision 2439)
+++ trunk/libffado/src/bebob/yamaha/yamaha_avdevice.h (revision 2691)
@@ -35,5 +35,5 @@
 class GoDevice : public BeBoB::Device {
 public:
-    GoDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    GoDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~GoDevice();
 
Index: trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 2651)
+++ trunk/libffado/src/bebob/focusrite/focusrite_generic.cpp (revision 2691)
@@ -30,5 +30,5 @@
 namespace Focusrite {
 
-FocusriteDevice::FocusriteDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+FocusriteDevice::FocusriteDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d, configRom)
     , m_cmd_time_interval( 0 )
Index: trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 2651)
+++ trunk/libffado/src/bebob/focusrite/focusrite_saffire.cpp (revision 2691)
@@ -30,5 +30,5 @@
 namespace Focusrite {
 
-SaffireDevice::SaffireDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+SaffireDevice::SaffireDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FocusriteDevice( d, configRom)
     , m_MixerContainer( NULL )
Index: trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp (revision 2413)
+++ trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.cpp (revision 2691)
@@ -34,5 +34,5 @@
 namespace Focusrite {
 
-SaffireProDevice::SaffireProDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+SaffireProDevice::SaffireProDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FocusriteDevice( d, configRom )
     , m_MixerContainer( NULL )
Index: trunk/libffado/src/bebob/focusrite/focusrite_generic.h
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_generic.h (revision 1742)
+++ trunk/libffado/src/bebob/focusrite/focusrite_generic.h (revision 2691)
@@ -227,5 +227,5 @@
 class FocusriteDevice : public BeBoB::Device {
 public:
-    FocusriteDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    FocusriteDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~FocusriteDevice() {};
 
Index: trunk/libffado/src/bebob/focusrite/focusrite_saffire.h
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_saffire.h (revision 1498)
+++ trunk/libffado/src/bebob/focusrite/focusrite_saffire.h (revision 2691)
@@ -270,5 +270,5 @@
 class SaffireDevice : public FocusriteDevice {
 public:
-    SaffireDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    SaffireDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~SaffireDevice() {};
 
Index: trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h
===================================================================
--- trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h (revision 1498)
+++ trunk/libffado/src/bebob/focusrite/focusrite_saffirepro.h (revision 2691)
@@ -357,5 +357,5 @@
 
 public:
-    SaffireProDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    SaffireProDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~SaffireProDevice();
 
Index: trunk/libffado/src/bebob/bebob_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/bebob_avdevice.h (revision 2443)
+++ trunk/libffado/src/bebob/bebob_avdevice.h (revision 2691)
@@ -61,5 +61,5 @@
 class Device : public GenericAVC::Device {
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
@@ -69,5 +69,5 @@
     virtual bool discover();
 
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
 
     virtual AVC::Subunit* createSubunit(AVC::Unit& unit,
Index: trunk/libffado/src/bebob/terratec/terratec_device.cpp
===================================================================
--- trunk/libffado/src/bebob/terratec/terratec_device.cpp (revision 1763)
+++ trunk/libffado/src/bebob/terratec/terratec_device.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace Terratec {
 
-Phase88Device::Phase88Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Phase88Device::Phase88Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d, configRom)
 {
Index: trunk/libffado/src/bebob/terratec/terratec_device.h
===================================================================
--- trunk/libffado/src/bebob/terratec/terratec_device.h (revision 1763)
+++ trunk/libffado/src/bebob/terratec/terratec_device.h (revision 2691)
@@ -34,5 +34,5 @@
 class Phase88Device : public BeBoB::Device {
 public:
-    Phase88Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Phase88Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Phase88Device();
 
Index: trunk/libffado/src/bebob/template/vendor_device.h
===================================================================
--- trunk/libffado/src/bebob/template/vendor_device.h (revision 1543)
+++ trunk/libffado/src/bebob/template/vendor_device.h (revision 2691)
@@ -35,5 +35,5 @@
 public:
     VendorDevice( Ieee1394Service& ieee1394Service,
-              std::auto_ptr<ConfigRom>( configRom ));
+              ffado_smartptr<ConfigRom>( configRom ));
     virtual ~VendorDevice();
 
Index: trunk/libffado/src/bebob/template/vendor_device.cpp
===================================================================
--- trunk/libffado/src/bebob/template/vendor_device.cpp (revision 1543)
+++ trunk/libffado/src/bebob/template/vendor_device.cpp (revision 2691)
@@ -28,5 +28,5 @@
 
 VendorDevice::VendorDevice( Ieee1394Service& ieee1394Service,
-                            std::auto_ptr<ConfigRom>( configRom ))
+                            ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( ieee1394Service, configRom)
 {
Index: trunk/libffado/src/bebob/bebob_dl_mgr.cpp
===================================================================
--- trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2587)
+++ trunk/libffado/src/bebob/bebob_dl_mgr.cpp (revision 2691)
@@ -242,5 +242,5 @@
 
     printf( "parse BCD file\n" );
-    std::auto_ptr<BCD> bcd = std::auto_ptr<BCD>( new BCD( filename ) );
+    ffado_smartptr<BCD> bcd = ffado_smartptr<BCD>( new BCD( filename ) );
     if ( !bcd.get() ) {
         debugError( "downloadFirmware: Could not open or parse BCD '%s'\n",
@@ -305,5 +305,5 @@
 
     printf( "parse BCD file\n" );
-    std::auto_ptr<BCD> bcd = std::auto_ptr<BCD>( new BCD( filename ) );
+    ffado_smartptr<BCD> bcd = ffado_smartptr<BCD>( new BCD( filename ) );
     if ( !bcd.get() ) {
         debugError( "downloadCnE: Could not open or parse BCD '%s'\n",
Index: trunk/libffado/src/bebob/edirol/edirol_fa66.cpp
===================================================================
--- trunk/libffado/src/bebob/edirol/edirol_fa66.cpp (revision 1543)
+++ trunk/libffado/src/bebob/edirol/edirol_fa66.cpp (revision 2691)
@@ -28,5 +28,5 @@
 
 EdirolFa66Device::EdirolFa66Device( DeviceManager& d,
-                                      std::auto_ptr<ConfigRom>( configRom ))
+                                      ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d , configRom)
 {
Index: trunk/libffado/src/bebob/edirol/edirol_fa66.h
===================================================================
--- trunk/libffado/src/bebob/edirol/edirol_fa66.h (revision 1543)
+++ trunk/libffado/src/bebob/edirol/edirol_fa66.h (revision 2691)
@@ -33,5 +33,5 @@
 public:
     EdirolFa66Device( DeviceManager& d,
-                       std::auto_ptr<ConfigRom>( configRom ));
+                       ffado_smartptr<ConfigRom>( configRom ));
     virtual ~EdirolFa66Device();
 
Index: trunk/libffado/src/bebob/edirol/edirol_fa101.cpp
===================================================================
--- trunk/libffado/src/bebob/edirol/edirol_fa101.cpp (revision 1543)
+++ trunk/libffado/src/bebob/edirol/edirol_fa101.cpp (revision 2691)
@@ -28,5 +28,5 @@
 
 EdirolFa101Device::EdirolFa101Device( DeviceManager& d,
-                                      std::auto_ptr<ConfigRom>( configRom ))
+                                      ffado_smartptr<ConfigRom>( configRom ))
     : BeBoB::Device( d , configRom)
 {
Index: trunk/libffado/src/bebob/edirol/edirol_fa101.h
===================================================================
--- trunk/libffado/src/bebob/edirol/edirol_fa101.h (revision 1543)
+++ trunk/libffado/src/bebob/edirol/edirol_fa101.h (revision 2691)
@@ -33,5 +33,5 @@
 public:
     EdirolFa101Device( DeviceManager& d,
-                       std::auto_ptr<ConfigRom>( configRom ));
+                       ffado_smartptr<ConfigRom>( configRom ));
     virtual ~EdirolFa101Device();
 
Index: trunk/libffado/src/bebob/maudio/normal_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/maudio/normal_avdevice.cpp (revision 2490)
+++ trunk/libffado/src/bebob/maudio/normal_avdevice.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace Normal {
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ),
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ),
                            unsigned int modelId)
     : BeBoB::Device( d, configRom)
Index: trunk/libffado/src/bebob/maudio/normal_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/maudio/normal_avdevice.h (revision 2490)
+++ trunk/libffado/src/bebob/maudio/normal_avdevice.h (revision 2691)
@@ -43,5 +43,5 @@
 class Device : public BeBoB::Device {
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ),
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ),
                   unsigned int modelId);
     virtual ~Device();
Index: trunk/libffado/src/bebob/maudio/special_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/maudio/special_avdevice.cpp (revision 2529)
+++ trunk/libffado/src/bebob/maudio/special_avdevice.cpp (revision 2691)
@@ -36,5 +36,5 @@
 namespace Special {
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
     : BeBoB::Device(d, configRom)
 {
Index: trunk/libffado/src/bebob/maudio/special_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/maudio/special_avdevice.h (revision 2491)
+++ trunk/libffado/src/bebob/maudio/special_avdevice.h (revision 2691)
@@ -141,5 +141,5 @@
 {
 public:
-    Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom));
+    Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom));
     virtual ~Device() {};
     virtual void showDevice();
Index: trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp (revision 2489)
+++ trunk/libffado/src/bebob/presonus/inspire1394_avdevice.cpp (revision 2691)
@@ -105,5 +105,5 @@
 }
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
     : BeBoB::Device( d, configRom )
 {
Index: trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp
===================================================================
--- trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp (revision 2489)
+++ trunk/libffado/src/bebob/presonus/firebox_avdevice.cpp (revision 2691)
@@ -29,5 +29,5 @@
 namespace Firebox {
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>(configRom))
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>(configRom))
     : BeBoB::Device( d, configRom)
 {
Index: trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h (revision 2489)
+++ trunk/libffado/src/bebob/presonus/inspire1394_avdevice.h (revision 2691)
@@ -45,5 +45,5 @@
 class Device : public BeBoB::Device {
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
Index: trunk/libffado/src/bebob/presonus/firebox_avdevice.h
===================================================================
--- trunk/libffado/src/bebob/presonus/firebox_avdevice.h (revision 2489)
+++ trunk/libffado/src/bebob/presonus/firebox_avdevice.h (revision 2691)
@@ -36,5 +36,5 @@
 class Device : public BeBoB::Device {
 public:
-	Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+	Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
Index: trunk/libffado/src/devicemanager.cpp
===================================================================
--- trunk/libffado/src/devicemanager.cpp (revision 2450)
+++ trunk/libffado/src/devicemanager.cpp (revision 2691)
@@ -710,6 +710,6 @@
         debugOutput( DEBUG_LEVEL_VERBOSE, "Starting in slave mode on node %d...\n", nodeId );
 
-        std::auto_ptr<ConfigRom> configRom =
-            std::auto_ptr<ConfigRom>( new ConfigRom( *portService,
+        ffado_smartptr<ConfigRom> configRom =
+            ffado_smartptr<ConfigRom>( new ConfigRom( *portService,
                                                      nodeId ) );
         if ( !configRom->initialize() ) {
@@ -1032,5 +1032,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying BeBoB...\n" );
     if ( BeBoB::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return BeBoB::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return BeBoB::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1039,5 +1039,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying ECHO Audio FireWorks...\n" );
     if ( FireWorks::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return FireWorks::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return FireWorks::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1046,5 +1046,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Oxford FW90x...\n" );
     if ( Oxford::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return Oxford::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Oxford::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1054,5 +1054,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Generic AV/C...\n" );
     if ( GenericAVC::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return GenericAVC::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return GenericAVC::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1061,5 +1061,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Motu...\n" );
     if ( Motu::MotuDevice::probe( getConfiguration(), *configRom, generic ) ) {
-        return Motu::MotuDevice::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Motu::MotuDevice::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1068,5 +1068,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Dice...\n" );
     if ( Dice::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return Dice::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Dice::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1075,5 +1075,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Metric Halo...\n" );
     if ( MetricHalo::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return MetricHalo::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return MetricHalo::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1082,5 +1082,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying RME...\n" );
     if ( Rme::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return Rme::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Rme::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1089,5 +1089,5 @@
     debugOutput( DEBUG_LEVEL_VERBOSE, "Trying Bounce...\n" );
     if ( Bounce::Device::probe( getConfiguration(), *configRom, generic ) ) {
-        return Bounce::Device::createDevice( *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Bounce::Device::createDevice( *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
@@ -1120,9 +1120,9 @@
 
 FFADODevice*
-DeviceManager::getSlaveDriver( std::auto_ptr<ConfigRom>( configRom ) )
+DeviceManager::getSlaveDriver( ffado_smartptr<ConfigRom>( configRom ) )
 {
 #ifdef ENABLE_BOUNCE
     if ( Bounce::SlaveDevice::probe( getConfiguration(), *configRom, false ) ) {
-        return Bounce::SlaveDevice::createDevice(  *this, std::auto_ptr<ConfigRom>( configRom ) );
+        return Bounce::SlaveDevice::createDevice(  *this, ffado_smartptr<ConfigRom>( configRom ) );
     }
 #endif
Index: trunk/libffado/src/bounce/bounce_slave_avdevice.h
===================================================================
--- trunk/libffado/src/bounce/bounce_slave_avdevice.h (revision 1550)
+++ trunk/libffado/src/bounce/bounce_slave_avdevice.h (revision 2691)
@@ -45,9 +45,9 @@
 public:
 
-    SlaveDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
+    SlaveDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
     virtual ~SlaveDevice();
 
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
 
     bool discover();
Index: trunk/libffado/src/bounce/bounce_avdevice.cpp
===================================================================
--- trunk/libffado/src/bounce/bounce_avdevice.cpp (revision 1805)
+++ trunk/libffado/src/bounce/bounce_avdevice.cpp (revision 2691)
@@ -43,5 +43,5 @@
 namespace Bounce {
 
-Device::Device( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
+Device::Device( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
     : FFADODevice( d, configRom )
     , m_samplerate (44100)
@@ -75,5 +75,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     return new Device(d, configRom );
Index: trunk/libffado/src/bounce/bounce_avdevice.h
===================================================================
--- trunk/libffado/src/bounce/bounce_avdevice.h (revision 1550)
+++ trunk/libffado/src/bounce/bounce_avdevice.h (revision 2691)
@@ -65,9 +65,9 @@
     class BounceNotifier;
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~Device();
 
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual bool discover();
 
Index: trunk/libffado/src/bounce/bounce_slave_avdevice.cpp
===================================================================
--- trunk/libffado/src/bounce/bounce_slave_avdevice.cpp (revision 1805)
+++ trunk/libffado/src/bounce/bounce_slave_avdevice.cpp (revision 2691)
@@ -38,5 +38,5 @@
 namespace Bounce {
 
-SlaveDevice::SlaveDevice( DeviceManager& d, std::auto_ptr< ConfigRom >( configRom ) )
+SlaveDevice::SlaveDevice( DeviceManager& d, ffado_smartptr< ConfigRom >( configRom ) )
     : Device( d, configRom )
 {
@@ -56,5 +56,5 @@
 
 FFADODevice *
-SlaveDevice::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+SlaveDevice::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     return new SlaveDevice(d, configRom );
Index: trunk/libffado/src/fireworks/fireworks_device.h
===================================================================
--- trunk/libffado/src/fireworks/fireworks_device.h (revision 2519)
+++ trunk/libffado/src/fireworks/fireworks_device.h (revision 2691)
@@ -50,9 +50,9 @@
     
 public:
-    Device( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ) );
+    Device( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ) );
     virtual ~Device();
     
     static bool probe( Util::Configuration&, ConfigRom& configRom, bool generic = false );
-    static FFADODevice * createDevice( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    static FFADODevice * createDevice( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual bool discover();
 
Index: trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp
===================================================================
--- trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp (revision 864)
+++ trunk/libffado/src/fireworks/audiofire/audiofire_device.cpp (revision 2691)
@@ -30,5 +30,5 @@
 namespace ECHO {
 
-AudioFire::AudioFire( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+AudioFire::AudioFire( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : FireWorks::Device( d, configRom)
 {
Index: trunk/libffado/src/fireworks/audiofire/audiofire_device.h
===================================================================
--- trunk/libffado/src/fireworks/audiofire/audiofire_device.h (revision 864)
+++ trunk/libffado/src/fireworks/audiofire/audiofire_device.h (revision 2691)
@@ -35,5 +35,5 @@
 
 public:
-    AudioFire( DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ));
+    AudioFire( DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ));
     virtual ~AudioFire();
 
Index: trunk/libffado/src/fireworks/fireworks_device.cpp
===================================================================
--- trunk/libffado/src/fireworks/fireworks_device.cpp (revision 2599)
+++ trunk/libffado/src/fireworks/fireworks_device.cpp (revision 2691)
@@ -50,5 +50,5 @@
 namespace FireWorks {
 
-Device::Device(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::Device(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
     : GenericAVC::Device( d, configRom)
     , m_poll_lock( new Util::PosixMutex("DEVPOLL") )
@@ -183,5 +183,5 @@
 
 FFADODevice *
-Device::createDevice(DeviceManager& d, std::auto_ptr<ConfigRom>( configRom ))
+Device::createDevice(DeviceManager& d, ffado_smartptr<ConfigRom>( configRom ))
 {
     unsigned int vendorId = configRom->getNodeVendorId();
Index: trunk/libffado/tests/scan-devreg.cpp
===================================================================
--- trunk/libffado/tests/scan-devreg.cpp (revision 2587)
+++ trunk/libffado/tests/scan-devreg.cpp (revision 2691)
@@ -29,4 +29,5 @@
 
 #include "debugmodule/debugmodule.h"
+#include "ffadodevice.h"   // Needed for ffado_smartptr
 
 #include "libieee1394/configrom.h"
@@ -231,6 +232,6 @@
         }
         for (fb_nodeid_t node = n1; node < n2; node++) {
-            std::auto_ptr<ConfigRom> configRom =
-                std::auto_ptr<ConfigRom>( new ConfigRom(*tmp1394, node));
+            ffado_smartptr<ConfigRom> configRom =
+                ffado_smartptr<ConfigRom>( new ConfigRom(*tmp1394, node));
             if (!configRom->initialize()) {
                 continue;
Index: trunk/libffado/support/firmware/fireworks-downloader.cpp
===================================================================
--- trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2651)
+++ trunk/libffado/support/firmware/fireworks-downloader.cpp (revision 2691)
@@ -245,5 +245,5 @@
 
     DeviceManager d = DeviceManager();
-    Device *dev = new Device(d, std::auto_ptr<ConfigRom>(configRom) );
+    Device *dev = new Device(d, ffado_smartptr<ConfigRom>(configRom) );
     if (dev == NULL) {
         printMessage("Could not create FireWorks::Device\n");