mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-12 08:36:43 +02:00
Add control functions to PcmStream
-move json parsing to Server class -improve error handling with the new ErrorCode object
This commit is contained in:
parent
78c78370ab
commit
077a6fc1a4
12 changed files with 629 additions and 152 deletions
|
@ -44,6 +44,22 @@ public:
|
|||
void start() override;
|
||||
void stop() override;
|
||||
|
||||
// Setter for properties
|
||||
void setShuffle(bool shuffle, ResultHandler handler) override;
|
||||
void setLoopStatus(LoopStatus status, ResultHandler handler) override;
|
||||
void setVolume(uint16_t volume, ResultHandler handler) override;
|
||||
void setRate(float rate, ResultHandler handler) override;
|
||||
|
||||
// Control commands
|
||||
void setPosition(std::chrono::milliseconds position, ResultHandler handler) override;
|
||||
void seek(std::chrono::milliseconds offset, ResultHandler handler) override;
|
||||
void next(ResultHandler handler) override;
|
||||
void previous(ResultHandler handler) override;
|
||||
void pause(ResultHandler handler) override;
|
||||
void playPause(ResultHandler handler) override;
|
||||
void stop(ResultHandler handler) override;
|
||||
void play(ResultHandler handler) override;
|
||||
|
||||
protected:
|
||||
/// Implementation of PcmListener
|
||||
void onMetadataChanged(const PcmStream* pcmStream, const Metatags& metadata) override;
|
||||
|
@ -54,12 +70,9 @@ protected:
|
|||
void onResync(const PcmStream* pcmStream, double ms) override;
|
||||
|
||||
protected:
|
||||
void setProperty(const jsonrpcpp::Request& request, const StreamControl::OnResponse& response_handler) override;
|
||||
void control(const jsonrpcpp::Request& request, const StreamControl::OnResponse& response_handler) override;
|
||||
|
||||
std::vector<std::shared_ptr<PcmStream>> streams_;
|
||||
std::shared_ptr<PcmStream> active_stream_;
|
||||
std::mutex mutex_;
|
||||
std::recursive_mutex mutex_;
|
||||
std::unique_ptr<Resampler> resampler_;
|
||||
bool first_read_;
|
||||
std::chrono::time_point<std::chrono::steady_clock> next_tick_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue