|
EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
|
EchoMap application implementation for native (non-WebAssembly) platforms. More...
#include <EchoMapNative.hpp>
Public Member Functions | |
| void | run_event_loop () override |
| Runs the platform-dependent event loop to manage and propagate interaction with the EchoMap application. | |
| Public Member Functions inherited from echomap::EchoMap | |
| EchoMap () | |
| Initialise a EchoMap application instance. | |
| virtual | ~EchoMap () noexcept |
| Clean up all persistent state registered by the application instance. | |
| void | change_active_project (std::unique_ptr< Project > new_project) noexcept |
| void | notify (const Notification ¬ification) |
| Submit a new Notification to the application queue. | |
| void | increment_forced_frames (unsigned int count=4) noexcept |
| Indicate to the renderer that the following frames should always be rendered, regardless of whether there are any new events to process. | |
| EchoMap (const EchoMap &)=delete | |
| EchoMap & | operator= (const EchoMap &)=delete |
| EchoMap (EchoMap &&)=delete | |
| EchoMap & | operator= (EchoMap &&)=delete |
Protected Member Functions | |
| void | visit_notification (Notification ¬ification) override |
| Uses std::visit on the given notification to invoke the corresponding handler. | |
| Protected Member Functions inherited from echomap::EchoMap | |
| auto | make_common_notification_visitors () |
| Produce an overload set for std::visit for all platform-independent Notification objects. | |
| void | render () noexcept |
| Perform a render cycle on the configured Surface and Device. | |
| void | setup_subscriptions () |
| Configure the core signals for the application instance. | |
| wgpu::Future | request_adapter () noexcept |
| Produce a WebGPU Future for requesting an Adapter. | |
| wgpu::Future | request_device () noexcept |
| Produce a WebGPU Future for requesting an accelerator device. | |
| void | setup_imgui () |
| Create a context for Dear ImGui and ImPlot, and configure the plain GLFW and WebGPU backends. | |
| void | setup_dockspace () |
| bool | handle_window_resize () noexcept |
| Check if the window has been resized compared with the stored dimensions, updating member variables and reconfiguring the WebGPU surface if necessary. | |
| void | process_notifications () |
| Handle any unconsumed Notification objects from the queue. | |
| void | process_worker_results () |
| Handle any unconsumed events from the Worker. | |
| void | raise_error (std::string_view message) |
| void | raise_error (std::string_view message, const std::runtime_error &exception) |
| void | handle_notification (const AddChannelMappingNotification ¬ification) const |
| void | handle_notification (const ModifySensorColourNotification ¬ification) const |
| void | handle_notification (const ModifySensorPositionNotification ¬ification) const |
| void | handle_notification (const ProjectSelectionCompleteNotification ¬ification) |
| void | handle_notification (const ClearErrorNotification ¬ification) |
| virtual void | handle_result (LoadProjectResult &&result) |
| virtual void | handle_result (LoadSignalFileResult &&result) |
Private Member Functions | |
| void | handle_notification (RaiseFileChooserNotification ¬ification) |
Additional Inherited Members | |
| Static Protected Member Functions inherited from echomap::EchoMap | |
| static GLFWwindow * | create_window (int width, int height) |
| Create a new GLFW window of the specified dimensions from a static context. | |
| static void | configure_surface (const wgpu::Surface &surface, const wgpu::Device &device, const wgpu::SurfaceCapabilities &capabilities, std::uint32_t viewport_width, std::uint32_t viewport_height) noexcept |
| Configure a WebGPU Surface from a static context given metadata and Adapter capabilities. | |
| Protected Attributes inherited from echomap::EchoMap | |
| std::uint32_t | viewport_width = 1024 |
| std::uint32_t | viewport_height = 1024 |
| wgpu::Instance | instance |
| wgpu::Adapter | adapter |
| wgpu::Device | device |
| wgpu::Surface | surface |
| wgpu::SurfaceCapabilities | surface_capabilities |
| GLFWwindow * | window = nullptr |
| Worker | worker |
| Multi-threaded worker for scheduling heavy computation tasks. | |
| WorkerResultDespatcher | despatcher |
| Despatcher to manage Worker result channels. | |
| std::vector< sigc::scoped_connection > | connections |
| RAII lifetime manager for signal connections. | |
| std::vector< std::unique_ptr< IProjectPanel > > | panels |
| Individual display components. | |
| std::optional< ErrorModal > | error_modal |
| Persistent panel to indicate errors over all other panels. | |
| std::vector< Notification > | notification_queue |
| std::unique_ptr< Project > | project |
| Owning container for the active Project. | |
| std::unique_ptr< IPanel > | active_modal |
| The current active non-ErrorModal modal panel. | |
| ImGuiID | dockspace_id |
| bool | dockspace_configured = false |
| unsigned int | forced_frames = 0 |
| Static Protected Attributes inherited from echomap::EchoMap | |
| static constexpr auto | operation_timeout = std::numeric_limits<std::uint64_t>::max() |
EchoMap application implementation for native (non-WebAssembly) platforms.
Definition at line 23 of file EchoMapNative.hpp.
|
private |
Definition at line 55 of file EchoMapNative.cpp.
|
overridevirtual |
Runs the platform-dependent event loop to manage and propagate interaction with the EchoMap application.
This function returns only once GLFW indicates that the window should close. Following closure, the event loop could be re-run, or the application could clean up by calling the destructor.
Implements echomap::EchoMap.
Definition at line 21 of file EchoMapNative.cpp.
|
overrideprotectedvirtual |
Uses std::visit on the given notification to invoke the corresponding handler.
This function is virtual, since the overload set can be platform-dependent in addition to the base handlers provided by make_common_notification_visitors.
| notification | The notification to visit. |
Implements echomap::EchoMap.
Definition at line 38 of file EchoMapNative.cpp.