From 374c9fd0ff7582f7cf84adf687c81e6830e9deda Mon Sep 17 00:00:00 2001 From: Thulinma Date: Thu, 27 Oct 2016 10:52:11 +0200 Subject: [PATCH] Listener externalized --- src/output/mist_out.cpp | 2 +- src/output/output.cpp | 4 ++++ src/output/output.h | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) 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;