mirror of
https://github.com/badaix/snapcast.git
synced 2025-05-15 01:56:40 +02:00
stream is shared_ptr
This commit is contained in:
parent
0c5646679e
commit
3fe88b7440
10 changed files with 17 additions and 17 deletions
|
@ -92,7 +92,7 @@ void Controller::onMessageReceived(ClientConnection* connection, const msg::Base
|
|||
|
||||
logO << "Codec: " << headerChunk_->codec << "\n";
|
||||
decoder_.reset(nullptr);
|
||||
stream_.reset(nullptr);
|
||||
stream_ = nullptr;
|
||||
player_.reset(nullptr);
|
||||
|
||||
if (headerChunk_->codec == "pcm")
|
||||
|
@ -109,15 +109,15 @@ void Controller::onMessageReceived(ClientConnection* connection, const msg::Base
|
|||
sampleFormat_ = decoder_->setHeader(headerChunk_.get());
|
||||
logState << "sampleformat: " << sampleFormat_.rate << ":" << sampleFormat_.bits << ":" << sampleFormat_.channels << "\n";
|
||||
|
||||
stream_.reset(new Stream(sampleFormat_));
|
||||
stream_ = make_shared<Stream>(sampleFormat_);
|
||||
stream_->setBufferLen(serverSettings_->getBufferMs() - latency_);
|
||||
|
||||
#ifdef HAS_ALSA
|
||||
player_.reset(new AlsaPlayer(pcmDevice_, stream_.get()));
|
||||
player_.reset(new AlsaPlayer(pcmDevice_, stream_));
|
||||
#elif HAS_OPENSL
|
||||
player_.reset(new OpenslPlayer(pcmDevice_, stream_.get()));
|
||||
player_.reset(new OpenslPlayer(pcmDevice_, stream_));
|
||||
#elif HAS_COREAUDIO
|
||||
player_.reset(new CoreAudioPlayer(pcmDevice_, stream_.get()));
|
||||
player_.reset(new CoreAudioPlayer(pcmDevice_, stream_));
|
||||
#else
|
||||
throw SnapException("No audio player support");
|
||||
#endif
|
||||
|
|
|
@ -66,7 +66,7 @@ private:
|
|||
PcmDevice pcmDevice_;
|
||||
int latency_;
|
||||
std::unique_ptr<ClientConnection> clientConnection_;
|
||||
std::unique_ptr<Stream> stream_;
|
||||
std::shared_ptr<Stream> stream_;
|
||||
std::unique_ptr<Decoder> decoder_;
|
||||
std::unique_ptr<Player> player_;
|
||||
std::shared_ptr<msg::ServerSettings> serverSettings_;
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
|
||||
using namespace std;
|
||||
|
||||
AlsaPlayer::AlsaPlayer(const PcmDevice& pcmDevice, Stream* stream) :
|
||||
AlsaPlayer::AlsaPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream) :
|
||||
Player(pcmDevice, stream), handle_(NULL), buff_(NULL)
|
||||
{
|
||||
}
|
||||
|
|
|
@ -30,7 +30,7 @@
|
|||
class AlsaPlayer : public Player
|
||||
{
|
||||
public:
|
||||
AlsaPlayer(const PcmDevice& pcmDevice, Stream* stream);
|
||||
AlsaPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
|
||||
virtual ~AlsaPlayer();
|
||||
|
||||
/// Set audio volume in range [0..1]
|
||||
|
|
|
@ -31,7 +31,7 @@ void callback(void *custom_data, AudioQueueRef queue, AudioQueueBufferRef buffer
|
|||
}
|
||||
|
||||
|
||||
CoreAudioPlayer::CoreAudioPlayer(const PcmDevice& pcmDevice, Stream* stream) :
|
||||
CoreAudioPlayer::CoreAudioPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream) :
|
||||
Player(pcmDevice, stream),
|
||||
ms_(100),
|
||||
pubStream_(stream)
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
class CoreAudioPlayer : public Player
|
||||
{
|
||||
public:
|
||||
CoreAudioPlayer(const PcmDevice& pcmDevice, Stream* stream);
|
||||
CoreAudioPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
|
||||
virtual ~CoreAudioPlayer();
|
||||
|
||||
void playerCallback(AudioQueueRef queue, AudioQueueBufferRef bufferRef);
|
||||
|
@ -49,7 +49,7 @@ protected:
|
|||
size_t ms_;
|
||||
size_t frames_;
|
||||
size_t buff_size_;
|
||||
Stream* pubStream_;
|
||||
std::shared_ptr<Stream> pubStream_;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -43,7 +43,7 @@ static void bqPlayerCallback(SLAndroidSimpleBufferQueueItf bq, void *context)
|
|||
|
||||
|
||||
|
||||
OpenslPlayer::OpenslPlayer(const PcmDevice& pcmDevice, Stream* stream) :
|
||||
OpenslPlayer::OpenslPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream) :
|
||||
Player(pcmDevice, stream),
|
||||
engineObject(NULL),
|
||||
engineEngine(NULL),
|
||||
|
|
|
@ -35,7 +35,7 @@ typedef int (*AndroidAudioCallback)(short *buffer, int num_samples);
|
|||
class OpenslPlayer : public Player
|
||||
{
|
||||
public:
|
||||
OpenslPlayer(const PcmDevice& pcmDevice, Stream* stream);
|
||||
OpenslPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
|
||||
virtual ~OpenslPlayer();
|
||||
|
||||
virtual void start();
|
||||
|
@ -69,7 +69,7 @@ protected:
|
|||
size_t ms_;
|
||||
size_t frames_;
|
||||
size_t buff_size;
|
||||
Stream* pubStream_;
|
||||
std::shared_ptr<Stream> pubStream_;
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
using namespace std;
|
||||
|
||||
|
||||
Player::Player(const PcmDevice& pcmDevice, Stream* stream) :
|
||||
Player::Player(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream) :
|
||||
active_(false),
|
||||
stream_(stream),
|
||||
pcmDevice_(pcmDevice),
|
||||
|
|
|
@ -36,7 +36,7 @@
|
|||
class Player
|
||||
{
|
||||
public:
|
||||
Player(const PcmDevice& pcmDevice, Stream* stream);
|
||||
Player(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
|
||||
virtual ~Player();
|
||||
|
||||
/// Set audio volume in range [0..1]
|
||||
|
@ -59,7 +59,7 @@ protected:
|
|||
void adjustVolume(char* buffer, size_t frames);
|
||||
|
||||
std::atomic<bool> active_;
|
||||
Stream* stream_;
|
||||
std::shared_ptr<Stream> stream_;
|
||||
std::thread playerThread_;
|
||||
PcmDevice pcmDevice_;
|
||||
double volume_;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue