EchoMap 2026-07-25 6d3977c
An experimental cross-platform digital signal processing application for sound-source localisation.
Loading...
Searching...
No Matches
echomap Namespace Reference

The main EchoMap outermost namespace for all non-exported symbols. More...

Classes

class  ActionControllerBase
 Provides a platform-independent static mechanism for performing "system actions", such as raising a file-selector dialog, and invoking callbacks upon completion. More...
struct  AddChannelMappingNotification
 A notification indicating that a new channel mapping should be established. More...
class  BidirectionalUnorderedMapping
 Maintains a bidirectional mapping between a key and value, allowing fast lookup on both objects. More...
struct  CancelProjectLoadNotification
 A notification indicating that a pending Project load should be cancelled. More...
class  ChannelMappingPanel
 Provides a panel for defining mappings between Signal and Sensor objects. More...
struct  ClearErrorNotification
 A notification indicating that any error state visible to the user should be reset. More...
struct  Colour
 A generic RGBA structure. More...
struct  CompleteProjectLoadNotification
 A notification indicating that a pending Project is ready to be loaded. More...
class  ConfigurationError
 A ConfigurationError indicates an error encountered during the initial configuration of the EchoMap graphics context. More...
class  DFTResult
 Denotes a completed DFT computation from a DFTTask. More...
class  DFTTask
 Represents an ITask for computing the Discrete Fourier Transform of a Signal. More...
class  DownsampleResult
 Denotes a completed for a downsampled Signal produced by a DownsampleTask job. More...
class  DownsampleTask
 Represents an ITask for downsampling a Signal time-series data by a fixed factor. More...
class  EchoMap
 The EchoMap maintains state for the application including WebGPU and Dear ImGui context, encapsulating initialisation, game loop, interaction, and clean-up. More...
class  EchoMapNative
 EchoMap application implementation for native (non-WebAssembly) platforms. More...
class  EchoMapWeb
 EchoMap application implementation for WebAssembly/Emscripten platforms. More...
class  ErrorModal
 Provides a persistent ImGui state to raise errors as a modal. More...
class  ErrorResult
 Indicates that an ITask did not successfully complete. More...
class  FFTWBuffers
 Simple RAII wrapper for commonly used C types from FFTW(f). More...
class  FileChooser
 Modal containing controls for interactively selecting a file from the file-system. More...
class  FilesystemCombo
 Provides a platform-independent Dear ImGui combo box for browsing the file-system and selecting files. More...
class  FrequencySpectrum
 A Signal sampled in the frequency domain. More...
class  FrequencySpectrumFactory
 Provides a static helper to perform discrete Fourier transforms on Signal objects to produce frequency spectra. More...
class  IDAllocator
 Provides a simple thread-safe runtime ID generator for Object managers. More...
class  IgnoredWarning
 Exception class to indicate a non-fatal warning indicating an exceptional case of dropping some notification. More...
class  IPanel
 Represents a panel or window on the GUI. More...
class  IProjectPanel
 An IPanel which can receive updates to the application-wide active Project. More...
class  ISerialiser
class  ITask
 An ITask represents an invocable piece of work that produces a WorkerResult. More...
class  IWebPanel
 An IPanel which can receive updates to the application-wide unloaded PartialProject. More...
class  JSActionController
 Specialisation of ActionControllerBase to service actions on a WebAssembly target (using the Emscripten runtime). More...
class  JSONDeserialiserHelpers
 Provides a set of static helpers for parsing Project fields with SIMDJSON. More...
class  JSONFullDeserialiser
 JSON parser for Project objects. More...
class  JSONPartialDeserialiser
 JSON parser for PartialProject objects. More...
class  JSONSerialiser
class  LoadProjectResult
 Denotes a loaded Project completed by a LoadProjectTask job. More...
class  LoadProjectTask
 Denotes a unit of work for loading and constructing an EchoMap Project from its serialised form on the filesystem. More...
class  LoadSignalFileResult
class  LoadSignalFileTask
class  LocatableError
class  Logger
 A portable (native and browser) and thread-safe logger implementation for formatted messages. More...
class  MapSourcesModal
 Provides a modal IPanel to map externally sourced Signal objects to separately uploaded files. More...
class  MenuPanel
struct  ModifySensorColourNotification
 A notification indicating that the colour of a Sensor should be changed. More...
struct  ModifySensorPositionNotification
 A notification indicating that the position of a Sensor should be changed. More...
class  NativeActionController
 Specialisation of ActionControllerBase to service actions on a native platform. More...
struct  NotificationNames
 Helper to retrieve names of Notification variant alternatives. More...
class  Object
 A participant in a runtime object model with a numerically unique identifier and display name. More...
class  PartialProject
 A Project with semantics for expressing an incomplete set of owned Signal objects. More...
struct  Position
 A generic 3D position structure. More...
class  Project
class  ProjectPanel
struct  ProjectSelectionCompleteNotification
 A notification indicating that a new Project file has been selected by the user, or the load operation was cancelled. More...
struct  RaiseFileChooserNotification
 A notification indicating that the NativeFileChooser should be raised to prompt for a new Project. More...
struct  RegisterVFSMappingNotification
 A notification to indicate a new VFS mapping from an external source. More...
class  ResultChannel
 Maintains a type-safe multi-observer single-consumer message bus for WorkerResult objects. More...
class  Sensor
class  SensorGeometryPanel
 Provides a panel for defining and reviewing (in a 3D plot) positions of loaded Sensor objects in the active Project. More...
class  Signal
 A single channel of discretely sampled audio data. More...
class  SignalDFTPanel
 Provides an IPanel to display and interact with previews of Signal frequency spectra (i.e., Signal DFTs). More...
class  SignalFactory
 Provides various convenience functions for constructing Signal objects in exotic ways. More...
class  SignalWaveformPanel
 The SignalWaveformPanel provides a preview of downsampled time-series waveforms of each Signal in the active Project. More...
class  StaticInstanceController
 Provides a binding interface to connect static controllers to an instance of EchoMap. More...
class  SurfaceFactory
 Provides static helpers to create and bind a WebGPU Surface to a GLFW window across Wasm and non-Wasm platforms. More...
class  ThreadSafeQueue
 Provides a straightforward thread-safe double-ended queue implementation. More...
class  WindowFunctions
 Aggregation of callable DSP window functions. More...
class  Worker
 A Worker provides an encapsulated thread-safe despatch model for submitting work and reviewing results. More...
class  WorkerResultDespatcher
 Manages channels for WorkerResult message routing. More...

Concepts

concept  SignalFactoryRange
concept  WindowFunction

Typedefs

using ActionController = JSActionController
 Provides an ActionControllerBase implementation alias for Emscripten targets.
using WorkerResult = std::variant<ErrorResult, DFTResult, DownsampleResult, LoadProjectResult, LoadSignalFileResult>
 Issued once an ITask has completed its Worker cycle.
using Notification
 A Notification is a trivial message sent exclusively to the EchoMap controller.
using id_type = std::uint64_t
using JSONDeserialiser = JSONPartialDeserialiser
 Provides a JSONDeserialiser for the web, where PartialProject objects are required.

Functions

template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Constant > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Hann > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Hamming > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Bartlett > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Blackman > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::BlackmanHarris > ()
template<>
constexpr std::string_view WindowFunctions::get_window_name< WindowFunctions::Welch > ()

Variables

template<typename Derived>
ActionControllerBase< Derived >::CallbackT ActionControllerBase< Derived >::callback {}
template<>
constexpr std::string_view Object< ITask >::class_name = "Task"
template<>
constexpr std::string_view Object< FrequencySpectrum >::class_name = "FreqSpec"
template<>
constexpr std::string_view Object< Project >::class_name = "Project"
template<>
constexpr std::string_view Object< Sensor >::class_name = "Sensor"
template<>
constexpr std::string_view Object< Signal >::class_name = "Signal"

Detailed Description

The main EchoMap outermost namespace for all non-exported symbols.

Typedef Documentation

◆ id_type

using echomap::id_type = std::uint64_t

Definition at line 21 of file IDAllocator.hpp.

◆ JSONDeserialiser

Provides a JSONDeserialiser for the web, where PartialProject objects are required.

Definition at line 27 of file JSONDeserialiser.hpp.

◆ WorkerResult

Issued once an ITask has completed its Worker cycle.

Definition at line 27 of file WorkerResult.hpp.

Function Documentation

◆ WindowFunctions::get_window_name< WindowFunctions::Bartlett >()

Definition at line 326 of file WindowFunctions.hpp.

327{
328 return "Bartlett";
329}

◆ WindowFunctions::get_window_name< WindowFunctions::Blackman >()

Definition at line 331 of file WindowFunctions.hpp.

332{
333 return "Blackman";
334}

◆ WindowFunctions::get_window_name< WindowFunctions::BlackmanHarris >()

Definition at line 336 of file WindowFunctions.hpp.

337{
338 return "Blackman-Harris";
339}

◆ WindowFunctions::get_window_name< WindowFunctions::Constant >()

Definition at line 311 of file WindowFunctions.hpp.

312{
313 return "Constant";
314}

◆ WindowFunctions::get_window_name< WindowFunctions::Hamming >()

Definition at line 321 of file WindowFunctions.hpp.

322{
323 return "Hamming";
324}

◆ WindowFunctions::get_window_name< WindowFunctions::Hann >()

Definition at line 316 of file WindowFunctions.hpp.

317{
318 return "Hann";
319}

◆ WindowFunctions::get_window_name< WindowFunctions::Welch >()

Definition at line 341 of file WindowFunctions.hpp.

342{
343 return "Welch";
344}

Variable Documentation

◆ ActionControllerBase< Derived >::callback

template<typename Derived>
ActionControllerBase<Derived>::CallbackT echomap::ActionControllerBase< Derived >::callback {}

Definition at line 143 of file ActionControllerBase.hpp.

143{};

◆ Object< FrequencySpectrum >::class_name

template<>
std::string_view echomap::Object< FrequencySpectrum >::class_name = "FreqSpec"
constexpr

Definition at line 82 of file FrequencySpectrum.hpp.

◆ Object< ITask >::class_name

template<>
std::string_view echomap::Object< ITask >::class_name = "Task"
constexpr

Definition at line 64 of file ITask.hpp.

◆ Object< Project >::class_name

template<>
std::string_view echomap::Object< Project >::class_name = "Project"
constexpr

Definition at line 218 of file Project.hpp.

◆ Object< Sensor >::class_name

template<>
std::string_view echomap::Object< Sensor >::class_name = "Sensor"
constexpr

Definition at line 32 of file Sensor.hpp.

◆ Object< Signal >::class_name

template<>
std::string_view echomap::Object< Signal >::class_name = "Signal"
constexpr

Definition at line 284 of file Signal.hpp.