pianod2
multisource multiuser scriptable networked music player
sources.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <config.h>
12 
13 #include <string>
14 #include <vector>
15 
17 
18 #include "interpreter.h"
19 
20 namespace UserData {
21  class JSONData;
22  class DataStore;
23 }
24 class User;
25 
26 namespace UserData {
27  class DataStore;
28 }
29 
30 namespace SourceName {
31  extern const char *Manager;
32 
33 #ifdef WITH_PANDORA
34  extern const char *Pandora;
35 #endif
36 
37 #ifdef WITH_TONEGENERATOR
38  extern const char *ToneGenerator;
39 #endif
40 
41 #ifdef WITH_FILESYSTEM
42  extern const char *FileSystem;
43 #endif
44 }
45 
46 namespace Sources {
47  const std::vector<std::string> &sourceKindNames ();
48  bool isSource (const std::string &origin);
49  void registerCommands (PianodParser *parser);
50  void registerInterpreters (PianodDispatcher &dispatcher);
51  void addRequestNames (PianodSchema &schema);
52  void restore (UserData::DataStore *source_data, User *owner);
53  void report (int verbose);
54 }
55 
Dispatcher based on Parsnip template, customized for pianod by adding help support.
Definition: interpreter.h:80
Command line parser based on Parsnip, but with some help support added for pianod.
Definition: interpreter.h:48
Definition: interpreter.h:57
Storage mechanism for user data.
Definition: datastore.h:56
Store key-value pairs of string keys & mixed types using Parsnip::Data.
Definition: datastore.h:76
Data about each user.
Definition: user.h:53
pianod command processing.
Pandora source, player and related datatype specializations.
Definition: pandora.h:32
Definition: sources.cpp:36
const char * Manager
Definition: sources.cpp:37
Interface between the general pianod code and the individual sources, which may or may not be present...
Definition: sources.cpp:55
const std::vector< std::string > & sourceKindNames()
Get a list of source type names.
Definition: sources.cpp:70
void registerCommands(PianodParser *parser)
Register source parser definitions with the master parser.
Definition: sources.cpp:101
bool isSource(const std::string &name)
Check if a name is a source type name.
Definition: sources.cpp:90
void registerInterpreters(PianodDispatcher &dispatcher)
Definition: sources.cpp:115
void report(int)
Report sources, libraries they use and their versions.
Definition: sources.cpp:164
void addRequestNames(PianodSchema &schema)
Definition: sources.cpp:127
void restore(UserData::DataStore *source_data, User *owner)
Restore a source.
Definition: sources.cpp:142
Classes for playing test tones.
Definition: tonegen.cpp:20
User data storage.
Definition: sources.h:20
Parsnip command-line parsing.