stream is shared_ptr

This commit is contained in:
badaix 2016-11-13 15:57:49 +01:00
parent 0c5646679e
commit 3fe88b7440
10 changed files with 17 additions and 17 deletions

View file

@ -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

View file

@ -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_;

View file

@ -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)
{
}

View file

@ -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]

View file

@ -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)

View file

@ -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_;
};

View file

@ -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),

View file

@ -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_;
};

View file

@ -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),

View file

@ -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_;