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

List:       kde-commits
Subject:    kdesupport/akode/lib
From:       Allan Sandfeld Jensen <kde () carewolf ! com>
Date:       2005-07-28 17:13:06
Message-ID: 1122570786.498182.5870.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 439690 by carewolf:

A bit safety


 M  +1 -0      decoder.h  
 M  +5 -3      decoderpluginhandler.cpp  
 M  +6 -0      player.cpp  
 M  +1 -1      pluginhandler.h  
 M  +1 -0      sink.h  
 M  +5 -3      sinkpluginhandler.cpp  


--- trunk/kdesupport/akode/lib/decoder.h #439689:439690
@@ -124,6 +124,7 @@
      * Loads a decoder-plugin named \a name (xiph, mpc, mpeg..)
      */
     virtual bool load(const string name);
+    virtual void unload();
     bool isLoaded() { return decoder_plugin != 0; };
 protected:
     DecoderPlugin* decoder_plugin;
--- trunk/kdesupport/akode/lib/decoderpluginhandler.cpp #439689:439690
@@ -53,12 +53,14 @@
         } else
             return false;
 
-    if (!res)
-        unload();
-
     return res;
 }
 
+void DecoderPluginHandler::unload() {
+    decoder_plugin = 0;
+    PluginHandler::unload();
+}
+
 Decoder* DecoderPluginHandler::openDecoder(File *src) {
     if (decoder_plugin)
         return decoder_plugin->openDecoder(src);
--- trunk/kdesupport/akode/lib/player.cpp #439689:439690
@@ -215,8 +215,14 @@
         return false;
     }
     d->sink = d->sink_handler.openSink();
+    if (!d->sink) {
+        AKODE_DEBUG("Could not create " << sinkname << "-sink");
+        return false;
+    }
     if (!d->sink->open()) {
         AKODE_DEBUG("Could not open " << sinkname << "-sink");
+        delete d->sink;
+        d->sink = 0;
         return false;
     }
     setState(Open);
--- trunk/kdesupport/akode/lib/pluginhandler.h #439689:439690
@@ -63,7 +63,7 @@
      */
     virtual void unload();
     /*!
-     * Ask for a plugin in the library name \a plugin.
+     * Ask for a plugin in the library named \a plugin.
      * Returns 0 on failure.
      */
     void* loadPlugin(const string plugin);
--- trunk/kdesupport/akode/lib/sink.h #439689:439690
@@ -85,6 +85,7 @@
      * Loads the sink-plugin named \a name (alsa,oss..)
      */
     virtual bool load(const string name);
+    virtual void unload();
     bool isLoaded() { return sink_plugin != 0; };
 protected:
     SinkPlugin* sink_plugin;
--- trunk/kdesupport/akode/lib/sinkpluginhandler.cpp #439689:439690
@@ -53,12 +53,14 @@
         else
             return false; // plugin not found
 
-    if (!res)
-        unload();
-
     return res;
 }
 
+void SinkPluginHandler::unload() {
+    sink_plugin = 0;
+    PluginHandler::unload();
+}
+
 Sink* SinkPluginHandler::openSink() {
     if (sink_plugin)
         return sink_plugin->openSink();
[prev in list] [next in list] [prev in thread] [next in thread] 

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