pianod2
multisource multiuser scriptable networked music player
conductor.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <config.h>
12 
13 #include <string>
14 
15 #include <football/football.h>
16 
17 #include "fundamentals.h"
18 #include "connection.h"
19 #include "audio/audiooutput.h"
20 #include "mediaplayer.h"
21 
23 namespace Orchestra {
24  extern void reportLibrariesAndVersions (int verbose);
25 
28  public:
30  };
31 
34  public:
35  cURLInitializer ();
37  };
38 
41  class Conductor {
42  private:
43  volatile bool shutdown_requested = false;
44  PianodService *service = nullptr;
49 
50  public:
51  Conductor (std::string config_dir, FB_SERVICE_OPTIONS service_options,
52  AudioSettings audio);
53  ~Conductor ();
54  void conduct ();
55  void cleanUp ();
57  inline void shutdown () { shutdown_requested = true; };
58  };
59 }
60 
Class to abstract away details of audio output system is in use.
Initialize the audio output libraries; uninitialize on destruction.
Definition: audiooutput.h:58
Initialize the media engines; uninitialize on destruction.
Definition: mediaplayer.h:31
Manage daemon initialization and operation.
Definition: conductor.h:41
void cleanUp()
Definition: conductor.cpp:200
cURLInitializer init_curl
Definition: conductor.h:46
void shutdown()
Request the daemon exit its run loop and shut down.
Definition: conductor.h:57
PianodService * service
Definition: conductor.h:44
Media::Initializer initter_media
Definition: conductor.h:48
Conductor(std::string config_dir, FB_SERVICE_OPTIONS service_options, AudioSettings audio)
Initialize the daemon.
Definition: conductor.cpp:86
Audio::Initializer initter_audio
Definition: conductor.h:47
void conduct()
Run the daemon.
Definition: conductor.cpp:173
volatile bool shutdown_requested
Definition: conductor.h:43
GCryptInitializer initter_gcrypt
Definition: conductor.h:45
~Conductor()
Definition: conductor.cpp:168
Manage crypto library initialization and deinitialization.
Definition: conductor.h:27
GCryptInitializer()
Initialize libgcrypt.
Definition: conductor.cpp:63
Manage transport layer security initialization and deinitialization.
Definition: conductor.h:33
~cURLInitializer()
Definition: conductor.cpp:78
cURLInitializer()
Initialize cURL.
Definition: conductor.cpp:72
Pianod service, a customized FootballService for Pianod connections.
Definition: connection.h:115
Pianod specializations of Football connections & services.
Football public C++ declarations.
Essential data structures and support.
Public interface for media players.
Daemon initialization, cleanup and main run loop.
Definition: conductor.cpp:55
void reportLibrariesAndVersions(int verbose)
Report libraries in use and their versions.
Definition: conductor.cpp:58
Audio output device & driver parameters.
Definition: fundamentals.h:52
Service options are passed to a new service, defining its behavior.
Definition: fb_public.h:75