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

A trivial message sent exclusively to the EchoMap controller. More...

Collaboration diagram for Notifications:

Classes

struct  echomap::AddChannelMappingNotification
 A notification indicating that a new channel mapping should be established. More...
struct  echomap::NotificationNames
 Helper to retrieve names of Notification variant alternatives. More...
struct  echomap::ModifySensorColourNotification
 A notification indicating that the colour of a Sensor should be changed. More...
struct  echomap::ModifySensorPositionNotification
 A notification indicating that the position of a Sensor should be changed. More...
struct  echomap::RaiseFileChooserNotification
 A notification indicating that the NativeFileChooser should be raised to prompt for a new Project. More...
struct  echomap::ProjectSelectionCompleteNotification
 A notification indicating that a new Project file has been selected by the user, or the load operation was cancelled. More...
struct  echomap::CompleteProjectLoadNotification
 A notification indicating that a pending Project is ready to be loaded. More...
struct  echomap::RegisterVFSMappingNotification
 A notification to indicate a new VFS mapping from an external source. More...

Typedefs

using echomap::Notification
 A Notification is a trivial message sent exclusively to the EchoMap controller.

Detailed Description

A trivial message sent exclusively to the EchoMap controller.

Typedef Documentation

◆ Notification

Initial value:
,
,
>
A notification indicating that a new channel mapping should be established.
A notification indicating that a pending Project load should be cancelled.
A notification indicating that any error state visible to the user should be reset.
A notification indicating that a pending Project is ready to be loaded.
A notification indicating that the colour of a Sensor should be changed.
A notification indicating that the position of a Sensor should be changed.
A notification indicating that a new Project file has been selected by the user, or the load operatio...
A notification indicating that the NativeFileChooser should be raised to prompt for a new Project.
A notification to indicate a new VFS mapping from an external source.

A Notification is a trivial message sent exclusively to the EchoMap controller.

To add a new Notification:

  1. Create the struct in a file and add to the CMake DummyTarget source vector;
  2. Add the struct type to the forward declarations in this file;
  3. Add the forward-declared type to this variant;
  4. Specialise the NotificationNames::get member function to produce a human-readable name;
  5. Include the full type in AllNotifications.hpp;
  6. Add a handler for its messages in an EchoMap derived class;
  7. Add the handler function to any visitors; platform-independent handlers go in EchoMap::make_common_notification_visitors.

Once the type is added to this variant, all further steps are verified statically.

If the Notification is applicable only to a certain platform, its symbols should not be included in translation units compiled for anything except the target platform. The mechanism for managing this split is:

  • Separate CMake source vectors for platform-dependent translation units;
  • Separate inheritors of EchoMap for each platform (e.g. EchoMapNative, EchoMapWeb);
  • Where absolutely necessary, inline macro checks e.g. __EMSCRIPTEN__

Definition at line 70 of file AllNotificationsFwd.hpp.