EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
ChannelMappingPanel.hpp
1//
2// Created by owd on 07/07/2026.
3//
4
5#ifndef ECHOMAP_CHANNELMAPPINGPANEL_HPP
6#define ECHOMAP_CHANNELMAPPINGPANEL_HPP
7
8#include <sigc++/scoped_connection.h>
9
10#include <string>
11
12#include "IProjectPanel.hpp"
13
14namespace echomap
15{
16
17class Signal;
18class Sensor;
19class EchoMap;
21
26{
27public:
34 explicit ChannelMappingPanel(
35 EchoMap* app,
36 const Project* initial_project = nullptr
37 );
38
39 [[nodiscard]] const char* get_imgui_name() const noexcept override;
40
41 void draw() noexcept override;
42
43 void change_active_project(const Project* new_project) override;
44
45 static const char* get_imgui_stable_name() noexcept;
46
47private:
48 void draw_new_channel_mapping() noexcept;
49 void draw_existing_channel_mapping() const noexcept;
50
51 std::string panel_name;
52
54 {
55 const Signal * signal = nullptr;
56 const Sensor * sensor = nullptr;
57 } new_entry_cache;
58
59 EchoMap* app;
60 const Project* active_project = nullptr;
62};
63
64} // namespace echomap
65
66#endif // ECHOMAP_CHANNELMAPPINGPANEL_HPP
IProjectPanel specification.
const char * get_imgui_name() const noexcept override
Retrieves the name of the IPanel for Dear ImGui API functions.
void draw() noexcept override
Draw the panel to the active rendering context.
void change_active_project(const Project *new_project) override
Updates the active Project being described by the IPanel.
ChannelMappingPanel(EchoMap *app, const Project *initial_project=nullptr)
Create a new ChannelMappingPanel to describe and configure Signal-Sensor mappings.
The EchoMap maintains state for the application including WebGPU and Dear ImGui context,...
Definition EchoMap.hpp:35
An IPanel which can receive updates to the application-wide active Project.
A single channel of discretely sampled audio data.
Definition Signal.hpp:40
Manages channels for WorkerResult message routing.
The main EchoMap outermost namespace for all non-exported symbols.