Created
August 18, 2013 10:42
-
-
Save streamer45/6261016 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#define KR_INFO_TYPES_COUNT 11 | |
#define KR_MAX_DYNAMIC_MEMBERS 128 | |
typedef struct kr_info kr_info; | |
typedef struct kr_meta_info kr_meta_info; | |
typedef struct kr_meta_info_member kr_meta_info_member; | |
typedef enum { | |
KR_JACK_INFO, | |
KR_JACK_PATH_INFO, | |
KR_MIXER_INFO, | |
KR_MIXER_PATH_INFO, | |
KR_EQ_BAND_INFO, | |
KR_EQ_INFO, | |
KR_LOWPASS_INFO, | |
KR_HIGHPASS_INFO, | |
KR_ANALOG_INFO, | |
KR_TRANSPONDER_INFO, | |
KR_TRANSPONDER_PATH_INFO | |
}kr_info_type; | |
struct kr_info { | |
kr_info_type type; | |
union { | |
kr_jack_info jack_info; | |
kr_jack_path_info jack_path_info; | |
kr_mixer_info mixer_info; | |
kr_mixer_path_info mixer_path_info; | |
kr_eq_band_info eq_band_info; | |
kr_eq_info eq_info; | |
kr_lowpass_info lowpass_info; | |
kr_highpass_info highpass_info; | |
kr_analog_info analog_info; | |
kr_transponder_info transponder_info; | |
kr_transponder_path_info transponder_path_info; | |
}info; | |
}; | |
typedef enum { | |
KR_DY_INT32, | |
KR_DY_UINT32, | |
KR_DY_UINT64, | |
KR_DY_FLOAT, | |
KR_DY_CHAR, | |
KR_DY_STRING, | |
KR_DY_STRUCT, | |
KR_DY_ENUM | |
}member_type; | |
struct kr_meta_info_member { | |
char name[64]; | |
kr_member_type type; | |
char struct_name[64]; | |
uint8_t array; | |
uint32_t array_len; | |
}; | |
struct kr_meta_info { | |
char name[64]; | |
uint32_t members_count; | |
kr_info_type type; | |
kr_info info; | |
uint8_t sub; | |
kr_meta_info_member members[KR_MAX_DYNAMIC_MEMBERS]; | |
}; | |
static const kr_meta_info kr_jack_info_meta = { | |
.name = "kr_jack_info", | |
.type = KR_JACK_INFO, | |
.members_count = 8, | |
.members[0].name = "client_name", | |
.members[0].type = KR_DY_STRING, | |
.members[1].name = "server_name", | |
.members[1].type = KR_DY_STRING, | |
.members[2].name = "inputs", | |
.members[2].type = KR_DY_INT32, | |
.members[3].name = "outputs", | |
.members[3].type = KR_DY_INT32, | |
.members[4].name = "xruns", | |
.members[4].type = KR_DY_UINT32, | |
.members[5].name = "active", | |
.members[5].type = KR_DY_INT32, | |
.members[6].name = "sample_rate", | |
.members[6].type = KR_DY_UINT32, | |
.members[7].name = "period_size", | |
.members[7].type = KR_DY_UINT32 | |
}; | |
static const kr_meta_info kr_jack_path_info_meta = { | |
.name = "kr_jack_path_info", | |
.type = KR_JACK_PATH_INFO, | |
.members_count = 3, | |
.members[0].name = "name", | |
.members[0].type = KR_DY_STRING, | |
.members[1].name = "channels", | |
.members[1].type = KR_DY_INT32, | |
.members[2].name = "direction", | |
.members[2].type = KR_DY_ENUM | |
}; | |
static const kr_meta_info kr_mixer_info_meta = { | |
.name = "kr_mixer_info", | |
.type = KR_MIXER_INFO, | |
.members_count = 8, | |
.members[0].name = "period_size", | |
.members[0].type = KR_DY_UINT32, | |
.members[1].name = "sample_rate", | |
.members[1].type = KR_DY_UINT32, | |
.members[2].name = "inputs", | |
.members[2].type = KR_DY_UINT32, | |
.members[3].name = "buses", | |
.members[3].type = KR_DY_UINT32, | |
.members[4].name = "auxes", | |
.members[4].type = KR_DY_UINT32, | |
.members[5].name = "frames", | |
.members[5].type = KR_DY_UINT64, | |
.members[6].name = "timecode", | |
.members[6].type = KR_DY_UINT64, | |
.members[7].name = "clock", | |
.members[7].type = KR_DY_STRING | |
}; | |
static const kr_meta_info kr_mixer_path_info_meta = { | |
.name = "kr_mixer_path_info", | |
.type = KR_MIXER_PATH_INFO, | |
.members_count = 16, | |
.members[0].name = "name", | |
.members[0].type = KR_DY_STRING, | |
.members[1].name = "bus", | |
.members[1].type = KR_DY_STRING, | |
.members[2].name = "crossfade_group", | |
.members[2].type = KR_DY_STRING, | |
.members[3].name = "channels", | |
.members[3].type = KR_DY_ENUM, | |
.members[4].name = "type", | |
.members[4].type = KR_DY_ENUM, | |
.members[5].name = "fade", | |
.members[5].type = KR_DY_FLOAT, | |
.members[6].name = "volume", | |
.members[6].type = KR_DY_FLOAT, | |
.members[7].name = "map", | |
.members[7].type = KR_DY_INT32, | |
.members[8].name = "mixmap", | |
.members[8].type = KR_DY_INT32, | |
.members[9].name = "rms", | |
.members[9].type = KR_DY_FLOAT, | |
.members[10].name = "peak", | |
.members[10].type = KR_DY_FLOAT, | |
.members[11].name = "delay", | |
.members[11].type = KR_DY_INT32, | |
.members[12].name = "lowpass", | |
.members[12].type = KR_DY_STRUCT, | |
.members[12].struct_type = KR_LOWPASS_INFO, | |
.members[13].name = "highpass", | |
.members[13].type = KR_DY_STRUCT, | |
.members[13].struct_type = KR_HIGHPASS_INFO, | |
.members[14].name = "analog", | |
.members[14].type = KR_DY_STRUCT, | |
.members[14].struct_type = KR_ANALOG_INFO, | |
.members[15].name = "eq", | |
.members[15].type = KR_DY_STRUCT, | |
.members[15].struct_type = KR_EQ_INFO | |
}; | |
static const kr_meta_info kr_eq_band_info_meta = { | |
.name = "kr_eq_band_info", | |
.type = KR_EQ_BAND_INFO, | |
.members_count = 3, | |
.members[0].name = "db", | |
.members[0].type = KR_DY_FLOAT, | |
.members[1].name = "bw", | |
.members[1].type = KR_DY_FLOAT, | |
.members[2].name = "hz", | |
.members[2].type = KR_DY_FLOAT | |
}; | |
static const kr_meta_info kr_eq_info_meta = { | |
.name = "kr_eq_info", | |
.type = KR_EQ_INFO, | |
.members_count = 1, | |
.members[0].name = "band", | |
.members[0].type = KR_DY_STRUCT, | |
.members[0].struct_type = KR_EQ_BAND_INFO | |
}; | |
static const kr_meta_info kr_lowpass_info_meta = { | |
.name = "kr_lowpass_info", | |
.type = KR_LOWPASS_INFO, | |
.members_count = 2, | |
.members[0].name = "bw", | |
.members[0].type = KR_DY_FLOAT, | |
.members[1].name = "hz", | |
.members[1].type = KR_DY_FLOAT | |
}; | |
static const kr_meta_info kr_highpass_info_meta = { | |
.name = "kr_highpass_info", | |
.type = KR_HIGHPASS_INFO, | |
.members_count = 2, | |
.members[0].name = "bw", | |
.members[0].type = KR_DY_FLOAT, | |
.members[1].name = "hz", | |
.members[1].type = KR_DY_FLOAT | |
}; | |
static const kr_meta_info kr_analog_info_meta = { | |
.name = "kr_analog_info", | |
.type = KR_ANALOG_INFO, | |
.members_count = 2, | |
.members[0].name = "drive", | |
.members[0].type = KR_DY_FLOAT, | |
.members[1].name = "blend", | |
.members[1].type = KR_DY_FLOAT | |
}; | |
static const kr_meta_info kr_transponder_info_meta = { | |
.name = "kr_transponder_info", | |
.type = KR_TRANSPONDER_INFO, | |
.members_count = 1, | |
.members[0].name = "active_paths", | |
.members[0].type = KR_DY_UINT32 | |
}; | |
static const kr_meta_info kr_transponder_path_info_meta = { | |
.name = "kr_transponder_path_info", | |
.type = KR_TRANSPONDER_PATH_INFO, | |
.members_count = 4, | |
.members[0].name = "name", | |
.members[0].type = KR_DY_STRING, | |
.members[1].name = "direction", | |
.members[1].type = KR_DY_ENUM, | |
.members[2].name = "adapter", | |
.members[2].type = KR_DY_ENUM, | |
.members[3].name = "klydgeinfokludge", | |
.members[3].type = KR_DY_ENUM | |
}; | |
static const kr_meta_info meta_structs[KR_INFO_TYPES_COUNT] = { | |
kr_jack_info_meta, | |
kr_jack_path_info_meta, | |
kr_mixer_info_meta, | |
kr_mixer_path_info_meta, | |
kr_eq_band_info_meta, | |
kr_eq_info_meta, | |
kr_lowpass_info_meta, | |
kr_highpass_info_meta, | |
kr_analog_info_meta, | |
kr_transponder_info_meta, | |
kr_transponder_path_info_meta | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment