Skip to content

Commit

Permalink
use 100 char wide columns in files, fix #146 keyjazz overlay on model 02
Browse files Browse the repository at this point in the history
  • Loading branch information
laamaa committed Jun 13, 2024
1 parent 65c7627 commit f40979e
Show file tree
Hide file tree
Showing 26 changed files with 702 additions and 818 deletions.
4 changes: 4 additions & 0 deletions .clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
BasedOnStyle: LLVM
ColumnLimit: '100'
IndentWidth: '2'
UseTab: Never
4 changes: 4 additions & 0 deletions .editorconfig
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,10 @@ insert_final_newline = true
indent_style = space
indent_size = 2

[*.h]
indent_style = space
indent_size = 2

# Tab indentation (no size specified)
[Makefile]
indent_style = tab
4 changes: 2 additions & 2 deletions src/SDL2_inprint.h
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ extern void inrenderer(SDL_Renderer *renderer);
extern void infont(SDL_Texture *font);
extern void incolor1(SDL_Color *color);
extern void incolor(Uint32 color, Uint32 unused); /* Color must be in 0x00RRGGBB format ! */
extern void inprint(SDL_Renderer *dst, const char *str, Uint32 x, Uint32 y,
Uint32 fgcolor, Uint32 bgcolor);
extern void inprint(SDL_Renderer *dst, const char *str, Uint32 x, Uint32 y, Uint32 fgcolor,
Uint32 bgcolor);

extern SDL_Texture *get_inline_font(void);

Expand Down
10 changes: 4 additions & 6 deletions src/audio.c
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ void audio_cb_in(void *userdata, uint8_t *stream, int len) {
SDL_QueueAudio(devid_out, stream, len);
}

int audio_init(int audio_buffer_size, const char* output_device_name) {
int audio_init(int audio_buffer_size, const char *output_device_name) {

int i = 0;
int m8_device_id = -1;
Expand All @@ -31,8 +31,7 @@ int audio_init(int audio_buffer_size, const char* output_device_name) {
// Check if input device exists before doing anything else
SDL_LogDebug(SDL_LOG_CATEGORY_AUDIO, "%s", SDL_GetAudioDeviceName(i, SDL_TRUE));
if (SDL_strstr(SDL_GetAudioDeviceName(i, SDL_TRUE), "M8") != NULL) {
SDL_Log("M8 Audio Input device found: %s",
SDL_GetAudioDeviceName(i, SDL_TRUE));
SDL_Log("M8 Audio Input device found: %s", SDL_GetAudioDeviceName(i, SDL_TRUE));
m8_device_id = i;
}
}
Expand Down Expand Up @@ -63,9 +62,8 @@ int audio_init(int audio_buffer_size, const char* output_device_name) {
want_in.channels = 2;
want_in.samples = audio_buffer_size;
want_in.callback = audio_cb_in;
devid_in = SDL_OpenAudioDevice(
SDL_GetAudioDeviceName(m8_device_id, SDL_TRUE), SDL_TRUE, &want_in,
&have_in, SDL_AUDIO_ALLOW_ANY_CHANGE);
devid_in = SDL_OpenAudioDevice(SDL_GetAudioDeviceName(m8_device_id, SDL_TRUE), SDL_TRUE,
&want_in, &have_in, SDL_AUDIO_ALLOW_ANY_CHANGE);
if (devid_in == 0) {
SDL_Log("Failed to open M8 audio device, SDL Error: %s", SDL_GetError());
return 0;
Expand Down
51 changes: 21 additions & 30 deletions src/command.c
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,9 @@ int process_command(uint8_t *data, uint32_t size) {
case draw_rectangle_command:

if (size != draw_rectangle_command_datalength) {
SDL_LogError(
SDL_LOG_CATEGORY_ERROR,
"Invalid draw rectangle packet: expected length %d, got %d\n",
draw_rectangle_command_datalength, size);
SDL_LogError(SDL_LOG_CATEGORY_ERROR,
"Invalid draw rectangle packet: expected length %d, got %d",
draw_rectangle_command_datalength, size);
dump_packet(size, recv_buf);
return 0;
break;
Expand All @@ -67,10 +66,9 @@ int process_command(uint8_t *data, uint32_t size) {
case draw_character_command:

if (size != draw_character_command_datalength) {
SDL_LogError(
SDL_LOG_CATEGORY_ERROR,
"Invalid draw character packet: expected length %d, got %d\n",
draw_character_command_datalength, size);
SDL_LogError(SDL_LOG_CATEGORY_ERROR,
"Invalid draw character packet: expected length %d, got %d",
draw_character_command_datalength, size);
dump_packet(size, recv_buf);
return 0;
break;
Expand All @@ -79,8 +77,8 @@ int process_command(uint8_t *data, uint32_t size) {
struct draw_character_command charcmd = {
recv_buf[1], // char
{decodeInt16(recv_buf, 2), decodeInt16(recv_buf, 4)}, // position x/y
{recv_buf[6], recv_buf[7], recv_buf[8]}, // foreground r/g/b
{recv_buf[9], recv_buf[10], recv_buf[11]}}; // background r/g/b
{recv_buf[6], recv_buf[7], recv_buf[8]}, // foreground r/g/b
{recv_buf[9], recv_buf[10], recv_buf[11]}}; // background r/g/b
draw_character(&charcmd);
return 1;
}
Expand All @@ -91,22 +89,18 @@ int process_command(uint8_t *data, uint32_t size) {

if (size < draw_oscilloscope_waveform_command_mindatalength ||
size > draw_oscilloscope_waveform_command_maxdatalength) {
SDL_LogError(
SDL_LOG_CATEGORY_ERROR,
"Invalid draw oscilloscope packet: expected length between %d "
"and %d, got "
"%d\n",
draw_oscilloscope_waveform_command_mindatalength,
draw_oscilloscope_waveform_command_maxdatalength, size);
SDL_LogError(SDL_LOG_CATEGORY_ERROR,
"Invalid draw oscilloscope packet: expected length between %d and %d, got %d",
draw_oscilloscope_waveform_command_mindatalength,
draw_oscilloscope_waveform_command_maxdatalength, size);
dump_packet(size, recv_buf);
return 0;
break;
} else {

struct draw_oscilloscope_waveform_command osccmd;

osccmd.color =
(struct color){recv_buf[1], recv_buf[2], recv_buf[3]}; // color r/g/b
osccmd.color = (struct color){recv_buf[1], recv_buf[2], recv_buf[3]}; // color r/g/b
memcpy(osccmd.waveform, &recv_buf[4], size - 4);

osccmd.waveform_size = size - 4;
Expand All @@ -119,11 +113,10 @@ int process_command(uint8_t *data, uint32_t size) {

case joypad_keypressedstate_command: {
if (size != joypad_keypressedstate_command_datalength) {
SDL_LogError(
SDL_LOG_CATEGORY_ERROR,
"Invalid joypad keypressed state packet: expected length %d, "
"got %d\n",
joypad_keypressedstate_command_datalength, size);
SDL_LogError(SDL_LOG_CATEGORY_ERROR,
"Invalid joypad keypressed state packet: expected length %d, "
"got %d\n",
joypad_keypressedstate_command_datalength, size);
dump_packet(size, recv_buf);
return 0;
break;
Expand All @@ -137,21 +130,19 @@ int process_command(uint8_t *data, uint32_t size) {
case system_info_command: {
if (size != system_info_command_datalength) {
SDL_LogError(SDL_LOG_CATEGORY_ERROR,
"Invalid system info packet: expected length %d, "
"got %d\n",
"Invalid system info packet: expected length %d, got %d\n",
system_info_command_datalength, size);
dump_packet(size, recv_buf);
break;
}

char *hwtype[4] = {"Headless", "Beta M8", "Production M8",
"Production M8 Model:02"};
char *hwtype[4] = {"Headless", "Beta M8", "Production M8", "Production M8 Model:02"};

static int system_info_printed = 0;

if (system_info_printed == 0) {
SDL_Log("** Hardware info ** Device type: %s, Firmware ver %d.%d.%d",
hwtype[recv_buf[1]], recv_buf[2], recv_buf[3], recv_buf[4]);
SDL_Log("** Hardware info ** Device type: %s, Firmware ver %d.%d.%d", hwtype[recv_buf[1]],
recv_buf[2], recv_buf[3], recv_buf[4]);
system_info_printed = 1;
}

Expand Down
120 changes: 42 additions & 78 deletions src/config.c
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ config_params_s init_config() {
c.wait_for_device = 1; // default to exit if device disconnected
c.wait_packets = 1024; // default zero-byte attempts to disconnect (about 2
// sec for default idle_ms)
c.audio_enabled = 0; // route M8 audio to default output
c.audio_enabled = 0; // route M8 audio to default output
c.audio_buffer_size = 1024; // requested audio buffer size in samples
c.audio_device_name = NULL; // Use this device, leave NULL to use the default output device

Expand Down Expand Up @@ -80,8 +80,7 @@ void write_config(config_params_s *conf) {

// Open the default config file for writing
char config_path[1024] = {0};
snprintf(config_path, sizeof(config_path), "%s%s", SDL_GetPrefPath("", "m8c"),
conf->filename);
snprintf(config_path, sizeof(config_path), "%s%s", SDL_GetPrefPath("", "m8c"), conf->filename);
SDL_RWops *rw = SDL_RWFromFile(config_path, "w");

SDL_Log("Writing config file to %s", config_path);
Expand All @@ -100,39 +99,28 @@ void write_config(config_params_s *conf) {
snprintf(ini_values[initPointer++], LINELEN, "idle_ms=%d\n", conf->idle_ms);
snprintf(ini_values[initPointer++], LINELEN, "wait_for_device=%s\n",
conf->wait_for_device ? "true" : "false");
snprintf(ini_values[initPointer++], LINELEN, "wait_packets=%d\n",
conf->wait_packets);
snprintf(ini_values[initPointer++], LINELEN, "wait_packets=%d\n", conf->wait_packets);
snprintf(ini_values[initPointer++], LINELEN, "[audio]\n");
snprintf(ini_values[initPointer++], LINELEN, "audio_enabled=%s\n",
conf->audio_enabled ? "true" : "false");
snprintf(ini_values[initPointer++], LINELEN, "audio_buffer_size=%d\n",
conf->audio_buffer_size);
snprintf(ini_values[initPointer++], LINELEN, "audio_buffer_size=%d\n", conf->audio_buffer_size);
snprintf(ini_values[initPointer++], LINELEN, "audio_device_name=%s\n",
conf->audio_device_name ? conf->audio_device_name : "Default");
snprintf(ini_values[initPointer++], LINELEN, "[keyboard]\n");
snprintf(ini_values[initPointer++], LINELEN, "key_up=%d\n", conf->key_up);
snprintf(ini_values[initPointer++], LINELEN, "key_left=%d\n", conf->key_left);
snprintf(ini_values[initPointer++], LINELEN, "key_down=%d\n", conf->key_down);
snprintf(ini_values[initPointer++], LINELEN, "key_right=%d\n",
conf->key_right);
snprintf(ini_values[initPointer++], LINELEN, "key_select=%d\n",
conf->key_select);
snprintf(ini_values[initPointer++], LINELEN, "key_select_alt=%d\n",
conf->key_select_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_start=%d\n",
conf->key_start);
snprintf(ini_values[initPointer++], LINELEN, "key_start_alt=%d\n",
conf->key_start_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_right=%d\n", conf->key_right);
snprintf(ini_values[initPointer++], LINELEN, "key_select=%d\n", conf->key_select);
snprintf(ini_values[initPointer++], LINELEN, "key_select_alt=%d\n", conf->key_select_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_start=%d\n", conf->key_start);
snprintf(ini_values[initPointer++], LINELEN, "key_start_alt=%d\n", conf->key_start_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_opt=%d\n", conf->key_opt);
snprintf(ini_values[initPointer++], LINELEN, "key_opt_alt=%d\n",
conf->key_opt_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_opt_alt=%d\n", conf->key_opt_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_edit=%d\n", conf->key_edit);
snprintf(ini_values[initPointer++], LINELEN, "key_edit_alt=%d\n",
conf->key_edit_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_delete=%d\n",
conf->key_delete);
snprintf(ini_values[initPointer++], LINELEN, "key_reset=%d\n",
conf->key_reset);
snprintf(ini_values[initPointer++], LINELEN, "key_edit_alt=%d\n", conf->key_edit_alt);
snprintf(ini_values[initPointer++], LINELEN, "key_delete=%d\n", conf->key_delete);
snprintf(ini_values[initPointer++], LINELEN, "key_reset=%d\n", conf->key_reset);
snprintf(ini_values[initPointer++], LINELEN, "key_jazz_inc_octave=%d\n",
conf->key_jazz_inc_octave);
snprintf(ini_values[initPointer++], LINELEN, "key_jazz_dec_octave=%d\n",
Expand All @@ -142,37 +130,26 @@ void write_config(config_params_s *conf) {
snprintf(ini_values[initPointer++], LINELEN, "key_jazz_dec_velocity=%d\n",
conf->key_jazz_dec_velocity);
snprintf(ini_values[initPointer++], LINELEN, "[gamepad]\n");
snprintf(ini_values[initPointer++], LINELEN, "gamepad_up=%d\n",
conf->gamepad_up);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_left=%d\n",
conf->gamepad_left);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_down=%d\n",
conf->gamepad_down);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_right=%d\n",
conf->gamepad_right);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_select=%d\n",
conf->gamepad_select);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_start=%d\n",
conf->gamepad_start);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_opt=%d\n",
conf->gamepad_opt);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_edit=%d\n",
conf->gamepad_edit);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_quit=%d\n",
conf->gamepad_quit);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_reset=%d\n",
conf->gamepad_reset);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_up=%d\n", conf->gamepad_up);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_left=%d\n", conf->gamepad_left);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_down=%d\n", conf->gamepad_down);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_right=%d\n", conf->gamepad_right);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_select=%d\n", conf->gamepad_select);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_start=%d\n", conf->gamepad_start);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_opt=%d\n", conf->gamepad_opt);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_edit=%d\n", conf->gamepad_edit);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_quit=%d\n", conf->gamepad_quit);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_reset=%d\n", conf->gamepad_reset);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_threshold=%d\n",
conf->gamepad_analog_threshold);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_invert=%s\n",
conf->gamepad_analog_invert ? "true" : "false");
snprintf(ini_values[initPointer++], LINELEN,
"gamepad_analog_axis_updown=%d\n", conf->gamepad_analog_axis_updown);
snprintf(ini_values[initPointer++], LINELEN,
"gamepad_analog_axis_leftright=%d\n",
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_axis_updown=%d\n",
conf->gamepad_analog_axis_updown);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_axis_leftright=%d\n",
conf->gamepad_analog_axis_leftright);
snprintf(ini_values[initPointer++], LINELEN,
"gamepad_analog_axis_select=%d\n", conf->gamepad_analog_axis_select);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_axis_select=%d\n",
conf->gamepad_analog_axis_select);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_axis_start=%d\n",
conf->gamepad_analog_axis_start);
snprintf(ini_values[initPointer++], LINELEN, "gamepad_analog_axis_opt=%d\n",
Expand All @@ -188,11 +165,9 @@ void write_config(config_params_s *conf) {
for (int i = 0; i < INI_LINE_COUNT; i++) {
size_t len = SDL_strlen(ini_values[i]);
if (SDL_RWwrite(rw, ini_values[i], 1, len) != len) {
SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM,
"Couldn't write line into config file.");
SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM, "Couldn't write line into config file.");
} else {
SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM, "Wrote to config: %s",
ini_values[i]);
SDL_LogDebug(SDL_LOG_CATEGORY_SYSTEM, "Wrote to config: %s", ini_values[i]);
}
}
SDL_RWclose(rw);
Expand All @@ -205,8 +180,7 @@ void write_config(config_params_s *conf) {
void read_config(config_params_s *conf) {

char config_path[1024] = {0};
snprintf(config_path, sizeof(config_path), "%s%s", SDL_GetPrefPath("", "m8c"),
conf->filename);
snprintf(config_path, sizeof(config_path), "%s%s", SDL_GetPrefPath("", "m8c"), conf->filename);
SDL_Log("Reading config %s", config_path);
ini_t *ini = ini_load(config_path);
if (ini == NULL) {
Expand All @@ -229,10 +203,8 @@ void read_config(config_params_s *conf) {

void read_audio_config(ini_t *ini, config_params_s *conf) {
const char *param_audio_enabled = ini_get(ini, "audio", "audio_enabled");
const char *param_audio_buffer_size =
ini_get(ini, "audio", "audio_buffer_size");
const char *param_audio_device_name =
ini_get(ini, "audio", "audio_device_name");
const char *param_audio_buffer_size = ini_get(ini, "audio", "audio_buffer_size");
const char *param_audio_device_name = ini_get(ini, "audio", "audio_device_name");

if (param_audio_enabled != NULL) {
if (strcmpci(param_audio_enabled, "true") == 0) {
Expand Down Expand Up @@ -357,22 +329,15 @@ void read_gamepad_config(ini_t *ini, config_params_s *conf) {
const char *gamepad_edit = ini_get(ini, "gamepad", "gamepad_edit");
const char *gamepad_quit = ini_get(ini, "gamepad", "gamepad_quit");
const char *gamepad_reset = ini_get(ini, "gamepad", "gamepad_reset");
const char *gamepad_analog_threshold =
ini_get(ini, "gamepad", "gamepad_analog_threshold");
const char *gamepad_analog_invert =
ini_get(ini, "gamepad", "gamepad_analog_invert");
const char *gamepad_analog_axis_updown =
ini_get(ini, "gamepad", "gamepad_analog_axis_updown");
const char *gamepad_analog_threshold = ini_get(ini, "gamepad", "gamepad_analog_threshold");
const char *gamepad_analog_invert = ini_get(ini, "gamepad", "gamepad_analog_invert");
const char *gamepad_analog_axis_updown = ini_get(ini, "gamepad", "gamepad_analog_axis_updown");
const char *gamepad_analog_axis_leftright =
ini_get(ini, "gamepad", "gamepad_analog_axis_leftright");
const char *gamepad_analog_axis_select =
ini_get(ini, "gamepad", "gamepad_analog_axis_select");
const char *gamepad_analog_axis_start =
ini_get(ini, "gamepad", "gamepad_analog_axis_start");
const char *gamepad_analog_axis_opt =
ini_get(ini, "gamepad", "gamepad_analog_axis_opt");
const char *gamepad_analog_axis_edit =
ini_get(ini, "gamepad", "gamepad_analog_axis_edit");
ini_get(ini, "gamepad", "gamepad_analog_axis_leftright");
const char *gamepad_analog_axis_select = ini_get(ini, "gamepad", "gamepad_analog_axis_select");
const char *gamepad_analog_axis_start = ini_get(ini, "gamepad", "gamepad_analog_axis_start");
const char *gamepad_analog_axis_opt = ini_get(ini, "gamepad", "gamepad_analog_axis_opt");
const char *gamepad_analog_axis_edit = ini_get(ini, "gamepad", "gamepad_analog_axis_edit");

if (gamepad_up)
conf->gamepad_up = SDL_atoi(gamepad_up);
Expand Down Expand Up @@ -405,8 +370,7 @@ void read_gamepad_config(ini_t *ini, config_params_s *conf) {
if (gamepad_analog_axis_updown)
conf->gamepad_analog_axis_updown = SDL_atoi(gamepad_analog_axis_updown);
if (gamepad_analog_axis_leftright)
conf->gamepad_analog_axis_leftright =
SDL_atoi(gamepad_analog_axis_leftright);
conf->gamepad_analog_axis_leftright = SDL_atoi(gamepad_analog_axis_leftright);
if (gamepad_analog_axis_select)
conf->gamepad_analog_axis_select = SDL_atoi(gamepad_analog_axis_select);
if (gamepad_analog_axis_start)
Expand Down
Loading

0 comments on commit f40979e

Please sign in to comment.