From 53651c042507a2e639b2a6ab40a4ab0d60aa098e Mon Sep 17 00:00:00 2001
From: Sebastião Guerra <sebastiao.luiz.guerra@gmail.com>
Date: Fri, 2 Oct 2026 09:43:36 -0300
Subject: Replace zero pointer constants with nullptr
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Sebastião Guerra <sebastiao.luiz.guerra@gmail.com>
---
 akode/akodeplay/akodeplay.cpp                   | 18 +++---
 akode/lib/audioframe.h                          | 12 ++--
 akode/lib/auto_sink.cpp                         |  6 +-
 akode/lib/buffered_decoder.cpp                  | 20 +++----
 akode/lib/bytebuffer.cpp                        |  6 +-
 akode/lib/converter.h                           |  2 +-
 akode/lib/decoder.h                             |  6 +-
 akode/lib/decoderpluginhandler.cpp              |  6 +-
 akode/lib/encoder.h                             |  4 +-
 akode/lib/encoderpluginhandler.cpp              |  4 +-
 akode/lib/mmapfile.cpp                          |  8 +--
 akode/lib/player.cpp                            | 78 ++++++++++++-------------
 akode/lib/pluginhandler.cpp                     | 10 ++--
 akode/lib/resampler.h                           |  4 +-
 akode/lib/resamplerpluginhandler.cpp            |  2 +-
 akode/lib/sink.h                                |  4 +-
 akode/lib/sinkpluginhandler.cpp                 |  6 +-
 akode/lib/thread.h                              |  4 +-
 akode/lib/volumefilter.h                        |  2 +-
 akode/lib/wav_decoder.cpp                       |  4 +-
 akode/plugins/alsa_sink/alsa_sink.cpp           |  8 +--
 akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp |  6 +-
 akode/plugins/jack_sink/jack_sink.cpp           |  6 +-
 akode/plugins/mpc_decoder/mpc_decoder.cpp       |  2 +-
 akode/plugins/mpeg_decoder/mpeg_decoder.cpp     |  8 +--
 akode/plugins/oss_sink/oss_sink.cpp             |  6 +-
 akode/plugins/pulse_sink/pulse_sink.cpp         |  6 +-
 akode/plugins/sun_sink/sun_sink.cpp             |  2 +-
 akode/plugins/xiph_decoder/flac113_decoder.cpp  | 12 ++--
 akode/plugins/xiph_decoder/flac_decoder.cpp     | 22 +++----
 akode/plugins/xiph_decoder/speex_decoder.cpp    |  4 +-
 akode/plugins/xiph_decoder/vorbis_decoder.cpp   |  6 +-
 akode/plugins/xiph_decoder/xiph_decoder.cpp     |  2 +-
 33 files changed, 148 insertions(+), 148 deletions(-)

diff --git a/akode/akodeplay/akodeplay.cpp b/akode/akodeplay/akodeplay.cpp
index c10a69e..a1e917c 100644
--- a/akode/akodeplay/akodeplay.cpp
+++ b/akode/akodeplay/akodeplay.cpp
@@ -56,18 +56,18 @@ void list_decoders() {
 
 #ifdef HAVE_GNU_GETOPT
 static struct option longoptions[] = {
-    {"resampler", 1, 0, 'r'},
-    {"decoder", 1, 0, 'd'},
-    {"sink", 1, 0, 's'},
-    {0, 0, 0, 0}
+    {"resampler", 1, nullptr, 'r'},
+    {"decoder", 1, nullptr, 'd'},
+    {"sink", 1, nullptr, 's'},
+    {nullptr, 0, nullptr, 0}
 };
 #endif
 
 int main(int argc, char** argv) {
-    const char* resampler_plugin = 0;
-    const char* decoder_plugin = 0;
-    const char* sink_plugin = 0;
-    const char* filename = 0;
+    const char* resampler_plugin = nullptr;
+    const char* decoder_plugin = nullptr;
+    const char* sink_plugin = nullptr;
+    const char* filename = nullptr;
 
     if (argc <= 1) {
         usage();
@@ -76,7 +76,7 @@ int main(int argc, char** argv) {
 
     int opt;
 #ifdef HAVE_GNU_GETOPT
-    while ((opt = getopt_long(argc, argv,  "r:d:s:", longoptions, 0)) != -1)
+    while ((opt = getopt_long(argc, argv,  "r:d:s:", longoptions, nullptr)) != -1)
 #else
     while ((opt = getopt(argc, argv,  "r:d:s:")) != -1)
 #endif
diff --git a/akode/lib/audioframe.h b/akode/lib/audioframe.h
index d4cd09b..cc636ae 100644
--- a/akode/lib/audioframe.h
+++ b/akode/lib/audioframe.h
@@ -40,7 +40,7 @@ namespace aKode {
  */
 struct AudioFrame : public AudioConfiguration {
 public:
-    AudioFrame() : length(0), max(0), data(0) {};
+    AudioFrame() : length(0), max(0), data(nullptr) {};
     ~AudioFrame() { freeSpace(); }
     /*!
      * Reserves space in the frame for atleast \a iLength samples of the
@@ -58,7 +58,7 @@ public:
         assert(iWidth != 0 && iWidth >= -64 && iWidth <= 32);
 
         // No reallocation needed
-        if ( data != 0 && channels == iChannels &&
+        if ( data && channels == iChannels &&
              max >= iLength && sample_width == iWidth)
         {
             length = iLength;
@@ -71,7 +71,7 @@ public:
 	length = max = iLength;
 	sample_width = iWidth;
 	if (length == 0) {
-	    data = 0;
+	    data = nullptr;
 	    return;
         }
 	data = new int8_t*[channels+1];
@@ -92,7 +92,7 @@ public:
 
 	for(int i=0; i<iChannels; i++)
 	    data[i] = new int8_t[length*bytes];
-	data[iChannels] = 0;
+	data[iChannels] = nullptr;
     }
     /*!
      * Frees the space allocated for the buffer.
@@ -107,7 +107,7 @@ public:
 	}
 	delete[] data;
         pos = 0;
-	data = 0;
+	data = nullptr;
 	channels = 0;
 	length = 0;
         max = 0;
@@ -140,7 +140,7 @@ inline void swapFrames(AudioFrame* toFrame, AudioFrame* fromFrame) {
     tmpFrame = *toFrame;
     *toFrame = *fromFrame;
     *fromFrame = tmpFrame;
-    tmpFrame.data = 0;
+    tmpFrame.data = nullptr;
 }
 
 } // namespace
diff --git a/akode/lib/auto_sink.cpp b/akode/lib/auto_sink.cpp
index bee17b1..a3bef95 100644
--- a/akode/lib/auto_sink.cpp
+++ b/akode/lib/auto_sink.cpp
@@ -30,7 +30,7 @@ extern "C" { AutoSinkPlugin auto_sink; }
 
 struct AutoSink::private_data
 {
-    private_data() : sink(0) {};
+    private_data() : sink(nullptr) {};
     SinkPluginHandler plugin_handler;
     Sink* sink;
 
@@ -41,7 +41,7 @@ struct AutoSink::private_data
                 if (sink->open())
                     return true;
                 delete sink;
-                sink = 0;
+                sink = nullptr;
             }
             plugin_handler.unload();
         } else
@@ -96,7 +96,7 @@ int AutoSink::setAudioConfiguration(const AudioConfiguration* config)
 const AudioConfiguration* AutoSink::audioConfiguration() const
 {
     if (!m_data->sink)
-        return 0;
+        return nullptr;
     else
         return m_data->sink->audioConfiguration();
 }
diff --git a/akode/lib/buffered_decoder.cpp b/akode/lib/buffered_decoder.cpp
index 7bba728..fb77af1 100644
--- a/akode/lib/buffered_decoder.cpp
+++ b/akode/lib/buffered_decoder.cpp
@@ -34,9 +34,9 @@ enum BufferedDecoderStatus { Closed, Open, Playing, Paused, XFadingSeek };
 
 struct BufferedDecoder::private_data
 {
-    private_data() : buffer(0)
-                   , decoder(0)
-                   , xfader(0)
+    private_data() : buffer(nullptr)
+                   , decoder(nullptr)
+                   , xfader(nullptr)
                    , fading_time(50)
                    , buffer_size(16)
                    , blocking(false)
@@ -110,8 +110,8 @@ void BufferedDecoder::closeDecoder() {
     if (d->state != Open) stop();
 
     delete d->buffer;
-    d->buffer = 0;
-    d->decoder = 0;
+    d->buffer = nullptr;
+    d->decoder = nullptr;
     d->state = Closed;
 }
 
@@ -124,7 +124,7 @@ void BufferedDecoder::start()
 
     d->buffer->reset();
 
-    if (pthread_create(&d->thread, 0, run_decoder, d) == 0) {
+    if (pthread_create(&d->thread, nullptr, run_decoder, d) == 0) {
         d->running = true;
     }
 
@@ -137,14 +137,14 @@ void BufferedDecoder::stop() {
     if (d->state != Playing) {
         // Stop fading
         delete d->xfader;
-        d->xfader = 0;
+        d->xfader = nullptr;
     }
 
     d->buffer->release();
 
     if (d->running) {
         d->halt = true;
-        pthread_join(d->thread, 0);
+        pthread_join(d->thread, nullptr);
         d->running = false;
     }
 
@@ -161,7 +161,7 @@ bool BufferedDecoder::readFrame(AudioFrame* frame)
         if (d->state == XFadingSeek) {
             if(!d->xfader->doFrame(frame)) {
                 delete d->xfader;
-                d->xfader = 0;
+                d->xfader = nullptr;
                 d->state = Playing;
             }
         }
@@ -281,7 +281,7 @@ const AudioConfiguration* BufferedDecoder::audioConfiguration() {
     if (d->decoder)
         return d->decoder->audioConfiguration();
     else
-        return 0;
+        return nullptr;
 }
 
 void BufferedDecoder::fillFader() {
diff --git a/akode/lib/bytebuffer.cpp b/akode/lib/bytebuffer.cpp
index 84b2914..2f035b0 100644
--- a/akode/lib/bytebuffer.cpp
+++ b/akode/lib/bytebuffer.cpp
@@ -33,9 +33,9 @@ ByteBuffer::ByteBuffer(unsigned int len)
               , released(false)
               , closed(false)
 {
-    pthread_cond_init(&not_empty, 0);
-    pthread_cond_init(&not_full, 0);
-    pthread_mutex_init(&mutex, 0);
+    pthread_cond_init(&not_empty, nullptr);
+    pthread_cond_init(&not_full, nullptr);
+    pthread_mutex_init(&mutex, nullptr);
     buffer = new char[length];
 }
 
diff --git a/akode/lib/converter.h b/akode/lib/converter.h
index 31e95bd..2fab54e 100644
--- a/akode/lib/converter.h
+++ b/akode/lib/converter.h
@@ -30,7 +30,7 @@ class AKODE_EXPORT Converter {
     int m_sample_width;
 public:
     Converter(int sample_width = 0);
-    bool doFrame(AudioFrame* in, AudioFrame* out=0);
+    bool doFrame(AudioFrame* in, AudioFrame* out=nullptr);
     void setSampleWidth(int sample_width);
 };
 
diff --git a/akode/lib/decoder.h b/akode/lib/decoder.h
index a32049d..19e43da 100644
--- a/akode/lib/decoder.h
+++ b/akode/lib/decoder.h
@@ -94,7 +94,7 @@ public:
      * Asks the plugin to open a Decoder, returns 0 if the
      * plugin could not.
      */
-    virtual Decoder* openDecoder(File *) { return 0; };
+    virtual Decoder* openDecoder(File *) { return nullptr; };
     /*!
      * Old version version of openDecoder.
      * \deprecated
@@ -109,7 +109,7 @@ class AKODE_EXPORT DecoderPluginHandler : public PluginHandler, public DecoderPl
 public:
     static list<string> listDecoderPlugins();
 
-    DecoderPluginHandler() : decoder_plugin(0) {};
+    DecoderPluginHandler() : decoder_plugin(nullptr) {};
     DecoderPluginHandler(const string name);
     /*!
      * Open a Decoder for the File \a src. Returns 0 if unsuccesfull
@@ -125,7 +125,7 @@ public:
      */
     virtual bool load(const string name);
     virtual void unload();
-    bool isLoaded() { return decoder_plugin != 0; };
+    bool isLoaded() { return decoder_plugin != nullptr; };
 protected:
     DecoderPlugin* decoder_plugin;
 };
diff --git a/akode/lib/decoderpluginhandler.cpp b/akode/lib/decoderpluginhandler.cpp
index d5dba2e..cd3f760 100644
--- a/akode/lib/decoderpluginhandler.cpp
+++ b/akode/lib/decoderpluginhandler.cpp
@@ -33,7 +33,7 @@ list<string> DecoderPluginHandler::listDecoderPlugins() {
     return decoder_list;
 }
 
-DecoderPluginHandler::DecoderPluginHandler(const string lib) : decoder_plugin(0)
+DecoderPluginHandler::DecoderPluginHandler(const string lib) : decoder_plugin(nullptr)
 {
     if (lib.size() > 0)
         load(lib);
@@ -57,7 +57,7 @@ bool DecoderPluginHandler::load(const string name)
 }
 
 void DecoderPluginHandler::unload() {
-    decoder_plugin = 0;
+    decoder_plugin = nullptr;
     PluginHandler::unload();
 }
 
@@ -65,7 +65,7 @@ Decoder* DecoderPluginHandler::openDecoder(File *src) {
     if (decoder_plugin)
         return decoder_plugin->openDecoder(src);
     else
-        return 0;
+        return nullptr;
 }
 
 } //namespace
diff --git a/akode/lib/encoder.h b/akode/lib/encoder.h
index b416b3d..dbbd8f8 100644
--- a/akode/lib/encoder.h
+++ b/akode/lib/encoder.h
@@ -65,14 +65,14 @@ public:
  */
 class EncoderPluginHandler : public PluginHandler, public EncoderPlugin {
 public:
-    EncoderPluginHandler() : encoder_plugin(0) {};
+    EncoderPluginHandler() : encoder_plugin(nullptr) {};
     EncoderPluginHandler(const string name);
     Encoder* openEncoder(File *dst);
     /*!
      * Loads a encoder-plugin by the \a name (flac, vorbis, lame..)
      */
     virtual bool load(const string name);
-    bool isLoaded() { return encoder_plugin != 0; };
+    bool isLoaded() { return encoder_plugin != nullptr; };
 protected:
     EncoderPlugin* encoder_plugin;
 };
diff --git a/akode/lib/encoderpluginhandler.cpp b/akode/lib/encoderpluginhandler.cpp
index 247d1aa..48278a3 100644
--- a/akode/lib/encoderpluginhandler.cpp
+++ b/akode/lib/encoderpluginhandler.cpp
@@ -23,7 +23,7 @@
 
 namespace aKode {
 
-EncoderPluginHandler::EncoderPluginHandler(const string lib) : encoder_plugin(0)
+EncoderPluginHandler::EncoderPluginHandler(const string lib) : encoder_plugin(nullptr)
 {
     if (lib.size() > 0)
         load(lib);
@@ -44,7 +44,7 @@ Encoder* EncoderPluginHandler::openEncoder(File *dest)
     if (encoder_plugin)
         return encoder_plugin->openEncoder(dest);
     else
-        return 0;
+        return nullptr;
 }
 
 } //namespace
diff --git a/akode/lib/mmapfile.cpp b/akode/lib/mmapfile.cpp
index d79192b..02aa28b 100644
--- a/akode/lib/mmapfile.cpp
+++ b/akode/lib/mmapfile.cpp
@@ -47,7 +47,7 @@ extern "C" {
 
 namespace aKode {
 
-MMapFile::MMapFile(const char* filename) : File(filename), fd(-1), handle(0), len(0), pos(0) {}
+MMapFile::MMapFile(const char* filename) : File(filename), fd(-1), handle(nullptr), len(0), pos(0) {}
 
 MMapFile::~MMapFile() {
     close();
@@ -62,10 +62,10 @@ bool MMapFile::openRO() {
     len = stat.st_size;
     pos = 0;
 
-    handle = mmap(0, len, PROT_READ, MAP_SHARED, fd, 0);
+    handle = mmap(nullptr, len, PROT_READ, MAP_SHARED, fd, 0);
     if (handle == MAP_FAILED) {
         ::close(fd);
-        handle = 0;
+        handle = nullptr;
         return false;
     }
 
@@ -77,7 +77,7 @@ void MMapFile::close() {
         munmap((char*)handle,len);
         ::close(fd);
     }
-    handle = 0;
+    handle = nullptr;
 }
 
 long MMapFile::read(char* ptr, long num) {
diff --git a/akode/lib/player.cpp b/akode/lib/player.cpp
index fe60db5..8daa984 100644
--- a/akode/lib/player.cpp
+++ b/akode/lib/player.cpp
@@ -50,15 +50,15 @@ namespace aKode {
 
 struct Player::private_data
 {
-    private_data() : src(0)
-                   , frame_decoder(0)
-                   , resampler(0)
-                   , converter(0)
-                   , volume_filter(0)
-                   , sink(0)
-                   , manager(0)
-                   , monitor(0)
-                   , decoder_plugin(0)
+    private_data() : src(nullptr)
+                   , frame_decoder(nullptr)
+                   , resampler(nullptr)
+                   , converter(nullptr)
+                   , volume_filter(nullptr)
+                   , sink(nullptr)
+                   , manager(nullptr)
+                   , monitor(nullptr)
+                   , decoder_plugin(nullptr)
                    , resampler_plugin("fast")
                    , sample_rate(0)
                    , state(Closed)
@@ -116,14 +116,14 @@ struct Player::private_data
         if (my_file)
             delete src;
 
-        frame_decoder = 0;
-        src = 0;
+        frame_decoder = nullptr;
+        src = nullptr;
         decoder_handler.unload();
 
         delete resampler;
         delete converter;
-        resampler = 0;
-        converter = 0;
+        resampler = nullptr;
+        converter = nullptr;
 
         delete this;
     }
@@ -239,7 +239,7 @@ bool Player::open(const char* sinkname) {
     if (!d->sink->open()) {
         AKODE_DEBUG("Could not open " << sinkname << "-sink");
         delete d->sink;
-        d->sink = 0;
+        d->sink = nullptr;
         return false;
     }
     d->my_sink = true;
@@ -256,7 +256,7 @@ bool Player::open(Sink *sink) {
     d->sink = sink;
     if (!d->sink->open()) {
         AKODE_DEBUG("Could not open sink");
-        d->sink = 0;
+        d->sink = nullptr;
         return false;
     }
     d->my_sink = false;
@@ -272,10 +272,10 @@ void Player::close() {
     assert(state() == Open);
 
     delete d->volume_filter;
-    d->volume_filter = 0;
+    d->volume_filter = nullptr;
 
     if (d->my_sink) delete d->sink;
-    d->sink = 0;
+    d->sink = nullptr;
     d->sink_handler.unload();
     setState(Closed);
 }
@@ -299,7 +299,7 @@ bool Player::load(const char* filename) {
         if (!d->src->openRO()) {
             AKODE_DEBUG("Could not open " << filename);
             delete d->src;
-            d->src = 0;
+            d->src = nullptr;
             return false;
         }
     }
@@ -344,7 +344,7 @@ bool Player::load() {
         else {
             AKODE_DEBUG("Cannot detect mimetype");
             delete d->src;
-            d->src = 0;
+            d->src = nullptr;
             return false;
         }
         if (!d->decoder_handler.load(format))
@@ -353,7 +353,7 @@ bool Player::load() {
 
     if (!d->decoder_handler.isLoaded()) {
         delete d->src;
-        d->src = 0;
+        d->src = nullptr;
         return false;
     }
 
@@ -362,7 +362,7 @@ bool Player::load() {
         AKODE_DEBUG("Failed to open Decoder");
         d->decoder_handler.unload();
         delete d->src;
-        d->src = 0;
+        d->src = nullptr;
         return false;
     }
 
@@ -371,10 +371,10 @@ bool Player::load() {
     if (!d->frame_decoder->readFrame(&first_frame)) {
         AKODE_DEBUG("Failed to decode first frame");
         delete d->frame_decoder;
-        d->frame_decoder = 0;
+        d->frame_decoder = nullptr;
         d->decoder_handler.unload();
         delete d->src;
-        d->src = 0;
+        d->src = nullptr;
         return false;
     }
 
@@ -387,10 +387,10 @@ bool Player::load() {
     if (state < 0) {
         AKODE_DEBUG("The sink could not be configured for this format");
         delete d->frame_decoder;
-        d->frame_decoder = 0;
+        d->frame_decoder = nullptr;
         d->decoder_handler.unload();
         delete d->src;
-        d->src = 0;
+        d->src = nullptr;
         return false;
     }
     else
@@ -407,10 +407,10 @@ bool Player::load() {
             // ### We don't do mixing yet
             AKODE_DEBUG("Sample has wrong number of channels");
             delete d->frame_decoder;
-            d->frame_decoder = 0;
+            d->frame_decoder = nullptr;
             d->decoder_handler.unload();
             delete d->src;
-            d->src = 0;
+            d->src = nullptr;
             return false;
         }
         int out_width = d->sink->audioConfiguration()->sample_width;
@@ -427,8 +427,8 @@ bool Player::load() {
     {
         delete d->resampler;
         delete d->converter;
-        d->resampler = 0;
-        d->converter = 0;
+        d->resampler = nullptr;
+        d->converter = nullptr;
     }
 
     // connect the streams to play
@@ -446,7 +446,7 @@ bool Player::loadResampler() {
         d->resampler_handler.load(d->resampler_plugin);
         d->resampler = d->resampler_handler.openResampler();
     }
-    return d->resampler != 0;
+    return d->resampler != nullptr;
 }
 
 void Player::unload() {
@@ -462,14 +462,14 @@ void Player::unload() {
     if (d->my_file)
         delete d->src;
 
-    d->frame_decoder = 0;
-    d->src = 0;
+    d->frame_decoder = nullptr;
+    d->src = nullptr;
     d->decoder_handler.unload();
 
     delete d->resampler;
     delete d->converter;
-    d->resampler = 0;
-    d->converter = 0;
+    d->resampler = nullptr;
+    d->converter = nullptr;
 
     setState(Open);
 }
@@ -491,7 +491,7 @@ void Player::play() {
 
     d->halt = d->pause = false;
 
-    if (pthread_create(&d->player_thread, 0, run_player, d) == 0) {
+    if (pthread_create(&d->player_thread, nullptr, run_player, d) == 0) {
         d->running = true;
         setState(Playing);
     } else {
@@ -539,7 +539,7 @@ void Player::stop() {
     d->buffered_decoder.stop();
 
     if (d->running) {
-        pthread_join(d->player_thread, 0);
+        pthread_join(d->player_thread, nullptr);
         d->running = false;
     }
 
@@ -556,7 +556,7 @@ void Player::wait() {
     assert(state() == Playing);
 
     if (d->running) {
-        pthread_join(d->player_thread, 0);
+        pthread_join(d->player_thread, nullptr);
         d->running = false;
     }
 
@@ -597,7 +597,7 @@ void Player::setVolume(float f) {
     }
     else if (d->volume_filter) {
         VolumeFilter *f = d->volume_filter;
-        d->volume_filter = 0;
+        d->volume_filter = nullptr;
         delete f;
     }
 }
@@ -629,7 +629,7 @@ Player::State Player::state() const {
 }
 
 void Player::setDecoderPlugin(const char* plugin) {
-    if (plugin && strncmp(plugin, "auto", 4) == 0) plugin = 0;
+    if (plugin && strncmp(plugin, "auto", 4) == 0) plugin = nullptr;
     d->decoder_plugin = plugin;
 }
 
diff --git a/akode/lib/pluginhandler.cpp b/akode/lib/pluginhandler.cpp
index 5aaea56..fa5f85b 100644
--- a/akode/lib/pluginhandler.cpp
+++ b/akode/lib/pluginhandler.cpp
@@ -46,7 +46,7 @@
 
 namespace aKode {
 
-PluginHandler::PluginHandler() : library_loaded(false), handle(0)
+PluginHandler::PluginHandler() : library_loaded(false), handle(nullptr)
 {
     DLINIT();
   #ifdef HAVE_LIBLTDL
@@ -54,7 +54,7 @@ PluginHandler::PluginHandler() : library_loaded(false), handle(0)
   #endif
 }
 
-PluginHandler::PluginHandler(const string lib) : library_loaded(false), handle(0)
+PluginHandler::PluginHandler(const string lib) : library_loaded(false), handle(nullptr)
 {
     DLINIT();
     if (lib.size() > 0)
@@ -75,7 +75,7 @@ list<string> PluginHandler::listPlugins() {
 
     list<string> out;
 
-    while ((dp = readdir (dir)) != 0) {
+    while ((dp = readdir (dir))) {
         string name(dp->d_name);
         if (name.length() < 15) continue;
         if (name.substr(0,9) != "libakode_") continue;
@@ -124,11 +124,11 @@ void PluginHandler::unload()
 
 void* PluginHandler::loadPlugin(const string name) {
     void *plugin;
-    if (!handle) return 0;
+    if (!handle) return nullptr;
 
     DLERROR(); // clear errors
     plugin = DLSYM(handle, name.c_str());
-    if (DLERROR()) return 0;
+    if (DLERROR()) return nullptr;
 
     return plugin;
 }
diff --git a/akode/lib/resampler.h b/akode/lib/resampler.h
index c16548c..706f69b 100644
--- a/akode/lib/resampler.h
+++ b/akode/lib/resampler.h
@@ -60,14 +60,14 @@ public:
 
 class AKODE_EXPORT ResamplerPluginHandler : public PluginHandler, public ResamplerPlugin {
 public:
-    ResamplerPluginHandler() : resampler_plugin(0) {};
+    ResamplerPluginHandler() : resampler_plugin(nullptr) {};
     ResamplerPluginHandler(const string name);
     Resampler* openResampler();
     /*!
      * Loads a resampler-plugin by the \a name (src, fast..)
      */
     virtual bool load(const string name);
-    bool isLoaded() { return resampler_plugin != 0; };
+    bool isLoaded() { return resampler_plugin != nullptr; };
 protected:
     ResamplerPlugin* resampler_plugin;
 };
diff --git a/akode/lib/resamplerpluginhandler.cpp b/akode/lib/resamplerpluginhandler.cpp
index 7f91097..b4eb701 100644
--- a/akode/lib/resamplerpluginhandler.cpp
+++ b/akode/lib/resamplerpluginhandler.cpp
@@ -24,7 +24,7 @@
 
 namespace aKode {
 
-ResamplerPluginHandler::ResamplerPluginHandler(const string lib) : resampler_plugin(0)
+ResamplerPluginHandler::ResamplerPluginHandler(const string lib) : resampler_plugin(nullptr)
 {
     if (lib.size() > 0)
         load(lib);
diff --git a/akode/lib/sink.h b/akode/lib/sink.h
index 9946127..755e0b5 100644
--- a/akode/lib/sink.h
+++ b/akode/lib/sink.h
@@ -91,7 +91,7 @@ class AKODE_EXPORT SinkPluginHandler : public PluginHandler, public SinkPlugin {
 public:
     static list<string> listSinkPlugins();
 
-    SinkPluginHandler() : sink_plugin(0) {};
+    SinkPluginHandler() : sink_plugin(nullptr) {};
     SinkPluginHandler(const string name);
     Sink* openSink();
     /*!
@@ -99,7 +99,7 @@ public:
      */
     virtual bool load(const string name);
     virtual void unload();
-    bool isLoaded() { return sink_plugin != 0; };
+    bool isLoaded() { return sink_plugin != nullptr; };
 protected:
     SinkPlugin* sink_plugin;
 };
diff --git a/akode/lib/sinkpluginhandler.cpp b/akode/lib/sinkpluginhandler.cpp
index c310c34..efbb86c 100644
--- a/akode/lib/sinkpluginhandler.cpp
+++ b/akode/lib/sinkpluginhandler.cpp
@@ -37,7 +37,7 @@ list<string> SinkPluginHandler::listSinkPlugins() {
 }
 
 
-SinkPluginHandler::SinkPluginHandler(const string lib) : sink_plugin(0)
+SinkPluginHandler::SinkPluginHandler(const string lib) : sink_plugin(nullptr)
 {
     if (lib.size() > 0)
         load(lib);
@@ -63,7 +63,7 @@ bool SinkPluginHandler::load(const string name)
 }
 
 void SinkPluginHandler::unload() {
-    sink_plugin = 0;
+    sink_plugin = nullptr;
     PluginHandler::unload();
 }
 
@@ -71,7 +71,7 @@ Sink* SinkPluginHandler::openSink() {
     if (sink_plugin)
         return sink_plugin->openSink();
     else
-        return 0;
+        return nullptr;
 }
 
 } //namespace
diff --git a/akode/lib/thread.h b/akode/lib/thread.h
index 0a6cfbf..4d16f45 100644
--- a/akode/lib/thread.h
+++ b/akode/lib/thread.h
@@ -32,7 +32,7 @@ class Mutex {
     friend class Condition;
 public:
     Mutex() {
-        pthread_mutex_init(&mutex, 0);
+        pthread_mutex_init(&mutex, nullptr);
     }
     void lock() {
         pthread_mutex_lock(&mutex);
@@ -47,7 +47,7 @@ private:
 class Condition {
 public:
     Condition() {
-        pthread_cond_init(&cond, 0);
+        pthread_cond_init(&cond, nullptr);
     }
     void wait(Mutex *mutex) {
         pthread_cond_wait(&cond, &mutex->mutex);
diff --git a/akode/lib/volumefilter.h b/akode/lib/volumefilter.h
index 054a589..c12ce0a 100644
--- a/akode/lib/volumefilter.h
+++ b/akode/lib/volumefilter.h
@@ -28,7 +28,7 @@ class VolumeFilter {
     float m_volume;
 public:
     VolumeFilter();
-    bool doFrame(AudioFrame* in, AudioFrame* out = 0);
+    bool doFrame(AudioFrame* in, AudioFrame* out = nullptr);
     void setVolume(float volume);
     float volume() const;
 };
diff --git a/akode/lib/wav_decoder.cpp b/akode/lib/wav_decoder.cpp
index f840165..34fac3b 100644
--- a/akode/lib/wav_decoder.cpp
+++ b/akode/lib/wav_decoder.cpp
@@ -49,7 +49,7 @@ extern "C" { WavDecoderPlugin wav_decoder; }
 
 struct WavDecoder::private_data
 {
-    private_data() : valid(false), buffer_length(0), buffer(0) {};
+    private_data() : valid(false), buffer_length(0), buffer(nullptr) {};
     AudioConfiguration config;
     bool valid;
     long position;
@@ -230,7 +230,7 @@ bool WavDecoder::seekable() {
 }
 
 const AudioConfiguration* WavDecoder::audioConfiguration() {
-    if (!d->valid) return 0;
+    if (!d->valid) return nullptr;
     return &d->config;
 }
 
diff --git a/akode/plugins/alsa_sink/alsa_sink.cpp b/akode/plugins/alsa_sink/alsa_sink.cpp
index 2abad2e..c048728 100644
--- a/akode/plugins/alsa_sink/alsa_sink.cpp
+++ b/akode/plugins/alsa_sink/alsa_sink.cpp
@@ -45,7 +45,7 @@ extern "C" { ALSASinkPlugin alsa_sink; }
 
 struct ALSASink::private_data
 {
-    private_data() : pcm_playback(0), buffer(0), error(false), can_pause(false) {};
+    private_data() : pcm_playback(nullptr), buffer(nullptr), error(false), can_pause(false) {};
 
     snd_pcm_t *pcm_playback;
 
@@ -92,7 +92,7 @@ void ALSASink::close()
         snd_pcm_drain(m_data->pcm_playback);
         snd_pcm_close(m_data->pcm_playback);
     }
-    m_data->pcm_playback = 0;
+    m_data->pcm_playback = nullptr;
     m_data->error = false;
 }
 
@@ -171,7 +171,7 @@ found_format:
         return -1;
 
     unsigned int rate = config->sample_rate;
-    snd_pcm_hw_params_set_rate_near(m_data->pcm_playback, hw, &rate, 0);
+    snd_pcm_hw_params_set_rate_near(m_data->pcm_playback, hw, &rate, nullptr);
     if (m_data->config.sample_rate != rate) {
         m_data->config.sample_rate = rate;
         res = 1;
@@ -182,7 +182,7 @@ found_format:
 
     m_data->fragmentSize = 1024;
     snd_pcm_uframes_t period_size = m_data->fragmentSize / (wid*config->channels);
-    snd_pcm_hw_params_set_period_size_near(m_data->pcm_playback, hw, &period_size, 0);
+    snd_pcm_hw_params_set_period_size_near(m_data->pcm_playback, hw, &period_size, nullptr);
 
     m_data->fragmentSize = period_size * (wid*config->channels);
 //     std::cerr << "akode: ALSA fragment-size: " << m_data->fragmentSize << "\n";
diff --git a/akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp b/akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp
index 823e63b..1398260 100644
--- a/akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp
+++ b/akode/plugins/ffmpeg_decoder/ffmpeg_decoder.cpp
@@ -288,7 +288,7 @@ void FFMPEGDecoder::closeFile() {
         avcodec_close( d->audioStream_ctx );
         d->audioStream_ctx = nullptr;
 #endif
-        d->codec = 0;
+        d->codec = nullptr;
     }
     if( d->ic ) {
         // make sure av_close_input_file doesn't actually close the file
@@ -296,7 +296,7 @@ void FFMPEGDecoder::closeFile() {
         d->ic->iformat->flags = d->ic->iformat->flags | AVFMT_NOFILE;
 #endif
         avformat_close_input( &d->ic );
-        d->ic = 0;
+        d->ic = nullptr;
     }
     if (d->src) {
         d->src->close();
@@ -319,7 +319,7 @@ bool FFMPEGDecoder::readPacket() {
 #endif
             d->packet = nullptr;
             d->packetSize = 0;
-            d->packetData = 0;
+            d->packetData = nullptr;
             return false;
         }
         if (d->packet->stream_index == d->audioStream) {
diff --git a/akode/plugins/jack_sink/jack_sink.cpp b/akode/plugins/jack_sink/jack_sink.cpp
index d875eaa..614c0e7 100644
--- a/akode/plugins/jack_sink/jack_sink.cpp
+++ b/akode/plugins/jack_sink/jack_sink.cpp
@@ -39,7 +39,7 @@ extern "C" { JACKSinkPlugin jack_sink; }
 
 struct JACKSink::private_data
 {
-    private_data() : left_port(0), right_port(0), client(0), error(false), sample_rate(0), buffer(8),pos(0) {};
+    private_data() : left_port(nullptr), right_port(nullptr), client(nullptr), error(false), sample_rate(0), buffer(8),pos(0) {};
 //    jack_port_t *input_port;
     jack_port_t *left_port;
     jack_port_t *right_port;
@@ -59,7 +59,7 @@ static int process (jack_nframes_t nframes, void *arg)
 {
     JACKSink::private_data *m_data = (JACKSink::private_data*)arg;
 
-    jack_default_audio_sample_t *out1=0, *out2=0;
+    jack_default_audio_sample_t *out1=nullptr, *out2=nullptr;
 
     if (m_data->left_port)
         out1 = (jack_default_audio_sample_t *) jack_port_get_buffer (m_data->left_port, nframes);
@@ -103,7 +103,7 @@ JACKSink::JACKSink()
 
 bool JACKSink::open()
 {
-    m_data->client = jack_client_open("akode_client", JackNoStartServer, 0);
+    m_data->client = jack_client_open("akode_client", JackNoStartServer, nullptr);
     if (!m_data->client) {
         m_data->error = true;
         return false;
diff --git a/akode/plugins/mpc_decoder/mpc_decoder.cpp b/akode/plugins/mpc_decoder/mpc_decoder.cpp
index cf314b9..deb3437 100644
--- a/akode/plugins/mpc_decoder/mpc_decoder.cpp
+++ b/akode/plugins/mpc_decoder/mpc_decoder.cpp
@@ -70,7 +70,7 @@ extern "C" { MPCDecoderPlugin mpc_decoder; }
 struct MPCDecoder::private_data
 {
     private_data(File *src) : reader(src,true), decoder(&reader),
-                              initialized(false), buffer(0), position(0),
+                              initialized(false), buffer(nullptr), position(0),
                               eof(false), error(false)
     {};
     MPC_reader_impl reader;
diff --git a/akode/plugins/mpeg_decoder/mpeg_decoder.cpp b/akode/plugins/mpeg_decoder/mpeg_decoder.cpp
index 715fcfa..d3ab250 100644
--- a/akode/plugins/mpeg_decoder/mpeg_decoder.cpp
+++ b/akode/plugins/mpeg_decoder/mpeg_decoder.cpp
@@ -178,7 +178,7 @@ bool MPEGDecoder::moreData(bool flush)
     mad_stream *stream = &m_data->stream;
 
     long rem = 0;
-    if (stream->next_frame != 0 && !flush) {
+    if (stream->next_frame && !flush) {
         rem = stream->bufend - stream->next_frame;
         memmove(m_data->filebuffer, stream->next_frame, rem);
     }
@@ -327,7 +327,7 @@ bool MPEGDecoder::prepare()
 {
     skipID3v2();
     // initialize stream
-    if (m_data->stream.buffer == 0) moreData();
+    if (!m_data->stream.buffer) moreData();
 
     if (sync()) {
         m_data->initialized = true;
@@ -398,7 +398,7 @@ bool MPEGDecoder::readFrame(AudioFrame* frame)
         m_data->metaframe_filter(false);
     }
     else {
-        if (m_data->stream.buffer == 0 ||
+        if (!m_data->stream.buffer ||
             m_data->stream.error==MAD_ERROR_BUFLEN ||
             m_data->stream.error==MAD_ERROR_LOSTSYNC) if (!moreData()) return false;
 
@@ -565,7 +565,7 @@ bool MPEGDecoder::seek(long pos) {
 }
 
 const AudioConfiguration* MPEGDecoder::audioConfiguration() {
-    if (!m_data->initialized) return 0;
+    if (!m_data->initialized) return nullptr;
     return &m_data->config;
 }
 
diff --git a/akode/plugins/oss_sink/oss_sink.cpp b/akode/plugins/oss_sink/oss_sink.cpp
index 758bcf9..b2fe7b1 100644
--- a/akode/plugins/oss_sink/oss_sink.cpp
+++ b/akode/plugins/oss_sink/oss_sink.cpp
@@ -42,7 +42,7 @@ extern "C" { OSSSinkPlugin oss_sink; }
 
 struct OSSSink::private_data
 {
-    private_data() : audio_fd(-1), device(0), valid(false), buffer(0), buffer_length(0) {};
+    private_data() : audio_fd(-1), device(nullptr), valid(false), buffer(nullptr), buffer_length(0) {};
     int audio_fd;
 
     const char *device;
@@ -58,7 +58,7 @@ static const char *_devices[] = {
     "/dev/dsp",
     "/dev/sound/dsp0",
     "/dev/audio",
-    0
+    nullptr
 };
 
 OSSSink::OSSSink()
@@ -117,7 +117,7 @@ void OSSSink::close() {
     if (d->audio_fd != -1) ::close(d->audio_fd);
     d->audio_fd = -1;
     delete d->buffer;
-    d->buffer = 0;
+    d->buffer = nullptr;
     d->buffer_length = 0;
     d->valid = false;
 }
diff --git a/akode/plugins/pulse_sink/pulse_sink.cpp b/akode/plugins/pulse_sink/pulse_sink.cpp
index c2e33be..d9cbc71 100644
--- a/akode/plugins/pulse_sink/pulse_sink.cpp
+++ b/akode/plugins/pulse_sink/pulse_sink.cpp
@@ -39,7 +39,7 @@ extern "C" { PulseSinkPlugin pulse_sink; }
 
 struct PulseSink::private_data
 {
-    private_data() : server(0), error(false) {};
+    private_data() : server(nullptr), error(false) {};
 
     pa_simple *server;
     pa_sample_spec sample_spec;
@@ -59,7 +59,7 @@ PulseSink::PulseSink()
 
 bool PulseSink::open() {
     int error = 0;
-    m_data->server = pa_simple_new(0, "akode-client", PA_STREAM_PLAYBACK, 0, "", &m_data->sample_spec, 0, 0, &error );
+    m_data->server = pa_simple_new(nullptr, "akode-client", PA_STREAM_PLAYBACK, nullptr, "", &m_data->sample_spec, nullptr, nullptr, &error );
     if (!m_data->server || error != 0) {
         m_data->error = true;
         close();
@@ -74,7 +74,7 @@ bool PulseSink::open() {
 void PulseSink::close() {
     if (m_data->server) {
         pa_simple_free(m_data->server);
-        m_data->server = 0;
+        m_data->server = nullptr;
     }
 }
 
diff --git a/akode/plugins/sun_sink/sun_sink.cpp b/akode/plugins/sun_sink/sun_sink.cpp
index c8b6c57..872ec0c 100644
--- a/akode/plugins/sun_sink/sun_sink.cpp
+++ b/akode/plugins/sun_sink/sun_sink.cpp
@@ -39,7 +39,7 @@ extern "C" { SunSinkPlugin sun_sink; }
 
 struct SunSink::private_data
 {
-    private_data() : audio_fd(-1), device(0), valid(false) {};
+    private_data() : audio_fd(-1), device(nullptr), valid(false) {};
     int audio_fd;
     audio_info_t auinfo;
 
diff --git a/akode/plugins/xiph_decoder/flac113_decoder.cpp b/akode/plugins/xiph_decoder/flac113_decoder.cpp
index 35bd22f..75b1209 100644
--- a/akode/plugins/xiph_decoder/flac113_decoder.cpp
+++ b/akode/plugins/xiph_decoder/flac113_decoder.cpp
@@ -89,7 +89,7 @@ extern "C" { FLACDecoderPlugin flac_decoder; }
 extern "C" { FLACDecoderPlugin oggflac_decoder; }
 
 struct FLACDecoder::private_data {
-    private_data() : decoder(0), valid(false), out(0), source(0), eof(false), error(false) {};
+    private_data() : decoder(nullptr), valid(false), out(nullptr), source(nullptr), eof(false), error(false) {};
 
     FLAC__StreamDecoder *decoder;
     const FLAC__StreamMetadata_StreamInfo* si;
@@ -210,7 +210,7 @@ static FLAC__StreamDecoderWriteStatus write_callback(
         outFrame->channel_config = aKode::MultiChannel;
 
     for(int i = 0; i<channels; i++) {
-        if (outFrame->data[i] == 0) break;
+        if (!outFrame->data[i]) break;
         if (bits<=8) {
             int8_t** data = (int8_t**)outFrame->data;
             for(long j=0; j<frameSize; j++)
@@ -287,7 +287,7 @@ const AudioConfiguration* FLACDecoder::audioConfiguration() {
 
 FLACDecoder::FLACDecoder(File* src) {
     m_data = new private_data;
-    m_data->out = 0;
+    m_data->out = nullptr;
     m_data->decoder = FLAC__stream_decoder_new();
     m_data->source = src;
     m_data->source->openRO();
@@ -321,15 +321,15 @@ bool FLACDecoder::readFrame(AudioFrame* frame) {
     if (m_data->out) { // Handle spurious callbacks
         frame->freeSpace();
         *frame = *m_data->out; // copy
-        m_data->out->data = 0; // nullify, don't free!
+        m_data->out->data = nullptr; // nullify, don't free!
         delete m_data->out;
-        m_data->out = 0;
+        m_data->out = nullptr;
         return true;
     }
     m_data->valid = false;
     m_data->out = frame;
     bool ret = FLAC__stream_decoder_process_single(m_data->decoder);
-    m_data->out = 0;
+    m_data->out = nullptr;
     if (ret && m_data->valid) {
         frame->pos = position();
         return true;
diff --git a/akode/plugins/xiph_decoder/flac_decoder.cpp b/akode/plugins/xiph_decoder/flac_decoder.cpp
index 130e2a1..ceb3edc 100644
--- a/akode/plugins/xiph_decoder/flac_decoder.cpp
+++ b/akode/plugins/xiph_decoder/flac_decoder.cpp
@@ -87,7 +87,7 @@ extern "C" { OggFLACDecoderPlugin oggflac_decoder; }
 #endif
 
 struct FLACDecoder::private_data {
-    private_data() : decoder(0), valid(false), out(0), source(0), eof(false), error(false) {};
+    private_data() : decoder(nullptr), valid(false), out(nullptr), source(nullptr), eof(false), error(false) {};
 
     FLAC__SeekableStreamDecoder *decoder;
     const FLAC__StreamMetadata_StreamInfo* si;
@@ -106,7 +106,7 @@ struct FLACDecoder::private_data {
 
 #ifdef HAVE_LIBOGGFLAC
 struct OggFLACDecoder::private_data {
-    private_data() : decoder(0), valid(false), out(0), source(0), eof(false), error(false) {};
+    private_data() : decoder(nullptr), valid(false), out(nullptr), source(nullptr), eof(false), error(false) {};
 
     OggFLAC__SeekableStreamDecoder *decoder;
     const FLAC__StreamMetadata_StreamInfo* si;
@@ -299,7 +299,7 @@ static FLAC__StreamDecoderWriteStatus write_callback(
 	outFrame->channel_config = aKode::MultiChannel;
 
     for(int i = 0; i<channels; i++) {
-	if (outFrame->data[i] == 0) break;
+	if (!outFrame->data[i]) break;
         if (bits<=8) {
             int8_t** data = (int8_t**)outFrame->data;
             for(long j=0; j<frameSize; j++)
@@ -386,7 +386,7 @@ const AudioConfiguration* OggFLACDecoder::audioConfiguration() {
 
 FLACDecoder::FLACDecoder(File* src) {
     m_data = new private_data;
-    m_data->out = 0;
+    m_data->out = nullptr;
     m_data->decoder = FLAC__seekable_stream_decoder_new();
     m_data->source = src;
     m_data->source->openRO();
@@ -420,7 +420,7 @@ FLACDecoder::~FLACDecoder() {
 #ifdef HAVE_LIBOGGFLAC
 OggFLACDecoder::OggFLACDecoder(File* src) {
     m_data = new private_data;
-    m_data->out = 0;
+    m_data->out = nullptr;
     m_data->decoder = OggFLAC__seekable_stream_decoder_new();
     m_data->source = src;
     m_data->source->openRO();
@@ -458,15 +458,15 @@ bool FLACDecoder::readFrame(AudioFrame* frame) {
     if (m_data->out) { // Handle spurious callbacks
         frame->freeSpace();
         *frame = *m_data->out; // copy
-        m_data->out->data = 0; // nullify, don't free!
+        m_data->out->data = nullptr; // nullify, don't free!
         delete m_data->out;
-        m_data->out = 0;
+        m_data->out = nullptr;
         return true;
     }
     m_data->valid = false;
     m_data->out = frame;
     bool ret = FLAC__seekable_stream_decoder_process_single(m_data->decoder);
-    m_data->out = 0;
+    m_data->out = nullptr;
     if (ret && m_data->valid) {
         frame->pos = position();
         return true;
@@ -493,15 +493,15 @@ bool OggFLACDecoder::readFrame(AudioFrame* frame) {
     if (m_data->out) { // Handle spurious callbacks
         frame->freeSpace();
         *frame = *m_data->out; // copy
-        m_data->out->data = 0; // nullify, don't free!
+        m_data->out->data = nullptr; // nullify, don't free!
         delete m_data->out;
-        m_data->out = 0;
+        m_data->out = nullptr;
         return true;
     }
     m_data->valid = false;
     m_data->out = frame;
     bool ret = OggFLAC__seekable_stream_decoder_process_single(m_data->decoder);
-    m_data->out = 0;
+    m_data->out = nullptr;
     if (ret && m_data->valid) {
         frame->pos = position();
         return true;
diff --git a/akode/plugins/xiph_decoder/speex_decoder.cpp b/akode/plugins/xiph_decoder/speex_decoder.cpp
index 5fc2e4f..7b6b340 100644
--- a/akode/plugins/xiph_decoder/speex_decoder.cpp
+++ b/akode/plugins/xiph_decoder/speex_decoder.cpp
@@ -92,11 +92,11 @@ struct SpeexDecoder::private_data
 SpeexDecoder::SpeexDecoder(File *src) {
     m_data = new private_data;
     m_data->src = src;
-    m_data->out_buffer = 0;
+    m_data->out_buffer = nullptr;
 
     ogg_sync_init(&m_data->sync);
 
-    m_data->dec_state = 0;
+    m_data->dec_state = nullptr;
     SpeexStereoState initstereo = SPEEX_STEREO_STATE_INIT;
     m_data->stereo = initstereo;
 
diff --git a/akode/plugins/xiph_decoder/vorbis_decoder.cpp b/akode/plugins/xiph_decoder/vorbis_decoder.cpp
index 28b9447..c017136 100644
--- a/akode/plugins/xiph_decoder/vorbis_decoder.cpp
+++ b/akode/plugins/xiph_decoder/vorbis_decoder.cpp
@@ -58,7 +58,7 @@ static ov_callbacks _callbacks = {_read, _seek, _close, _tell};
 bool VorbisDecoderPlugin::canDecode(File* src) {
     OggVorbis_File vf;
     src->openRO();
-    int r = ov_test_callbacks(src, &vf, 0, 0, _callbacks);
+    int r = ov_test_callbacks(src, &vf, nullptr, 0, _callbacks);
     ov_clear(&vf);
     src->close();
     return r==0;
@@ -147,7 +147,7 @@ static void setAudioConfiguration(AudioConfiguration *config, vorbis_info *vi)
 bool VorbisDecoder::openFile() {
     int status;
 
-    status = ov_open_callbacks(m_data->src, m_data->vf, 0, 0, _callbacks);
+    status = ov_open_callbacks(m_data->src, m_data->vf, nullptr, 0, _callbacks);
     if (status != 0) goto fault;
 
     m_data->vi = ov_info(m_data->vf, -1);
@@ -265,7 +265,7 @@ bool VorbisDecoder::seek(long pos) {
 }
 
 const AudioConfiguration* VorbisDecoder::audioConfiguration() {
-    if (!m_data->initialized) return 0;
+    if (!m_data->initialized) return nullptr;
     return &m_data->config;
 }
 
diff --git a/akode/plugins/xiph_decoder/xiph_decoder.cpp b/akode/plugins/xiph_decoder/xiph_decoder.cpp
index 841656d..1065595 100644
--- a/akode/plugins/xiph_decoder/xiph_decoder.cpp
+++ b/akode/plugins/xiph_decoder/xiph_decoder.cpp
@@ -76,7 +76,7 @@ Decoder* XiphDecoderPlugin::openDecoder(File* src) {
         return speex_decoder.openDecoder(src);
     else
 #endif
-        return 0;
+        return nullptr;
 }
 
 extern "C" { XiphDecoderPlugin xiph_decoder; }
-- 
cgit v1.2.3

