From 4257c00023c9fe09d5701076c9ba55ddaab377ca Mon Sep 17 00:00:00 2001 From: Joerg Date: Sat, 17 Jun 2023 01:06:19 +0200 Subject: controller_mapping_validation_test: Support all 2.4 controller mapping API functions Print a hint if an outdated API function is used --- src/test/controller_mapping_validation_test.cpp | 75 +++++++++++++++++++++---- src/test/controller_mapping_validation_test.h | 39 ++++++++++++- 2 files changed, 99 insertions(+), 15 deletions(-) diff --git a/src/test/controller_mapping_validation_test.cpp b/src/test/controller_mapping_validation_test.cpp index 89d0392d9a..43011c62dd 100644 --- a/src/test/controller_mapping_validation_test.cpp +++ b/src/test/controller_mapping_validation_test.cpp @@ -5,29 +5,22 @@ #include "controllers/defs_controllers.h" #include "moc_controller_mapping_validation_test.cpp" -FakeControllerJSProxy::FakeControllerJSProxy() +FakeMidiControllerJSProxy::FakeMidiControllerJSProxy() : ControllerJSProxy(nullptr) { } -void FakeControllerJSProxy::send(const QList& data, unsigned int length) { +void FakeMidiControllerJSProxy::send(const QList& data, unsigned int length) { Q_UNUSED(data); Q_UNUSED(length); + qInfo() << "LINT: Prefer to use sendSysexMsg instead of the generic alias send!"; } -void FakeControllerJSProxy::sendOutputReport(quint8 reportID, - const QByteArray& dataArray, - bool resendUnchangedReport) { - Q_UNUSED(reportID); - Q_UNUSED(dataArray); - Q_UNUSED(resendUnchangedReport); -} - -void FakeControllerJSProxy::sendSysexMsg(const QList& data, unsigned int length) { +void FakeMidiControllerJSProxy::sendSysexMsg(const QList& data, unsigned int length) { Q_UNUSED(data); Q_UNUSED(length); } -void FakeControllerJSProxy::sendShortMsg(unsigned char status, +void FakeMidiControllerJSProxy::sendShortMsg(unsigned char status, unsigned char byte1, unsigned char byte2) { Q_UNUSED(status); @@ -35,6 +28,64 @@ void FakeControllerJSProxy::sendShortMsg(unsigned char status, Q_UNUSED(byte2); } +FakeHidControllerJSProxy::FakeHidControllerJSProxy() + : ControllerJSProxy(nullptr) { +} + +void FakeHidControllerJSProxy::send(const QList& data, unsigned int length) { + Q_UNUSED(data); + Q_UNUSED(length); + + qInfo() << "LINT: Prefer to use sendOutputReport instead of send!"; +} + +void FakeHidControllerJSProxy::send(const QList& dataList, + unsigned int length, + quint8 reportID, + bool useNonSkippingFIFO) { + Q_UNUSED(dataList); + Q_UNUSED(length); + Q_UNUSED(reportID); + Q_UNUSED(useNonSkippingFIFO); + + qInfo() << "LINT: Prefer to use sendOutputReport instead of send!"; +} + +void FakeHidControllerJSProxy::sendOutputReport(quint8 reportID, + const QByteArray& dataArray, + bool resendUnchangedReport) { + Q_UNUSED(reportID); + Q_UNUSED(dataArray); + Q_UNUSED(resendUnchangedReport); +} + +QByteArray FakeHidControllerJSProxy::getInputReport( + quint8 reportID) { + Q_UNUSED(reportID); + return QByteArray(); +} + +void FakeHidControllerJSProxy::sendFeatureReport( + quint8 reportID, const QByteArray& reportData) { + Q_UNUSED(reportID); + Q_UNUSED(reportData); +} + +QByteArray FakeHidControllerJSProxy::getFeatureReport( + quint8 reportID) { + Q_UNUSED(reportID); + return QByteArray(); +} + +FakeBulkControllerJSProxy::FakeBulkControllerJSProxy() + : ControllerJSProxy(nullptr) { +} + +void FakeBulkControllerJSProxy::send(const QList& data, unsigned int length) { + Q_UNUSED(data); + Q_UNUSED(length); +} + FakeController::FakeController() : Controller("Test Controller"), m_bMidiMapping(false), diff --git a/src/test/controller_mapping_validation_test.h b/src/test/controller_mapping_validation_test.h index e724d28207..da868da44c 100644 --- a/src/test/controller_mapping_validation_test.h +++ b/src/test/controller_mapping_validation_test.h @@ -8,10 +8,10 @@ #include "controllers/midi/legacymidicontrollermapping.h" #include "test/mixxxtest.h" -class FakeControllerJSProxy : public ControllerJSProxy { +class FakeMidiControllerJSProxy : public ControllerJSProxy { Q_OBJECT public: - FakeControllerJSProxy(); + FakeMidiControllerJSProxy(); Q_INVOKABLE void send(const QList& data, unsigned int length = 0) override; @@ -20,10 +20,36 @@ class FakeControllerJSProxy : public ControllerJSProxy { Q_INVOKABLE void sendShortMsg(unsigned char status, unsigned char byte1, unsigned char byte2); +}; + +class FakeHidControllerJSProxy : public ControllerJSProxy { + Q_OBJECT + public: + FakeHidControllerJSProxy(); + + Q_INVOKABLE void send(const QList& data, unsigned int length = 0) override; + Q_INVOKABLE void send(const QList& dataList, + unsigned int length, + quint8 reportID, + bool useNonSkippingFIFO = false); Q_INVOKABLE void sendOutputReport(quint8 reportID, const QByteArray& dataArray, bool resendUnchangedReport = false); + Q_INVOKABLE QByteArray getInputReport( + quint8 reportID); + Q_INVOKABLE void sendFeatureReport( + quint8 reportID, const QByteArray& reportData); + Q_INVOKABLE QByteArray getFeatureReport( + quint8 reportID); +}; + +class FakeBulkControllerJSProxy : public ControllerJSProxy { + Q_OBJECT + public: + FakeBulkControllerJSProxy(); + + Q_INVOKABLE void send(const QList& data, unsigned int length = 0) override; }; class FakeController : public Controller { @@ -38,7 +64,14 @@ class FakeController : public Controller { } ControllerJSProxy* jsProxy() override { - return new FakeControllerJSProxy(); + if (this->m_bMidiMapping == true) { + return new FakeMidiControllerJSProxy(); + } + if (this->m_bHidMapping == true) { + return new FakeHidControllerJSProxy(); + } + // Bulk mapping + return new FakeBulkControllerJSProxy(); } void setMapping(std::shared_ptr pMapping) override { -- cgit v1.2.3