Files
2026-08-12 13:46:53 +08:00

59 lines
1.5 KiB
C++

#pragma once
#include "render_2D/event/Event.h"
#include <string>
#include <variant>
namespace renderive::web {
struct Frame_Request {};
struct Viewport_Resize {
Size size;
};
enum class Demo_Mode : std::uint8_t { Am, Fm, Usb, Lsb };
struct Set_Demo_Mode {
Demo_Mode mode = Demo_Mode::Fm;
};
struct Set_Center_Frequency {
double megahertz = 102.5;
};
struct Set_Bandwidth {
double kilohertz = 1200.0;
};
struct Set_Gain {
double decibels{};
};
struct Set_Max_Hold {
bool enabled{};
};
struct Set_Smoothing {
bool enabled{};
};
struct Clear_Selection {};
enum class Gallery_Request_Kind : std::uint8_t {
Catalog,
Open,
Patch,
Action,
Observe,
Refresh,
Reset_Monitoring
};
struct Gallery_Request {
Gallery_Request_Kind kind = Gallery_Request_Kind::Catalog;
std::string message;
};
template <class... Scene_Events>
using Basic_Web_Event = std::variant<Frame_Request,
Viewport_Resize,
Scene_Events...,
Set_Demo_Mode,
Set_Center_Frequency,
Set_Bandwidth,
Set_Gain,
Set_Max_Hold,
Set_Smoothing,
Clear_Selection,
Gallery_Request>;
using Web_Event = Basic_Web_Event<Event, Pointer_Event, Wheel_Event, Key_Event>;
} // namespace renderive::web