LCOV - code coverage report
Current view: top level - src/MIDI_Outputs/Bankable - ProgramChanger.hpp (source / functions) Coverage Total Hit
Test: 73449d9b107c772cf65493691543348214e5d5eb Lines: 28.6 % 7 2
Test Date: 2026-06-06 17:44:35 Functions: 50.0 % 2 1
Legend: Lines:     hit not hit

            Line data    Source code
       1              : #pragma once
       2              : 
       3              : #include <Banks/BankableAddresses.hpp>
       4              : #include <Control_Surface/Control_Surface_Class.hpp>
       5              : #include <Def/Def.hpp>
       6              : #include <Selectors/Selectable.hpp>
       7              : 
       8              : BEGIN_CS_NAMESPACE
       9              : 
      10              : namespace Bankable {
      11              : 
      12              : template <setting_t N>
      13              : class ProgramChanger : public Selectable<N> {
      14              :   public:
      15            1 :     ProgramChanger(OutputBankConfig<> bank, const Array<uint8_t, N> &programs,
      16              :                    MIDIChannelCable channelCN)
      17            1 :         : bank(bank), programs(programs), channelCN(channelCN) {}
      18              : 
      19            0 :     void select(setting_t setting) override {
      20            0 :         setting = this->validateSetting(setting);
      21            0 :         MIDIAddress addr {programs[setting], channelCN};
      22            0 :         Control_Surface.sendProgramChange(addr + bank.getAddressOffset());
      23            0 :     }
      24              : 
      25              :   private:
      26              :     OutputBankableMIDIAddress bank;
      27              :     Array<uint8_t, N> programs;
      28              :     MIDIChannelCable channelCN;
      29              : };
      30              : 
      31              : } // namespace Bankable
      32              : 
      33              : END_CS_NAMESPACE
        

Generated by: LCOV version 2.4-beta