Lines Matching defs:TinyalsaSource
43 struct TinyalsaSource : public DevicePortSource { struct
44 TinyalsaSource(unsigned pcmCard, unsigned pcmDevice, in TinyalsaSource() argument
61 ~TinyalsaSource() { in ~TinyalsaSource()
66 Result getCapturePosition(uint64_t &frames, uint64_t &time) override { in getCapturePosition()
77 uint64_t getCaptureFrames(const nsecs_t nowNs) const { in getCaptureFrames()
81 uint64_t getAvailableFrames(const nsecs_t nowNs) const { in getAvailableFrames()
85 uint64_t getAvailableFramesNow() const { in getAvailableFramesNow()
89 size_t getWaitFramesNow(const size_t requestedFrames) const { in getWaitFramesNow()
95 size_t read(float volume, size_t bytesToRead, IWriter &writer) override { in read()
147 void producerThread() { in producerThread()
170 size_t doRead(void *dst, size_t sz) { in doRead()
181 static std::unique_ptr<TinyalsaSource> create(unsigned pcmCard, in create()
198 const nsecs_t mStartNs;
199 const unsigned mSampleRateHz;
200 const unsigned mFrameSize;
201 const unsigned mReadSizeFrames;
202 uint64_t &mFrames;
203 uint64_t mPreviousFrames = 0;
204 uint64_t mSentFrames = 0;
205 std::atomic<uint32_t> mFramesLost = 0;
206 RingBuffer mRingBuffer;
207 talsa::Mixer mMixer;
208 talsa::PcmPtr mPcm;
209 std::thread mProduceThread;
210 std::atomic<bool> mProduceThreadRunning = true;