Files
Renderive/web_server/Web_Event.h
T
2026-08-11 14:55:46 +08:00

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, Refresh, Patch, Action };
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