/* sampler.h This file is part of Kuesa. Copyright (C) 2018-2021 Klarälvdalens Datakonsult AB, a KDAB Group company, info@kdab.com Author: Jean-Michaël Celerier <jean-michael.celerier@kdab.com> Licensees holding valid proprietary KDAB Kuesa licenses may use this file in accordance with the Kuesa Enterprise License Agreement provided with the Software in the LICENSE.KUESA.ENTERPRISE file. Contact info@kdab.com if any conditions of this licensing are not clear to you. This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see <https://www.gnu.org/licenses/>. */ #ifndef KUESA_MUSIC_BOX_SAMPLER_H #define KUESA_MUSIC_BOX_SAMPLER_H #include <QObject> #include <QVariantMap> class SamplerPrivate; class Sampler : public QObject { Q_OBJECT Q_PROPERTY(QStringList notes READ notes WRITE setNotes NOTIFY notesChanged) public: Sampler(QObject *parent = nullptr); ~Sampler(); Q_INVOKABLE void note(int sample, float volume); QStringList notes() const; public slots: void setNotes(QStringList note); signals: void notesChanged(QStringList notes); void audioSignal(float rms, float peak); private: Q_DECLARE_PRIVATE(Sampler) Q_DISABLE_COPY(Sampler) QScopedPointer<SamplerPrivate> d_ptr; QStringList m_notes; }; #endif