Update to spice2x-25-04-25 (pre-apply)

> broken commit
This commit is contained in:
[ ]
2025-05-07 00:25:31 +09:00
parent 04dee88276
commit c94de456b5
543 changed files with 78491 additions and 91698 deletions
+36 -1
View File
@@ -14,6 +14,8 @@ extern "C" {
#include "util/unique_plain_ptr.h"
#include "smxdedicab.h"
#include "smxstage.h"
#include "sextet.h"
namespace rawinput {
@@ -27,6 +29,8 @@ namespace rawinput {
MIDI,
SEXTET_OUTPUT,
PIUIO_DEVICE,
SMX_STAGE,
SMX_DEDICAB
};
enum MouseKeys {
@@ -128,26 +132,55 @@ namespace rawinput {
};
struct DeviceMIDIInfo {
// notes -legacy logic
std::vector<bool> states;
std::vector<uint8_t> states_events;
std::vector<bool> bind_states;
// notes - v2 logic
std::vector<double> v2_last_off_time;
std::vector<double> v2_last_on_time;
std::vector<uint8_t> v2_velocity_threshold;
std::vector<bool> v2_velocity_threshold_set_on_device;
// buttons with velocity - 16 channels, each channel has notes [0-127]
std::vector<uint8_t> velocity; // 16*128 x 7 bit resolution
bool freeze;
// precision controls (double width / 14 bit MSB+LSB controls)
// 16 channels, each channel has controls [0, 1F] (total 32)
std::vector<uint16_t> controls_precision; // 16*32 14 bit resolution
std::vector<uint16_t> controls_precision_bind;
std::vector<bool> controls_precision_msb;
std::vector<bool> controls_precision_lsb;
std::vector<bool> controls_precision_set;
// single controls (single width / 8 bit)
// 16 channels, each channel has:
// single byte controls [0x46, 0x5F] (total 26)
// undefined single byte controls [0x66, 0x77] (total 18)
// (total 44)
std::vector<uint8_t> controls_single; // 16*44 7 bit resolution
std::vector<uint8_t> controls_single_bind;
std::vector<bool> controls_single_set;
// on-off controls
// 16 channels, each channel has controls [0x40, 0x45] (total 6)
std::vector<bool> controls_onoff; // 16*6 1 bit resolution :)
std::vector<bool> controls_onoff_bind;
std::vector<bool> controls_onoff_set;
uint16_t pitch_bend; // 14 bit resolution
std::vector<double> v2_controls_onoff_last_on_time;
std::vector<double> v2_controls_onoff_last_off_time;
// pitch bend
std::vector<int16_t> pitch_bend; // 16*14 bit resolution
std::vector<bool> pitch_bend_set;
};
class PIUIO;
class SmxStageDevice;
class SmxDedicabDevice;
struct Device {
size_t id;
@@ -167,6 +200,8 @@ namespace rawinput {
DeviceMIDIInfo *midiInfo = nullptr;
SextetDevice *sextetInfo = nullptr;
PIUIO* piuioDev = nullptr;
SmxStageDevice *smxstageInfo = nullptr;
SmxDedicabDevice* smxdedicabInfo = nullptr;
double input_time = 0.0;
double input_hz = 0.f;
double input_hz_max = 0.f;