pianod2
multisource multiuser scriptable networked music player
mediaparameters.h
Go to the documentation of this file.
1 
9 #pragma once
10 
11 #include <config.h>
12 
13 #include <string>
14 
16 
17 // #include "fundamentals.h"
18 #include "ownership.h"
19 #include "datastore.h"
20 
21 
22 namespace Media {
24  enum class ProxyMode {
25  None,
26  Donor,
27  Recipient
28  };
29 
30  enum class PersistenceMode {
31  Temporary,
32  Loaded,
33  Remember,
34  Restore,
35  };
36 
40  bool userSpecified = false; // For private use by parameter parser.
41  public:
43  User *owner = nullptr;
46  std::string name;
47  bool waitForReady = false;
48 
49  SourceParameters (void) { };
50  SourceParameters (Ownership::Type perm, User *user = nullptr);
52  const std::string &sourcename);
54  virtual ~SourceParameters ();
55  virtual bool persist (UserData::JSONData &dest) const;
56 
58  void extractOptions (const Parsnip::Data &options);
59  private:
60  void extract (const Parsnip::Data &options);
61  };
62 }
63 
Source parameter manager.
Definition: mediaparameters.h:39
bool waitForReady
Wait on initialization. Flag never persisted.
Definition: mediaparameters.h:47
User * owner
Definition: mediaparameters.h:43
SourceParameters(void)
Definition: mediaparameters.h:49
std::string name
Definition: mediaparameters.h:46
static const Parsnip::OptionParser::Definitions & parser_definitions()
Definition: mediaparameters.cpp:42
void extract(const Parsnip::Data &options)
Definition: mediaparameters.cpp:62
virtual bool persist(UserData::JSONData &dest) const
Definition: mediaparameters.cpp:105
ProxyMode song_proxy
Definition: mediaparameters.h:42
bool userSpecified
Definition: mediaparameters.h:40
Ownership::Type permissions
Definition: mediaparameters.h:44
virtual ~SourceParameters()
Definition: mediaparameters.cpp:133
PersistenceMode persistence
Persistence state.
Definition: mediaparameters.h:45
void extractOptions(const Parsnip::Data &options)
Definition: mediaparameters.cpp:57
Type
Access levels for an object.
Definition: fundamentals.h:355
@ PRIVATE
Visible by owner only.
Generic data type.
Definition: parsnip.h:81
std::vector< const char * > Definitions
Definition: parsnip_command.h:90
Store key-value pairs of string keys & mixed types using Parsnip::Data.
Definition: datastore.h:76
Data about each user.
Definition: user.h:53
User data storage mechanism.
Media source, source parameters and player interfaces.
Definition: connection.h:22
PersistenceMode
Definition: mediaparameters.h:30
@ Temporary
Provided from command line, store neither settings nor indexes.
@ Restore
Store it, store indexes, and automatically restore on startup.
@ Remember
Store it, store indexes, but manually restore only.
@ Loaded
Values loaded from stored data, do not update settings but do update indexes.
ProxyMode
How a source participates in track-source substitutions;.
Definition: mediaparameters.h:24
@ Recipient
Source wants its tracks replaced when possible.
@ None
Source does not participate.
@ Donor
Source provides substitute tracks.
Access control for objects.
Parsnip command-line parsing.