Sample Track Recording with Jack backend (#7567)
Enable the `AudioJack` to take recorded input and push it to the `AudioEngine`. This adds functionality for `AudioJack` which already exists for `AudioSdl` and `AudioPortAudio`. Note that sample track recording in the LMMS core is not completed before #7786 . This PR also removes the reading and saving of the channel number configuration in several places as it will default to `DEFAULT_CHANNELS` all the time anyway. Co-authored-by: Johannes Lorenz <j.git@lorenz-ho.me> Co-authored-by: Michael Gregorius <michael.gregorius.git@arcor.de>
This commit is contained in:
@@ -53,11 +53,6 @@ namespace lmms
|
||||
|
||||
class MidiJack;
|
||||
|
||||
namespace gui
|
||||
{
|
||||
class LcdSpinBox;
|
||||
}
|
||||
|
||||
|
||||
class AudioJack : public QObject, public AudioDevice
|
||||
{
|
||||
@@ -82,13 +77,10 @@ public:
|
||||
{
|
||||
public:
|
||||
setupWidget(QWidget* parent);
|
||||
~setupWidget() override;
|
||||
|
||||
void saveSettings() override;
|
||||
|
||||
private:
|
||||
QLineEdit* m_clientName;
|
||||
gui::LcdSpinBox* m_channels;
|
||||
};
|
||||
|
||||
private slots:
|
||||
@@ -96,6 +88,7 @@ private slots:
|
||||
|
||||
private:
|
||||
bool initJackClient();
|
||||
void resizeInputBuffer(jack_nframes_t nframes);
|
||||
|
||||
void startProcessing() override;
|
||||
void stopProcessing() override;
|
||||
@@ -116,8 +109,11 @@ private:
|
||||
|
||||
std::atomic<MidiJack*> m_midiClient;
|
||||
std::vector<jack_port_t*> m_outputPorts;
|
||||
std::vector<jack_port_t*> m_inputPorts;
|
||||
jack_default_audio_sample_t** m_tempOutBufs;
|
||||
std::vector<SampleFrame> m_inputFrameBuffer;
|
||||
SampleFrame* m_outBuf;
|
||||
SampleFrame* m_inBuf;
|
||||
|
||||
f_cnt_t m_framesDoneInCurBuf;
|
||||
f_cnt_t m_framesToDoInCurBuf;
|
||||
|
||||
Reference in New Issue
Block a user