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"; logO << "Codec: " << headerChunk_->codec << "\n";
decoder_.reset(nullptr); decoder_.reset(nullptr);
stream_.reset(nullptr); stream_ = nullptr;
player_.reset(nullptr); player_.reset(nullptr);
if (headerChunk_->codec == "pcm") if (headerChunk_->codec == "pcm")
@ -109,15 +109,15 @@ void Controller::onMessageReceived(ClientConnection* connection, const msg::Base
sampleFormat_ = decoder_->setHeader(headerChunk_.get()); sampleFormat_ = decoder_->setHeader(headerChunk_.get());
logState << "sampleformat: " << sampleFormat_.rate << ":" << sampleFormat_.bits << ":" << sampleFormat_.channels << "\n"; logState << "sampleformat: " << sampleFormat_.rate << ":" << sampleFormat_.bits << ":" << sampleFormat_.channels << "\n";
stream_.reset(new Stream(sampleFormat_)); stream_ = make_shared<Stream>(sampleFormat_);
stream_->setBufferLen(serverSettings_->getBufferMs() - latency_); stream_->setBufferLen(serverSettings_->getBufferMs() - latency_);
#ifdef HAS_ALSA #ifdef HAS_ALSA
player_.reset(new AlsaPlayer(pcmDevice_, stream_.get())); player_.reset(new AlsaPlayer(pcmDevice_, stream_));
#elif HAS_OPENSL #elif HAS_OPENSL
player_.reset(new OpenslPlayer(pcmDevice_, stream_.get())); player_.reset(new OpenslPlayer(pcmDevice_, stream_));
#elif HAS_COREAUDIO #elif HAS_COREAUDIO
player_.reset(new CoreAudioPlayer(pcmDevice_, stream_.get())); player_.reset(new CoreAudioPlayer(pcmDevice_, stream_));
#else #else
throw SnapException("No audio player support"); throw SnapException("No audio player support");
#endif #endif

View file

@ -66,7 +66,7 @@ private:
PcmDevice pcmDevice_; PcmDevice pcmDevice_;
int latency_; int latency_;
std::unique_ptr<ClientConnection> clientConnection_; std::unique_ptr<ClientConnection> clientConnection_;
std::unique_ptr<Stream> stream_; std::shared_ptr<Stream> stream_;
std::unique_ptr<Decoder> decoder_; std::unique_ptr<Decoder> decoder_;
std::unique_ptr<Player> player_; std::unique_ptr<Player> player_;
std::shared_ptr<msg::ServerSettings> serverSettings_; std::shared_ptr<msg::ServerSettings> serverSettings_;

View file

@ -26,7 +26,7 @@
using namespace std; 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) Player(pcmDevice, stream), handle_(NULL), buff_(NULL)
{ {
} }

View file

@ -30,7 +30,7 @@
class AlsaPlayer : public Player class AlsaPlayer : public Player
{ {
public: public:
AlsaPlayer(const PcmDevice& pcmDevice, Stream* stream); AlsaPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
virtual ~AlsaPlayer(); virtual ~AlsaPlayer();
/// Set audio volume in range [0..1] /// 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), Player(pcmDevice, stream),
ms_(100), ms_(100),
pubStream_(stream) pubStream_(stream)

View file

@ -37,7 +37,7 @@
class CoreAudioPlayer : public Player class CoreAudioPlayer : public Player
{ {
public: public:
CoreAudioPlayer(const PcmDevice& pcmDevice, Stream* stream); CoreAudioPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
virtual ~CoreAudioPlayer(); virtual ~CoreAudioPlayer();
void playerCallback(AudioQueueRef queue, AudioQueueBufferRef bufferRef); void playerCallback(AudioQueueRef queue, AudioQueueBufferRef bufferRef);
@ -49,7 +49,7 @@ protected:
size_t ms_; size_t ms_;
size_t frames_; size_t frames_;
size_t buff_size_; 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), Player(pcmDevice, stream),
engineObject(NULL), engineObject(NULL),
engineEngine(NULL), engineEngine(NULL),

View file

@ -35,7 +35,7 @@ typedef int (*AndroidAudioCallback)(short *buffer, int num_samples);
class OpenslPlayer : public Player class OpenslPlayer : public Player
{ {
public: public:
OpenslPlayer(const PcmDevice& pcmDevice, Stream* stream); OpenslPlayer(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
virtual ~OpenslPlayer(); virtual ~OpenslPlayer();
virtual void start(); virtual void start();
@ -69,7 +69,7 @@ protected:
size_t ms_; size_t ms_;
size_t frames_; size_t frames_;
size_t buff_size; size_t buff_size;
Stream* pubStream_; std::shared_ptr<Stream> pubStream_;
}; };

View file

@ -26,7 +26,7 @@
using namespace std; using namespace std;
Player::Player(const PcmDevice& pcmDevice, Stream* stream) : Player::Player(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream) :
active_(false), active_(false),
stream_(stream), stream_(stream),
pcmDevice_(pcmDevice), pcmDevice_(pcmDevice),

View file

@ -36,7 +36,7 @@
class Player class Player
{ {
public: public:
Player(const PcmDevice& pcmDevice, Stream* stream); Player(const PcmDevice& pcmDevice, std::shared_ptr<Stream> stream);
virtual ~Player(); virtual ~Player();
/// Set audio volume in range [0..1] /// Set audio volume in range [0..1]
@ -59,7 +59,7 @@ protected:
void adjustVolume(char* buffer, size_t frames); void adjustVolume(char* buffer, size_t frames);
std::atomic<bool> active_; std::atomic<bool> active_;
Stream* stream_; std::shared_ptr<Stream> stream_;
std::thread playerThread_; std::thread playerThread_;
PcmDevice pcmDevice_; PcmDevice pcmDevice_;
double volume_; double volume_;