AwesomeStudioPedal
A programmable, multi-profile foot controller for DAWs, score readers, and studio automation
Loading...
Searching...
No Matches
profile.h
Go to the documentation of this file.
1#pragma once
2#include "action.h"
3#include <array>
4#include <memory>
5#include <string>
6
15{
16public:
17 static constexpr uint8_t MAX_BUTTONS = 26;
24 explicit Profile(std::string name);
25
32 void addAction(uint8_t button, std::unique_ptr<Action> action);
33
40 Action* getAction(uint8_t button) const;
41
47 const std::string& getName() const;
48
54 const std::string& getDescription() const;
55
61 void setDescription(const std::string& description);
62
63private:
64 std::string name;
65 std::string description;
66 std::array<std::unique_ptr<Action>, MAX_BUTTONS> actions;
67};
Base class for all pedal actions.
Definition action.h:12
Represents a single button configuration profile.
Definition profile.h:15
void addAction(uint8_t button, std::unique_ptr< Action > action)
Adds an action to a specific button in this profile.
Definition profile.cpp:15
const std::string & getDescription() const
Gets the description of this profile.
Definition profile.cpp:49
void setDescription(const std::string &description)
Sets the description of this profile.
Definition profile.cpp:56
Action * getAction(uint8_t button) const
Gets the action associated with a button in this profile.
Definition profile.cpp:28
static constexpr uint8_t MAX_BUTTONS
Maximum buttons per profile (A–Z)
Definition profile.h:17
const std::string & getName() const
Gets the name of this profile.
Definition profile.cpp:42