[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