50 lines
1.4 KiB
C++
50 lines
1.4 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 };
|
|
struct Gallery_Request {
|
|
Gallery_Request_Kind kind = Gallery_Request_Kind::Catalog;
|
|
std::string message;
|
|
};
|
|
using Web_Event = std::variant<Frame_Request,
|
|
Viewport_Resize,
|
|
Event,
|
|
Pointer_Event,
|
|
Wheel_Event,
|
|
Key_Event,
|
|
Set_Demo_Mode,
|
|
Set_Center_Frequency,
|
|
Set_Bandwidth,
|
|
Set_Gain,
|
|
Set_Max_Hold,
|
|
Set_Smoothing,
|
|
Clear_Selection,
|
|
Gallery_Request>;
|
|
} // namespace renderive::web
|