[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    kdemultimedia/kmix
From:       Christian Esken <esken () kde ! org>
Date:       2005-04-19 21:14:05
Message-ID: 20050419211405.4EBEC5FA () office ! kde ! org
[Download RAW message or body]

CVS commit by esken: 

Move list of mixers to Mixer class (where it belongs).
Use release() in the destructor to close a small memory leak.


  M +27 -0     mixer.cpp   1.92
  M +4 -1      mixer.h   1.57


--- kdemultimedia/kmix/mixer.cpp  #1.91:1.92
@@ -38,4 +38,9 @@
  */
 
+// !! Warning: Don't commit with "KMIX_DCOP_OBJID_TEST" #define'd (cesken)
+#undef KMIX_DCOP_OBJID_TEST
+int Mixer::_dcopID = 0;
+
+QPtrList<Mixer> Mixer::s_mixers;
 
 int Mixer::getDriverNum()
@@ -52,4 +57,13 @@ int Mixer::getDriverNum()
 }
 
+/*
+ * Returns a reference of the current mixer list.
+ */
+QPtrList<Mixer>& Mixer::mixers()
+{
+  return s_mixers;
+}
+
+
 Mixer::Mixer( int device, int card ) : DCOPObject( "Mixer" )
 {
@@ -57,4 +71,5 @@ Mixer::Mixer( int device, int card ) : D
   m_cardnum = card;
   m_masterDevice = 0;
+  _pollingTimer = 0;
 
   m_isOpen = false;
@@ -71,7 +86,19 @@ Mixer::Mixer( int device, int card ) : D
 
   QCString objid;
+#ifndef KMIX_DCOP_OBJID_TEST
   objid.setNum(m_devnum);
+#else
+  objid.setNum(Mixer::_dcopID);
+  Mixer::_dcopID ++;  // !!! Change this before commiting !!!
+#endif
   objid.prepend("Mixer");
   DCOPObject::setObjId( objid );
+  
+}
+
+Mixer::~Mixer() {
+   // Release Mixer. This might also free memory, depending on the called backend method
+   release();
+   delete _pollingTimer;
 }
 

--- kdemultimedia/kmix/mixer.h  #1.56:1.57
@@ -50,5 +50,5 @@ class Mixer : public QObject, virtual pu
 
       Mixer( int device = -1, int card = -1 );
-      virtual ~Mixer() {};
+      virtual ~Mixer();
 
       /// Static function. This function must be overloaded by any derived mixer class
@@ -190,10 +190,13 @@ class Mixer : public QObject, virtual pu
 
       QPtrList<MixSet> m_profiles;
+      static QPtrList<Mixer> s_mixers;
 
    public:
       int setupMixer( MixSet set );
+      static QPtrList<Mixer>& mixers();
 
    private:
       mutable bool _readSetFromHWforceUpdate;
+      static int _dcopID;
 };
 


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic