ALSA Sequencer Interim checkin.

This commit is contained in:
Robin E. R. Davies
2025-06-28 18:41:44 -04:00
parent acb668853b
commit 862d5b6315
17 changed files with 801 additions and 434 deletions
+7 -1
View File
@@ -21,6 +21,7 @@
#include "util.hpp"
#include <lv2/atom/atom.h>
#include "SchedulerPriority.hpp"
#include "AlsaSequencer.hpp"
#include "Lv2Log.hpp"
@@ -388,6 +389,8 @@ bool SystemMidiBinding::IsMatch(const MidiEvent &event)
class AudioHostImpl : public AudioHost, private AudioDriverHost, private IPatchWriterCallback
{
private:
AlsaSequencer::ptr alsaSequencer;
void OnWritePatchPropertyBuffer(
PatchPropertyWriter::Buffer *);
@@ -599,6 +602,7 @@ private:
this->outputRingBuffer.reset();
audioDriver = nullptr;
alsaSequencer = nullptr;
}
void ZeroBuffer(float *buffer, size_t nframes)
@@ -1248,6 +1252,7 @@ public:
lv2_atom_forge_init(&inputWriterForge, pHost->GetMapFeature().GetMap());
cpuTemperatureMonitor = CpuTemperatureMonitor::Get();
this->alsaSequencer = AlsaSequencer::Create();
}
virtual ~AudioHostImpl()
{
@@ -1637,6 +1642,7 @@ public:
{
this->isDummyAudioDriver = true;
this->audioDriver = std::unique_ptr<AudioDriver>(CreateDummyAudioDriver(this, jackServerSettings.GetAlsaInputDevice()));
this->audioDriver->SetAlsaSequencer(this->alsaSequencer);
}
else
{
@@ -1666,7 +1672,7 @@ public:
try
{
audioDriver->Open(jackServerSettings, this->channelSelection);
audioDriver->SetAlsaSequencer(this->alsaSequencer);
this->sampleRate = audioDriver->GetSampleRate();
this->overrunGracePeriodSamples = (uint64_t)(((uint64_t)this->sampleRate) * OVERRUN_GRACE_PERIOD_S);