diff --git a/src/output/mist_out.cpp b/src/output/mist_out.cpp index 697bbdfd..a75aefcc 100644 --- a/src/output/mist_out.cpp +++ b/src/output/mist_out.cpp @@ -18,7 +18,7 @@ int main(int argc, char * argv[]) { } conf.activate(); if (mistOut::listenMode()){ - conf.serveForkedSocket(spawnForked); + mistOut::listener(conf, spawnForked); }else{ Socket::Connection S(fileno(stdout),fileno(stdin) ); mistOut tmp(S); diff --git a/src/output/output.cpp b/src/output/output.cpp index 8bda38f1..a42128c2 100644 --- a/src/output/output.cpp +++ b/src/output/output.cpp @@ -55,6 +55,10 @@ namespace Mist{ } sentHeader = false; } + + void Output::listener(Util::Config & conf, int (*callback)(Socket::Connection & S)){ + conf.serveForkedSocket(callback); + } void Output::setBlocking(bool blocking){ isBlocking = blocking; diff --git a/src/output/output.h b/src/output/output.h index eb0f5222..3d0da809 100644 --- a/src/output/output.h +++ b/src/output/output.h @@ -41,7 +41,7 @@ namespace Mist { static void init(Util::Config * cfg); static JSON::Value capa; //non-virtual generic functions - int run(); + virtual int run(); virtual void stats(bool force = false); void seek(unsigned long long pos); bool seek(unsigned int tid, unsigned long long pos, bool getNextKey = false); @@ -62,6 +62,7 @@ namespace Mist { bool prepareNext(); virtual void dropTrack(uint32_t trackId, std::string reason, bool probablyBad = true); virtual void onRequest(); + static void listener(Util::Config & conf, int (*callback)(Socket::Connection & S)); virtual void initialSeek(); virtual bool onFinish() { return false;