Skip to content

Instantly share code, notes, and snippets.

@streamer45
Last active January 3, 2016 05:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save streamer45/8418577 to your computer and use it in GitHub Desktop.
Save streamer45/8418577 to your computer and use it in GitHub Desktop.
diff --git a/lib/gen/dejson_common.c b/lib/gen/dejson_common.c
index cad2b7c..2dec5b6 100644
--- a/lib/gen/dejson_common.c
+++ b/lib/gen/dejson_common.c
@@ -1,7 +1,8 @@
#include "gen.h"
int info_unpack_fr_json(char *json, uber_St *uber) {
- const info_unpack_fr_json_func fr_json_functions[64] = {kr_alsa_info_fr_json,
- kr_alsa_path_info_fr_json,kr_easing_fr_json,
+ const info_unpack_fr_json_func fr_json_functions[69] = {kr_alsa_info_fr_json,
+ kr_alsa_path_info_fr_json,kr_app_method_fr_json,
+ kr_crate2_fr_json,kr_easing_fr_json,
kr_compositor_path_type_fr_json,kr_compositor_subunit_type_fr_json,
kr_vector_type_fr_json,kr_compositor_control_fr_json,
kr_compositor_controls_fr_json,kr_sprite_info_fr_json,
@@ -17,22 +18,24 @@ int info_unpack_fr_json(char *json, uber_St *uber) {
kr_mixer_control_fr_json,kr_mixer_path_type_fr_json,
kr_mixer_adv_ctl_fr_json,kr_mixer_info_fr_json,
kr_mixer_path_info_fr_json,kr_mixer_path_patch_fr_json,
- kr_sfx_control_fr_json,kr_sfx_effect_type_fr_json,
- kr_sfx_effect_control_fr_json,kr_eq_band_info_fr_json,
- kr_eq_info_fr_json,kr_lowpass_info_fr_json,
- kr_highpass_info_fr_json,kr_analog_info_fr_json,
- kr_adapter_path_direction_fr_json,kr_adapter_api_fr_json,
- kr_adapter_api_info_fr_json,kr_adapter_api_path_info_fr_json,
- kr_adapter_info_fr_json,kr_adapter_path_info_fr_json,
- krad_link_av_mode_t_fr_json,kr_txpdr_su_type_t_fr_json,
- krad_link_transport_mode_t_fr_json,kr_transponder_path_io_type_fr_json,
- kr_transponder_info_fr_json,kr_transponder_path_io_path_info_fr_json,
- kr_transponder_path_io_info_fr_json,kr_transponder_path_info_fr_json,
- kr_transponder_path_patch_fr_json,kr_v4l2_state_fr_json,
- kr_v4l2_mode_fr_json,kr_v4l2_info_fr_json,
- kr_v4l2_open_info_fr_json,kr_wayland_info_fr_json,
- kr_wayland_path_info_fr_json,kr_x11_info_fr_json,
- kr_x11_path_info_fr_json};
+ kr_nil_fr_json,kr_radio_payload_type_fr_json,
+ kr_radio_payload_fr_json,kr_sfx_control_fr_json,
+ kr_sfx_effect_type_fr_json,kr_sfx_effect_control_fr_json,
+ kr_eq_band_info_fr_json,kr_eq_info_fr_json,
+ kr_lowpass_info_fr_json,kr_highpass_info_fr_json,
+ kr_analog_info_fr_json,kr_adapter_path_direction_fr_json,
+ kr_adapter_api_fr_json,kr_adapter_api_info_fr_json,
+ kr_adapter_api_path_info_fr_json,kr_adapter_info_fr_json,
+ kr_adapter_path_info_fr_json,krad_link_av_mode_t_fr_json,
+ kr_txpdr_su_type_t_fr_json,krad_link_transport_mode_t_fr_json,
+ kr_transponder_path_io_type_fr_json,kr_transponder_info_fr_json,
+ kr_transponder_path_io_path_info_fr_json,kr_transponder_path_io_info_fr_json,
+ kr_transponder_path_info_fr_json,kr_transponder_path_patch_fr_json,
+ kr_v4l2_state_fr_json,kr_v4l2_mode_fr_json,
+ kr_v4l2_info_fr_json,kr_v4l2_open_info_fr_json,
+ kr_wayland_info_fr_json,kr_wayland_path_info_fr_json,
+ kr_x11_info_fr_json,kr_x11_path_info_fr_json
+ };
return fr_json_functions[uber->type-1](json , uber->actual);
}
diff --git a/lib/gen/gen.c b/lib/gen/gen.c
index 45a566d..0ae8466 100644
--- a/lib/gen/gen.c
+++ b/lib/gen/gen.c
@@ -6,6 +6,8 @@
#include "../krad_alsa/gen/krad_alsa_common_helpers.c"
#include "../krad_app/gen/krad_app_common_to_ebml.c"
#include "../krad_app/gen/krad_app_common_from_ebml.c"
+#include "../krad_app/gen/krad_app_common_to_json.c"
+#include "../krad_app/gen/krad_app_common_from_json.c"
#include "../krad_app/gen/krad_app_common_to_text.c"
#include "../krad_app/gen/krad_app_common_helpers.c"
#include "../krad_chronometer/gen/krad_easing_common_to_json.c"
@@ -53,6 +55,8 @@
#include "../krad_mixer/gen/krad_mixer_common_helpers.c"
#include "../krad_radio/gen/krad_radio_payload_to_ebml.c"
#include "../krad_radio/gen/krad_radio_payload_from_ebml.c"
+#include "../krad_radio/gen/krad_radio_payload_to_json.c"
+#include "../krad_radio/gen/krad_radio_payload_from_json.c"
#include "../krad_radio/gen/krad_radio_payload_to_text.c"
#include "../krad_radio/gen/krad_radio_payload_helpers.c"
#include "../krad_sfx/gen/krad_sfx_common_to_json.c"
diff --git a/lib/gen/gen.h b/lib/gen/gen.h
index cb90df6..2c1c95e 100644
--- a/lib/gen/gen.h
+++ b/lib/gen/gen.h
@@ -97,6 +97,8 @@ enum {
typedef enum {
JSON_KR_ALSA_INFO = 1,
JSON_KR_ALSA_PATH_INFO,
+ JSON_KR_APP_METHOD,
+ JSON_KR_CRATE2,
JSON_KR_EASING,
JSON_KR_COMPOSITOR_PATH_TYPE,
JSON_KR_COMPOSITOR_SUBUNIT_TYPE,
@@ -128,6 +130,9 @@ typedef enum {
JSON_KR_MIXER_INFO,
JSON_KR_MIXER_PATH_INFO,
JSON_KR_MIXER_PATH_PATCH,
+ JSON_KR_NIL,
+ JSON_KR_RADIO_PAYLOAD_TYPE,
+ JSON_KR_RADIO_PAYLOAD,
JSON_KR_SFX_CONTROL,
JSON_KR_SFX_EFFECT_TYPE,
JSON_KR_SFX_EFFECT_CONTROL,
@@ -162,12 +167,14 @@ typedef enum {
} json_enum;
enum {
- JSON_ENUM_LAST = 64
+ JSON_ENUM_LAST = 69
};
typedef enum {
DEJSON_KR_ALSA_INFO = 1,
DEJSON_KR_ALSA_PATH_INFO,
+ DEJSON_KR_APP_METHOD,
+ DEJSON_KR_CRATE2,
DEJSON_KR_EASING,
DEJSON_KR_COMPOSITOR_PATH_TYPE,
DEJSON_KR_COMPOSITOR_SUBUNIT_TYPE,
@@ -199,6 +206,9 @@ typedef enum {
DEJSON_KR_MIXER_INFO,
DEJSON_KR_MIXER_PATH_INFO,
DEJSON_KR_MIXER_PATH_PATCH,
+ DEJSON_KR_NIL,
+ DEJSON_KR_RADIO_PAYLOAD_TYPE,
+ DEJSON_KR_RADIO_PAYLOAD,
DEJSON_KR_SFX_CONTROL,
DEJSON_KR_SFX_EFFECT_TYPE,
DEJSON_KR_SFX_EFFECT_CONTROL,
@@ -233,7 +243,7 @@ typedef enum {
} dejson_enum;
enum {
- DEJSON_ENUM_LAST = 64
+ DEJSON_ENUM_LAST = 69
};
typedef enum {
diff --git a/lib/gen/json_common.c b/lib/gen/json_common.c
index a8272a0..1a39919 100644
--- a/lib/gen/json_common.c
+++ b/lib/gen/json_common.c
@@ -1,7 +1,8 @@
#include "gen.h"
int info_pack_to_json(char *json, uber_St *uber, int32_t max) {
- const info_pack_to_json_func to_json_functions[64] = {kr_alsa_info_to_json,
- kr_alsa_path_info_to_json,kr_easing_to_json,
+ const info_pack_to_json_func to_json_functions[69] = {kr_alsa_info_to_json,
+ kr_alsa_path_info_to_json,kr_app_method_to_json,
+ kr_crate2_to_json,kr_easing_to_json,
kr_compositor_path_type_to_json,kr_compositor_subunit_type_to_json,
kr_vector_type_to_json,kr_compositor_control_to_json,
kr_compositor_controls_to_json,kr_sprite_info_to_json,
@@ -17,22 +18,24 @@ int info_pack_to_json(char *json, uber_St *uber, int32_t max) {
kr_mixer_control_to_json,kr_mixer_path_type_to_json,
kr_mixer_adv_ctl_to_json,kr_mixer_info_to_json,
kr_mixer_path_info_to_json,kr_mixer_path_patch_to_json,
- kr_sfx_control_to_json,kr_sfx_effect_type_to_json,
- kr_sfx_effect_control_to_json,kr_eq_band_info_to_json,
- kr_eq_info_to_json,kr_lowpass_info_to_json,
- kr_highpass_info_to_json,kr_analog_info_to_json,
- kr_adapter_path_direction_to_json,kr_adapter_api_to_json,
- kr_adapter_api_info_to_json,kr_adapter_api_path_info_to_json,
- kr_adapter_info_to_json,kr_adapter_path_info_to_json,
- krad_link_av_mode_t_to_json,kr_txpdr_su_type_t_to_json,
- krad_link_transport_mode_t_to_json,kr_transponder_path_io_type_to_json,
- kr_transponder_info_to_json,kr_transponder_path_io_path_info_to_json,
- kr_transponder_path_io_info_to_json,kr_transponder_path_info_to_json,
- kr_transponder_path_patch_to_json,kr_v4l2_state_to_json,
- kr_v4l2_mode_to_json,kr_v4l2_info_to_json,
- kr_v4l2_open_info_to_json,kr_wayland_info_to_json,
- kr_wayland_path_info_to_json,kr_x11_info_to_json,
- kr_x11_path_info_to_json};
+ kr_nil_to_json,kr_radio_payload_type_to_json,
+ kr_radio_payload_to_json,kr_sfx_control_to_json,
+ kr_sfx_effect_type_to_json,kr_sfx_effect_control_to_json,
+ kr_eq_band_info_to_json,kr_eq_info_to_json,
+ kr_lowpass_info_to_json,kr_highpass_info_to_json,
+ kr_analog_info_to_json,kr_adapter_path_direction_to_json,
+ kr_adapter_api_to_json,kr_adapter_api_info_to_json,
+ kr_adapter_api_path_info_to_json,kr_adapter_info_to_json,
+ kr_adapter_path_info_to_json,krad_link_av_mode_t_to_json,
+ kr_txpdr_su_type_t_to_json,krad_link_transport_mode_t_to_json,
+ kr_transponder_path_io_type_to_json,kr_transponder_info_to_json,
+ kr_transponder_path_io_path_info_to_json,kr_transponder_path_io_info_to_json,
+ kr_transponder_path_info_to_json,kr_transponder_path_patch_to_json,
+ kr_v4l2_state_to_json,kr_v4l2_mode_to_json,
+ kr_v4l2_info_to_json,kr_v4l2_open_info_to_json,
+ kr_wayland_info_to_json,kr_wayland_path_info_to_json,
+ kr_x11_info_to_json,kr_x11_path_info_to_json
+ };
return to_json_functions[uber->type-1](json , uber->actual, max);
}
diff --git a/lib/krad_app/krad_app_common.h b/lib/krad_app/krad_app_common.h
index 1f79c2a..56af1c4 100644
--- a/lib/krad_app/krad_app_common.h
+++ b/lib/krad_app/krad_app_common.h
@@ -9,6 +9,8 @@
#include "gen/krad_app_common_to_ebml.h"
#include "gen/krad_app_common_from_ebml.h"
+#include "gen/krad_app_common_to_json.h"
+#include "gen/krad_app_common_from_json.h"
#include "gen/krad_app_common_to_text.h"
#include "gen/krad_app_common_helpers.h"
diff --git a/lib/krad_app/krad_app_server.c b/lib/krad_app/krad_app_server.c
index e0240c3..2ab5f40 100644
--- a/lib/krad_app/krad_app_server.c
+++ b/lib/krad_app/krad_app_server.c
@@ -137,11 +137,17 @@ static int validate_ebml_client(kr_app_server_client *client) {
}
static int pack_crate_rest(uint8_t *buffer, kr_crate2 *crate, size_t max) {
- return 45;
+ int res;
+ printk("rest crate packing");
+ res = kr_crate2_to_json((char *)buffer, crate, max);
+ return res;
}
static int pack_crate_websocket(uint8_t *buffer, kr_crate2 *crate, size_t max) {
- return 666; /* :| */
+ int res;
+ printk("ws crate packing");
+ res = kr_crate2_to_json((char *)buffer, crate, max);
+ return res;
}
static int pack_crate_ebml(uint8_t *buffer, kr_crate2 *crate, size_t max) {
@@ -163,13 +169,14 @@ static int unpack_crate_rest(kr_crate2 *crate, kr_io2_t *in) {
if (!(kr_io2_has_in(in))) {
return 0;
}
- //ret = kr_crate2_fr_json(in->rd_buf, crate, in->len);
- ret = 45; /*streamer*/
- if (ret == 0) {
+ ret = kr_crate2_fr_json((char *)in->rd_buf, crate);
+
+ if (ret > 0) {
char string[8192];
ret = kr_crate2_to_text(string, crate, sizeof(string));
if (ret > 0) {
- printk("App Server: %"PRIu64" byte crate: (from json+rest)\n%s\n", string);
+ printk("App Server: %"PRIu64" byte crate: (from json+rest)\n%s\n", ret);
+ printk("%s",string);
}
//kr_io2_pulled(in, ebml.pos);
return 1;
@@ -182,13 +189,13 @@ static int unpack_crate_websocket(kr_crate2 *crate, kr_io2_t *in) {
if (!(kr_io2_has_in(in))) {
return 0;
}
- //ret = kr_crate2_fr_json(in->rd_buf, crate, in->len);
- ret = 45; /*streamer*/
- if (ret == 0) {
+ ret = kr_crate2_fr_json((char *)in->rd_buf, crate);
+ if (ret > 0) {
char string[8192];
ret = kr_crate2_to_text(string, crate, sizeof(string));
if (ret > 0) {
- printk("App Server: %"PRIu64" byte crate: (from json+websocket)\n%s\n", string);
+ printk("App Server: %"PRIu64" byte crate: (from json+websocket)\n%s\n", ret);
+ printk("%s",string);
}
//kr_io2_pulled(in, ebml.pos);
return 1;
diff --git a/lib/krad_radio/krad_radio_payload.h b/lib/krad_radio/krad_radio_payload.h
index cade8ed..3ee0936 100644
--- a/lib/krad_radio/krad_radio_payload.h
+++ b/lib/krad_radio/krad_radio_payload.h
@@ -8,6 +8,8 @@
#include "gen/krad_radio_payload_to_ebml.h"
#include "gen/krad_radio_payload_from_ebml.h"
+#include "gen/krad_radio_payload_to_json.h"
+#include "gen/krad_radio_payload_from_json.h"
#include "gen/krad_radio_payload_to_text.h"
#include "gen/krad_radio_payload_helpers.h"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment