Update to spice2x-25-04-25 (pre-apply)
> broken commit
This commit is contained in:
+36
-1
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user