diff --git a/tui_main.c b/tui_main.c index 93910a3..3d95dec 100644 --- a/tui_main.c +++ b/tui_main.c @@ -23,6 +23,8 @@ static int spin_track_timeout = 0; #endif +#define staticni ORCA_NOINLINE static + static void usage(void) { // clang-format off fprintf(stderr, @@ -162,8 +164,8 @@ void ged_cursor_init(Ged_cursor *tc) { tc->w = tc->h = 1; } -void ged_cursor_move_relative(Ged_cursor *tc, Usz field_h, Usz field_w, - Isz delta_y, Isz delta_x) { +static void ged_cursor_move_relative(Ged_cursor *tc, Usz field_h, Usz field_w, + Isz delta_y, Isz delta_x) { Isz y0 = (Isz)tc->y + delta_y; Isz x0 = (Isz)tc->x + delta_x; if (y0 >= (Isz)field_h) @@ -178,11 +180,12 @@ void ged_cursor_move_relative(Ged_cursor *tc, Usz field_h, Usz field_w, tc->x = (Usz)x0; } -void draw_grid_cursor(WINDOW *win, int draw_y, int draw_x, int draw_h, - int draw_w, Glyph const *gbuffer, Usz field_h, - Usz field_w, int scroll_y, int scroll_x, Usz cursor_y, - Usz cursor_x, Usz cursor_h, Usz cursor_w, - Ged_input_mode input_mode, bool is_playing) { +staticni void draw_grid_cursor(WINDOW *win, int draw_y, int draw_x, int draw_h, + int draw_w, Glyph const *gbuffer, Usz field_h, + Usz field_w, int scroll_y, int scroll_x, + Usz cursor_y, Usz cursor_x, Usz cursor_h, + Usz cursor_w, Ged_input_mode input_mode, + bool is_playing) { (void)input_mode; if (cursor_y >= field_h || cursor_x >= field_w) return; @@ -305,11 +308,11 @@ typedef struct { Usz count, limit; } Undo_history; -void undo_history_init(Undo_history *hist, Usz limit) { +static void undo_history_init(Undo_history *hist, Usz limit) { *hist = (Undo_history){0}; hist->limit = limit; } -void undo_history_deinit(Undo_history *hist) { +static void undo_history_deinit(Undo_history *hist) { Undo_node *a = hist->first; while (a) { Undo_node *b = a->next; @@ -319,7 +322,8 @@ void undo_history_deinit(Undo_history *hist) { } } -bool undo_history_push(Undo_history *hist, Field *field, Usz tick_num) { +staticni bool undo_history_push(Undo_history *hist, Field *field, + Usz tick_num) { if (hist->limit == 0) return false; Undo_node *new_node; @@ -354,7 +358,8 @@ bool undo_history_push(Undo_history *hist, Field *field, Usz tick_num) { return true; } -void undo_history_pop(Undo_history *hist, Field *out_field, Usz *out_tick_num) { +staticni void undo_history_pop(Undo_history *hist, Field *out_field, + Usz *out_tick_num) { Undo_node *last = hist->last; if (!last) return; @@ -373,8 +378,8 @@ void undo_history_pop(Undo_history *hist, Field *out_field, Usz *out_tick_num) { --hist->count; } -void undo_history_apply(Undo_history *hist, Field *out_field, - Usz *out_tick_num) { +staticni void undo_history_apply(Undo_history *hist, Field *out_field, + Usz *out_tick_num) { Undo_node *last = hist->last; if (!last) return; @@ -382,9 +387,9 @@ void undo_history_apply(Undo_history *hist, Field *out_field, *out_tick_num = last->tick_num; } -Usz undo_history_count(Undo_history *hist) { return hist->count; } +static Usz undo_history_count(Undo_history *hist) { return hist->count; } -void print_activity_indicator(WINDOW *win, Usz activity_counter) { +staticni void print_activity_indicator(WINDOW *win, Usz activity_counter) { // 7 segments that can each light up as Colors different colors. // This gives us Colors^Segments total configurations. enum { Segments = 7, Colors = 4 }; @@ -434,7 +439,7 @@ void print_activity_indicator(WINDOW *win, Usz activity_counter) { #endif } -void advance_faketab(WINDOW *win, int offset_x, int tabstop) { +staticni void advance_faketab(WINDOW *win, int offset_x, int tabstop) { if (tabstop < 1) return; int y, x, h, w; @@ -449,11 +454,11 @@ void advance_faketab(WINDOW *win, int offset_x, int tabstop) { wmove(win, y, x); } -void draw_hud(WINDOW *win, int win_y, int win_x, int height, int width, - char const *filename, Usz field_h, Usz field_w, - Usz ruler_spacing_y, Usz ruler_spacing_x, Usz tick_num, Usz bpm, - Ged_cursor const *ged_cursor, Ged_input_mode input_mode, - Usz activity_counter) { +staticni void draw_hud(WINDOW *win, int win_y, int win_x, int height, int width, + char const *filename, Usz field_h, Usz field_w, + Usz ruler_spacing_y, Usz ruler_spacing_x, Usz tick_num, + Usz bpm, Ged_cursor const *ged_cursor, + Ged_input_mode input_mode, Usz activity_counter) { (void)height; (void)width; enum { Tabstop = 8 }; @@ -495,12 +500,12 @@ void draw_hud(WINDOW *win, int win_y, int win_x, int height, int width, waddstr(win, filename); } -void draw_glyphs_grid(WINDOW *win, int draw_y, int draw_x, int draw_h, - int draw_w, Glyph const *restrict gbuffer, - Mark const *restrict mbuffer, Usz field_h, Usz field_w, - Usz offset_y, Usz offset_x, Usz ruler_spacing_y, - Usz ruler_spacing_x, bool use_fancy_dots, - bool use_fancy_rulers) { +staticni void draw_glyphs_grid(WINDOW *win, int draw_y, int draw_x, int draw_h, + int draw_w, Glyph const *restrict gbuffer, + Mark const *restrict mbuffer, Usz field_h, + Usz field_w, Usz offset_y, Usz offset_x, + Usz ruler_spacing_y, Usz ruler_spacing_x, + bool use_fancy_dots, bool use_fancy_rulers) { assert(draw_y >= 0 && draw_x >= 0); assert(draw_h >= 0 && draw_w >= 0); enum { Bufcount = 4096 }; @@ -570,12 +575,11 @@ void draw_glyphs_grid(WINDOW *win, int draw_y, int draw_x, int draw_h, } } -void draw_glyphs_grid_scrolled(WINDOW *win, int draw_y, int draw_x, int draw_h, - int draw_w, Glyph const *restrict gbuffer, - Mark const *restrict mbuffer, Usz field_h, - Usz field_w, int scroll_y, int scroll_x, - Usz ruler_spacing_y, Usz ruler_spacing_x, - bool use_fancy_dots, bool use_fancy_rulers) { +staticni void draw_glyphs_grid_scrolled( + WINDOW *win, int draw_y, int draw_x, int draw_h, int draw_w, + Glyph const *restrict gbuffer, Mark const *restrict mbuffer, Usz field_h, + Usz field_w, int scroll_y, int scroll_x, Usz ruler_spacing_y, + Usz ruler_spacing_x, bool use_fancy_dots, bool use_fancy_rulers) { if (scroll_y < 0) { draw_y += -scroll_y; scroll_y = 0; @@ -590,7 +594,7 @@ void draw_glyphs_grid_scrolled(WINDOW *win, int draw_y, int draw_x, int draw_h, use_fancy_rulers); } -void ged_cursor_confine(Ged_cursor *tc, Usz height, Usz width) { +static void ged_cursor_confine(Ged_cursor *tc, Usz height, Usz width) { if (height == 0 || width == 0) return; if (tc->y >= height) @@ -599,7 +603,7 @@ void ged_cursor_confine(Ged_cursor *tc, Usz height, Usz width) { tc->x = width - 1; } -void draw_oevent_list(WINDOW *win, Oevent_list const *oevent_list) { +staticni void draw_oevent_list(WINDOW *win, Oevent_list const *oevent_list) { wmove(win, 0, 0); int win_h = getmaxy(win); wprintw(win, "Count: %d", (int)oevent_list->count); @@ -653,9 +657,9 @@ void draw_oevent_list(WINDOW *win, Oevent_list const *oevent_list) { } } -void ged_resize_grid(Field *field, Mbuf_reusable *mbr, Usz new_height, - Usz new_width, Usz tick_num, Field *scratch_field, - Undo_history *undo_hist, Ged_cursor *ged_cursor) { +staticni void ged_resize_grid(Field *field, Mbuf_reusable *mbr, Usz new_height, + Usz new_width, Usz tick_num, Field *scratch_field, + Undo_history *undo_hist, Ged_cursor *ged_cursor) { assert(new_height > 0 && new_width > 0); undo_history_push(undo_hist, field, tick_num); field_copy(field, scratch_field); @@ -670,7 +674,7 @@ void ged_resize_grid(Field *field, Mbuf_reusable *mbr, Usz new_height, mbuf_reusable_ensure_size(mbr, new_height, new_width); } -static Usz adjust_rulers_humanized(Usz ruler, Usz in, Isz delta_rulers) { +staticni Usz adjust_rulers_humanized(Usz ruler, Usz in, Isz delta_rulers) { // slightly more confusing because desired grid sizes are +1 (e.g. ruler of // length 8 wants to snap to 25 and 33, not 24 and 32). also this math is // sloppy. @@ -690,11 +694,12 @@ static Usz adjust_rulers_humanized(Usz ruler, Usz in, Isz delta_rulers) { // Resizes by number of ruler divisions, and snaps size to closest division in // a way a human would expect. Adds +1 to the output, so grid resulting size is // 1 unit longer than the actual ruler length. -bool ged_resize_grid_snap_ruler(Field *field, Mbuf_reusable *mbr, Usz ruler_y, - Usz ruler_x, Isz delta_h, Isz delta_w, - Usz tick_num, Field *scratch_field, - Undo_history *undo_hist, - Ged_cursor *ged_cursor) { +staticni bool ged_resize_grid_snap_ruler(Field *field, Mbuf_reusable *mbr, + Usz ruler_y, Usz ruler_x, Isz delta_h, + Isz delta_w, Usz tick_num, + Field *scratch_field, + Undo_history *undo_hist, + Ged_cursor *ged_cursor) { assert(ruler_y > 0); assert(ruler_x > 0); Usz field_h = field->height; @@ -769,18 +774,18 @@ struct { U64 clock_base; bool did_init; } portmidi_global_data; -PmTimestamp portmidi_timestamp_now(void) { +static PmTimestamp portmidi_timestamp_now(void) { if (!portmidi_global_data.did_init) { portmidi_global_data.did_init = true; portmidi_global_data.clock_base = stm_now(); } return (PmTimestamp)(stm_ms(stm_since(portmidi_global_data.clock_base))); } -PmTimestamp portmidi_timeproc(void *time_info) { +static PmTimestamp portmidi_timeproc(void *time_info) { (void)time_info; return portmidi_timestamp_now(); } -PmError portmidi_init_if_necessary(void) { +static PmError portmidi_init_if_necessary(void) { if (portmidi_is_initialized) return 0; PmError e = Pm_Initialize(); @@ -789,7 +794,7 @@ PmError portmidi_init_if_necessary(void) { portmidi_is_initialized = true; return 0; } -PmError midi_mode_init_portmidi(Midi_mode *mm, PmDeviceID dev_id) { +staticni PmError midi_mode_init_portmidi(Midi_mode *mm, PmDeviceID dev_id) { PmError e = portmidi_init_if_necessary(); if (e) goto fail; @@ -806,6 +811,7 @@ fail: return e; } // Returns true on success. todo currently output only +STATCNI bool portmidi_find_device_id_by_name(char const *name, Usz namelen, PmError *out_pmerror, PmDeviceID *out_id) { *out_pmerror = portmidi_init_if_necessary(); @@ -826,8 +832,8 @@ bool portmidi_find_device_id_by_name(char const *name, Usz namelen, } return false; } -bool portmidi_find_name_of_device_id(PmDeviceID id, PmError *out_pmerror, - oso **out_name) { +static bool portmidi_find_name_of_device_id(PmDeviceID id, PmError *out_pmerror, + oso **out_name) { *out_pmerror = portmidi_init_if_necessary(); if (*out_pmerror) return false; @@ -841,7 +847,7 @@ bool portmidi_find_name_of_device_id(PmDeviceID id, PmError *out_pmerror, return true; } #endif -void midi_mode_deinit(Midi_mode *mm) { +staticni void midi_mode_deinit(Midi_mode *mm) { switch (mm->any.type) { case Midi_mode_type_null: case Midi_mode_type_osc_bidule: @@ -901,7 +907,7 @@ typedef struct { bool is_hud_visible : 1; } Ged; -void ged_init(Ged *a, Usz undo_limit, Usz init_bpm, Usz init_seed) { +static void ged_init(Ged *a, Usz undo_limit, Usz init_bpm, Usz init_seed) { field_init(&a->field); field_init(&a->scratch_field); field_init(&a->clipboard_field); @@ -936,7 +942,7 @@ void ged_init(Ged *a, Usz undo_limit, Usz init_bpm, Usz init_seed) { a->is_hud_visible = false; } -void ged_deinit(Ged *a) { +static void ged_deinit(Ged *a) { field_deinit(&a->field); field_deinit(&a->scratch_field); field_deinit(&a->clipboard_field); @@ -950,18 +956,17 @@ void ged_deinit(Ged *a) { } } -bool ged_is_draw_dirty(Ged *a) { +static bool ged_is_draw_dirty(Ged *a) { return a->is_draw_dirty || a->needs_remarking; } -void ged_set_midi_mode(Ged *a, Midi_mode const *midi_mode) { +static void ged_set_midi_mode(Ged *a, Midi_mode const *midi_mode) { a->midi_mode = midi_mode; } -static ORCA_NOINLINE void // -send_midi_chan_msg(Oosc_dev *oosc_dev, Midi_mode const *midi_mode, - int type /*0..15*/, int chan /*0.. 15*/, - int byte1 /*0..127*/, int byte2 /*0..127*/) { +staticni void send_midi_chan_msg(Oosc_dev *oosc_dev, Midi_mode const *midi_mode, + int type /*0..15*/, int chan /*0.. 15*/, + int byte1 /*0..127*/, int byte2 /*0..127*/) { #ifdef FEAT_PORTMIDI // totally fake, to prevent problems with some MIDI systems getting angry if // there's no timestamping info. @@ -996,7 +1001,7 @@ send_midi_chan_msg(Oosc_dev *oosc_dev, Midi_mode const *midi_mode, } } -static ORCA_NOINLINE void // +staticni void // send_midi_note_offs(Oosc_dev *oosc_dev, Midi_mode const *midi_mode, Susnote const *start, Susnote const *end) { for (; start != end; ++start) { @@ -1012,13 +1017,14 @@ send_midi_note_offs(Oosc_dev *oosc_dev, Midi_mode const *midi_mode, } } -void send_control_message(Oosc_dev *oosc_dev, char const *osc_address) { +static void send_control_message(Oosc_dev *oosc_dev, char const *osc_address) { if (!oosc_dev) return; oosc_send_int32s(oosc_dev, osc_address, NULL, 0); } -void send_num_message(Oosc_dev *oosc_dev, char const *osc_address, I32 num) { +static void send_num_message(Oosc_dev *oosc_dev, char const *osc_address, + I32 num) { if (!oosc_dev) return; I32 nums[1]; @@ -1026,11 +1032,11 @@ void send_num_message(Oosc_dev *oosc_dev, char const *osc_address, I32 num) { oosc_send_int32s(oosc_dev, osc_address, nums, ORCA_ARRAY_COUNTOF(nums)); } -void apply_time_to_sustained_notes(Oosc_dev *oosc_dev, - Midi_mode const *midi_mode, - double time_elapsed, - Susnote_list *susnote_list, - double *next_note_off_deadline) { +staticni void apply_time_to_sustained_notes(Oosc_dev *oosc_dev, + Midi_mode const *midi_mode, + double time_elapsed, + Susnote_list *susnote_list, + double *next_note_off_deadline) { Usz start_removed, end_removed; susnote_list_advance_time(susnote_list, time_elapsed, &start_removed, &end_removed, next_note_off_deadline); @@ -1373,8 +1379,8 @@ void ged_update_internal_geometry(Ged *a) { a->is_hud_visible = show_hud; } -void ged_set_window_size(Ged *a, int win_h, int win_w, int softmargin_y, - int softmargin_x) { +staticni void ged_set_window_size(Ged *a, int win_h, int win_w, + int softmargin_y, int softmargin_x) { if (a->win_h == win_h && a->win_w == win_w && a->softmargin_y == softmargin_y && a->softmargin_x == softmargin_x) return; @@ -1386,8 +1392,8 @@ void ged_set_window_size(Ged *a, int win_h, int win_w, int softmargin_y, ged_make_cursor_visible(a); } -void ged_draw(Ged *a, WINDOW *win, char const *filename, bool use_fancy_dots, - bool use_fancy_rulers) { +staticni void ged_draw(Ged *a, WINDOW *win, char const *filename, + bool use_fancy_dots, bool use_fancy_rulers) { // We can predictavely step the next simulation tick and then use the // resulting mark buffer for better UI visualization. If we don't do this, // after loading a fresh file or after the user performs some edit (or even @@ -1434,7 +1440,7 @@ void ged_draw(Ged *a, WINDOW *win, char const *filename, bool use_fancy_dots, a->is_draw_dirty = false; } -void ged_adjust_bpm(Ged *a, Isz delta_bpm) { +staticni void ged_adjust_bpm(Ged *a, Isz delta_bpm) { Isz new_bpm = (Isz)a->bpm; if (delta_bpm < 0 || new_bpm < INT_MAX - delta_bpm) new_bpm += delta_bpm; @@ -1449,14 +1455,14 @@ void ged_adjust_bpm(Ged *a, Isz delta_bpm) { } } -void ged_move_cursor_relative(Ged *a, Isz delta_y, Isz delta_x) { +static void ged_move_cursor_relative(Ged *a, Isz delta_y, Isz delta_x) { ged_cursor_move_relative(&a->ged_cursor, a->field.height, a->field.width, delta_y, delta_x); ged_make_cursor_visible(a); a->is_draw_dirty = true; } -Usz guarded_selection_axis_resize(Usz x, int delta) { +static Usz guarded_selection_axis_resize(Usz x, int delta) { if (delta < 0) { if (delta > INT_MIN && (Usz)(-delta) < x) { x -= (Usz)(-delta); @@ -1467,7 +1473,7 @@ Usz guarded_selection_axis_resize(Usz x, int delta) { return x; } -void ged_modify_selection_size(Ged *a, int delta_y, int delta_x) { +staticni void ged_modify_selection_size(Ged *a, int delta_y, int delta_x) { Usz cur_h = a->ged_cursor.h, cur_w = a->ged_cursor.w; Usz new_h = guarded_selection_axis_resize(cur_h, delta_y); Usz new_w = guarded_selection_axis_resize(cur_w, delta_x); @@ -1478,8 +1484,9 @@ void ged_modify_selection_size(Ged *a, int delta_y, int delta_x) { } } -bool ged_try_selection_clipped_to_field(Ged const *a, Usz *out_y, Usz *out_x, - Usz *out_h, Usz *out_w) { +staticni bool ged_try_selection_clipped_to_field(Ged const *a, Usz *out_y, + Usz *out_x, Usz *out_h, + Usz *out_w) { Usz curs_y = a->ged_cursor.y, curs_x = a->ged_cursor.x; Usz curs_h = a->ged_cursor.h, curs_w = a->ged_cursor.w; Usz field_h = a->field.height, field_w = a->field.width; @@ -1496,7 +1503,7 @@ bool ged_try_selection_clipped_to_field(Ged const *a, Usz *out_y, Usz *out_x, return true; } -bool ged_slide_selection(Ged *a, int delta_y, int delta_x) { +staticni bool ged_slide_selection(Ged *a, int delta_y, int delta_x) { Usz curs_y_0, curs_x_0, curs_h_0, curs_w_0; Usz curs_y_1, curs_x_1, curs_h_1, curs_w_1; if (!ged_try_selection_clipped_to_field(a, &curs_y_0, &curs_x_0, &curs_h_0, @@ -1552,7 +1559,7 @@ typedef enum { Ged_dir_right, } Ged_dir; -void ged_dir_input(Ged *a, Ged_dir dir, int step_length) { +staticni void ged_dir_input(Ged *a, Ged_dir dir, int step_length) { switch (a->input_mode) { case Ged_input_mode_normal: case Ged_input_mode_append: @@ -1606,7 +1613,8 @@ void ged_dir_input(Ged *a, Ged_dir dir, int step_length) { } } -Usz view_to_scrolled_grid(Usz field_len, Usz visual_coord, int scroll_offset) { +static Usz view_to_scrolled_grid(Usz field_len, Usz visual_coord, + int scroll_offset) { if (field_len == 0) return 0; if (scroll_offset < 0) { @@ -1623,7 +1631,8 @@ Usz view_to_scrolled_grid(Usz field_len, Usz visual_coord, int scroll_offset) { return visual_coord; } -void ged_mouse_event(Ged *a, Usz vis_y, Usz vis_x, mmask_t mouse_bstate) { +staticni void ged_mouse_event(Ged *a, Usz vis_y, Usz vis_x, + mmask_t mouse_bstate) { if (mouse_bstate & BUTTON1_RELEASED) { // hard-disables tracking, but also disables further mouse stuff. // mousemask() with our original parameters seems to work to get into the @@ -1692,7 +1701,7 @@ void ged_mouse_event(Ged *a, Usz vis_y, Usz vis_x, mmask_t mouse_bstate) { #endif } -void ged_adjust_rulers_relative(Ged *a, Isz delta_y, Isz delta_x) { +staticni void ged_adjust_rulers_relative(Ged *a, Isz delta_y, Isz delta_x) { Isz new_y = (Isz)a->ruler_spacing_y + delta_y; Isz new_x = (Isz)a->ruler_spacing_x + delta_x; if (new_y < 4) @@ -1710,7 +1719,7 @@ void ged_adjust_rulers_relative(Ged *a, Isz delta_y, Isz delta_x) { a->is_draw_dirty = true; } -void ged_resize_grid_relative(Ged *a, Isz delta_y, Isz delta_x) { +staticni void ged_resize_grid_relative(Ged *a, Isz delta_y, Isz delta_x) { ged_resize_grid_snap_ruler(&a->field, &a->mbuf_r, a->ruler_spacing_y, a->ruler_spacing_x, delta_y, delta_x, a->tick_num, &a->scratch_field, &a->undo_hist, &a->ged_cursor); @@ -1720,7 +1729,7 @@ void ged_resize_grid_relative(Ged *a, Isz delta_y, Isz delta_x) { ged_make_cursor_visible(a); } -void ged_write_character(Ged *a, char c) { +staticni void ged_write_character(Ged *a, char c) { undo_history_push(&a->undo_hist, &a->field, a->tick_num); gbuffer_poke(a->field.buffer, a->field.height, a->field.width, a->ged_cursor.y, a->ged_cursor.x, c); @@ -1736,7 +1745,7 @@ void ged_write_character(Ged *a, char c) { a->is_draw_dirty = true; } -bool ged_fill_selection_with_char(Ged *a, Glyph c) { +staticni bool ged_fill_selection_with_char(Ged *a, Glyph c) { Usz curs_y, curs_x, curs_h, curs_w; if (!ged_try_selection_clipped_to_field(a, &curs_y, &curs_x, &curs_h, &curs_w)) @@ -1746,7 +1755,7 @@ bool ged_fill_selection_with_char(Ged *a, Glyph c) { return true; } -bool ged_copy_selection_to_clipbard(Ged *a) { +staticni bool ged_copy_selection_to_clipbard(Ged *a) { Usz curs_y, curs_x, curs_h, curs_w; if (!ged_try_selection_clipped_to_field(a, &curs_y, &curs_x, &curs_h, &curs_w)) @@ -1760,7 +1769,7 @@ bool ged_copy_selection_to_clipbard(Ged *a) { return true; } -void ged_input_character(Ged *a, char c) { +staticni void ged_input_character(Ged *a, char c) { switch (a->input_mode) { case Ged_input_mode_append: ged_write_character(a, c); @@ -1794,7 +1803,7 @@ typedef enum { Ged_input_cmd_escape, } Ged_input_cmd; -void ged_input_cmd(Ged *a, Ged_input_cmd ev) { +staticni void ged_input_cmd(Ged *a, Ged_input_cmd ev) { switch (ev) { case Ged_input_cmd_undo: if (undo_history_count(&a->undo_hist) == 0) @@ -1914,7 +1923,7 @@ void ged_input_cmd(Ged *a, Ged_input_cmd ev) { } } -bool hacky_try_save(Field *field, char const *filename) { +static bool hacky_try_save(Field *field, char const *filename) { if (!filename) return false; if (field->height == 0 || field->width == 0) @@ -1980,7 +1989,7 @@ enum { #endif }; -void push_main_menu(void) { +static void push_main_menu(void) { Qmenu *qm = qmenu_create(Main_menu_id); qmenu_set_title(qm, "ORCA"); qmenu_add_choice(qm, Main_menu_new, "New"); @@ -2006,14 +2015,14 @@ void push_main_menu(void) { qmenu_push_to_nav(qm); } -void pop_qnav_if_main_menu(void) { +staticni void pop_qnav_if_main_menu(void) { Qblock *qb = qnav_top_block(); if (qb && qb->tag == Qblock_type_qmenu && qmenu_id(qmenu_of(qb)) == Main_menu_id) qnav_stack_pop(); } -void push_confirm_new_file_menu(void) { +static void push_confirm_new_file_menu(void) { Qmenu *qm = qmenu_create(Confirm_new_file_menu_id); qmenu_set_title(qm, "Are you sure?"); qmenu_add_choice(qm, Confirm_new_file_reject_id, "Cancel"); @@ -2021,7 +2030,7 @@ void push_confirm_new_file_menu(void) { qmenu_push_to_nav(qm); } -void push_autofit_menu(void) { +static void push_autofit_menu(void) { Qmenu *qm = qmenu_create(Autofit_menu_id); qmenu_set_title(qm, "Auto-fit Grid"); qmenu_add_choice(qm, Autofit_nicely_id, "Nicely"); @@ -2034,7 +2043,7 @@ enum { Cosmetics_grid_dots_id, Cosmetics_grid_rulers_id, }; -void push_cosmetics_menu(void) { +static void push_cosmetics_menu(void) { Qmenu *qm = qmenu_create(Cosmetics_menu_id); qmenu_set_title(qm, "Appearance"); qmenu_add_choice(qm, Cosmetics_soft_margins_id, "Margins..."); @@ -2042,7 +2051,7 @@ void push_cosmetics_menu(void) { qmenu_add_choice(qm, Cosmetics_grid_rulers_id, "Grid rulers..."); qmenu_push_to_nav(qm); } -void push_soft_margins_form(int init_y, int init_x) { +static void push_soft_margins_form(int init_y, int init_x) { Qform *qf = qform_create(Set_soft_margins_form_id); char buff[128]; int snres = snprintf(buff, sizeof buff, "%dx%d", init_x, init_y); @@ -2051,8 +2060,8 @@ void push_soft_margins_form(int init_y, int init_x) { qform_add_text_line(qf, Single_form_item_id, inistr); qform_push_to_nav(qf); } -void push_plainorfancy_menu(int menu_id, char const *title, - bool initial_fancy) { +static void push_plainorfancy_menu(int menu_id, char const *title, + bool initial_fancy) { Qmenu *qm = qmenu_create(menu_id); qmenu_set_title(qm, title); qmenu_add_printf(qm, 1, "(%c) Fancy", initial_fancy ? '*' : ' '); @@ -2061,14 +2070,12 @@ void push_plainorfancy_menu(int menu_id, char const *title, qmenu_set_current_item(qm, 2); qmenu_push_to_nav(qm); } - enum { Osc_menu_output_enabledisable = 1, Osc_menu_output_address, Osc_menu_output_port, }; - -void push_osc_menu(bool output_enabled) { +static void push_osc_menu(bool output_enabled) { Qmenu *qm = qmenu_create(Osc_menu_id); qmenu_set_title(qm, "OSC Output"); qmenu_add_printf(qm, Osc_menu_output_enabledisable, "[%c] OSC Output Enabled", @@ -2077,20 +2084,19 @@ void push_osc_menu(bool output_enabled) { qmenu_add_choice(qm, Osc_menu_output_port, "OSC Output Port..."); qmenu_push_to_nav(qm); } -void push_osc_output_address_form(char const *initial) { +static void push_osc_output_address_form(char const *initial) { Qform *qf = qform_create(Osc_output_address_form_id); qform_set_title(qf, "Set OSC Output Address"); qform_add_text_line(qf, Single_form_item_id, initial); qform_push_to_nav(qf); } -void push_osc_output_port_form(char const *initial) { +static void push_osc_output_port_form(char const *initial) { Qform *qf = qform_create(Osc_output_port_form_id); qform_set_title(qf, "Set OSC Output Port"); qform_add_text_line(qf, Single_form_item_id, initial); qform_push_to_nav(qf); } - -void push_about_msg(void) { +static void push_about_msg(void) { // clang-format off static char const* logo[] = { "lqqqk|lqqqk|lqqqk|lqqqk", @@ -2132,8 +2138,7 @@ void push_about_msg(void) { wmove(w, tpad + rows + sep, footer_left_pad); waddstr(w, footer); } - -void push_controls_msg(void) { +static void push_controls_msg(void) { struct Ctrl_item { char const *input; char const *desc; @@ -2198,8 +2203,7 @@ void push_controls_msg(void) { } } } - -void push_opers_guide_msg(void) { +static void push_opers_guide_msg(void) { struct Guide_item { char glyph; char const *name; @@ -2265,15 +2269,13 @@ void push_opers_guide_msg(void) { waddstr(w, items[i].desc); } } - -void push_open_form(char const *initial) { +static void push_open_form(char const *initial) { Qform *qf = qform_create(Open_form_id); qform_set_title(qf, "Open"); qform_add_text_line(qf, Single_form_item_id, initial); qform_push_to_nav(qf); } - -bool try_save_with_msg(Field *field, oso const *str) { +staticni bool try_save_with_msg(Field *field, oso const *str) { if (!osolen(str)) return false; bool ok = hacky_try_save(field, osoc(str)); @@ -2286,15 +2288,13 @@ bool try_save_with_msg(Field *field, oso const *str) { } return ok; } - -void push_save_as_form(char const *initial) { +static void push_save_as_form(char const *initial) { Qform *qf = qform_create(Save_as_form_id); qform_set_title(qf, "Save As"); qform_add_text_line(qf, Single_form_item_id, initial); qform_push_to_nav(qf); } - -void push_set_tempo_form(Usz initial) { +static void push_set_tempo_form(Usz initial) { Qform *qf = qform_create(Set_tempo_form_id); char buff[64]; int snres = snprintf(buff, sizeof buff, "%zu", initial); @@ -2303,8 +2303,7 @@ void push_set_tempo_form(Usz initial) { qform_add_text_line(qf, Single_form_item_id, inistr); qform_push_to_nav(qf); } - -void push_set_grid_dims_form(Usz init_height, Usz init_width) { +static void push_set_grid_dims_form(Usz init_height, Usz init_width) { Qform *qf = qform_create(Set_grid_dims_form_id); char buff[128]; int snres = snprintf(buff, sizeof buff, "%zux%zu", init_width, init_height); @@ -2315,7 +2314,7 @@ void push_set_grid_dims_form(Usz init_height, Usz init_width) { } #ifdef FEAT_PORTMIDI -void push_portmidi_output_device_menu(Midi_mode const *midi_mode) { +staticni void push_portmidi_output_device_menu(Midi_mode const *midi_mode) { Qmenu *qm = qmenu_create(Portmidi_output_device_menu_id); qmenu_set_title(qm, "PortMidi Device Selection"); PmError e = portmidi_init_if_necessary(); @@ -2356,7 +2355,7 @@ void push_portmidi_output_device_menu(Midi_mode const *midi_mode) { } #endif -oso *get_nonempty_singular_form_text(Qform *qf) { +staticni oso *get_nonempty_singular_form_text(Qform *qf) { oso *s = NULL; if (qform_get_text_line(qf, Single_form_item_id, &s) && osolen(s) > 0) return s; @@ -2368,7 +2367,7 @@ oso *get_nonempty_singular_form_text(Qform *qf) { // Misc utils // -bool read_int(char const *str, int *out) { +staticni bool read_int(char const *str, int *out) { int a; int res = sscanf(str, "%d", &a); if (res != 1) @@ -2379,7 +2378,7 @@ bool read_int(char const *str, int *out) { // Reads something like '5x3' or '5'. Writes the same value to both outputs if // only one is specified. Returns false on error. -bool read_nxn_or_n(char const *str, int *out_a, int *out_b) { +staticni bool read_nxn_or_n(char const *str, int *out_a, int *out_b) { int a, b; int res = sscanf(str, "%dx%d", &a, &b); if (res == EOF) @@ -2403,7 +2402,8 @@ typedef enum { Bracketed_paste_sequence_end, } Bracketed_paste_sequence; -Bracketed_paste_sequence bracketed_paste_sequence_getch_ungetch(WINDOW *win) { +staticni Bracketed_paste_sequence +bracketed_paste_sequence_getch_ungetch(WINDOW *win) { int esc1 = wgetch(win); if (esc1 == '[') { int esc2 = wgetch(win); @@ -2434,7 +2434,8 @@ Bracketed_paste_sequence bracketed_paste_sequence_getch_ungetch(WINDOW *win) { return Bracketed_paste_sequence_none; } -void try_send_to_gui_clipboard(Ged const *a, bool *io_use_gui_clipboard) { +staticni void try_send_to_gui_clipboard(Ged const *a, + bool *io_use_gui_clipboard) { if (!*io_use_gui_clipboard) return; #if 0 // If we want to use grid directly @@ -2492,8 +2493,7 @@ enum { char const *const prefval_plain = "plain"; char const *const prefval_fancy = "fancy"; -ORCA_NOINLINE -bool plainorfancy(char const *val, bool *out) { +staticni bool plainorfancy(char const *val, bool *out) { if (strcmp(val, prefval_plain) == 0) { *out = false; return true; @@ -2505,8 +2505,7 @@ bool plainorfancy(char const *val, bool *out) { return false; } -ORCA_NOINLINE -bool conf_read_boolish(char const *val, bool *out) { +staticni bool conf_read_boolish(char const *val, bool *out) { static char const *const trues[] = {"1", "true", "yes"}; static char const *const falses[] = {"0", "false", "no"}; for (Usz i = 0; i < ORCA_ARRAY_COUNTOF(trues); i++) { @@ -2540,7 +2539,7 @@ typedef struct { bool fancy_grid_rulers; } Tui; -void print_loading_message(char const *s) { +ORCA_OK_IF_UNUSED staticni void print_loading_message(char const *s) { Usz len = strlen(s); if (len > INT_MAX) return; @@ -2554,8 +2553,7 @@ void print_loading_message(char const *s) { refresh(); } -ORCA_NOINLINE -void tui_load_prefs(Tui *t) { +staticni void tui_load_prefs(Tui *t) { oso *portmidi_output_device = NULL, *osc_output_address = NULL, *osc_output_port = NULL; U32 touched = 0; @@ -2654,7 +2652,7 @@ void tui_load_prefs(Tui *t) { osofree(osc_output_port); } -void tui_save_prefs(Tui *t) { +staticni void tui_save_prefs(Tui *t) { Ezconf_opt optsbuff[Confoptslen]; Ezconf_w ez; ezconf_w_start(&ez, optsbuff, ORCA_ARRAY_COUNTOF(optsbuff)); @@ -2736,8 +2734,8 @@ void tui_save_prefs(Tui *t) { } } -bool tui_suggest_nice_grid_size(Tui *t, int win_h, int win_w, Usz *out_grid_h, - Usz *out_grid_w) { +staticni bool tui_suggest_nice_grid_size(Tui *t, int win_h, int win_w, + Usz *out_grid_h, Usz *out_grid_w) { int softmargin_y = t->softmargin_y, softmargin_x = t->softmargin_x; int ruler_spacing_y = (int)t->ged.ruler_spacing_y, ruler_spacing_x = (int)t->ged.ruler_spacing_x; @@ -2762,8 +2760,8 @@ bool tui_suggest_nice_grid_size(Tui *t, int win_h, int win_w, Usz *out_grid_h, return true; } -bool tui_suggest_tight_grid_size(Tui *t, int win_h, int win_w, Usz *out_grid_h, - Usz *out_grid_w) { +staticni bool tui_suggest_tight_grid_size(Tui *t, int win_h, int win_w, + Usz *out_grid_h, Usz *out_grid_w) { int softmargin_y = t->softmargin_y, softmargin_x = t->softmargin_x; if (win_h < 1 || win_w < 1 || softmargin_y < 0 || softmargin_x < 0) return false; @@ -2777,8 +2775,9 @@ bool tui_suggest_tight_grid_size(Tui *t, int win_h, int win_w, Usz *out_grid_h, return true; } -void plainorfancy_menu_was_picked(Tui *t, int picked_id, bool *p_is_fancy, - U32 pref_touch_flag) { +staticni void plainorfancy_menu_was_picked(Tui *t, int picked_id, + bool *p_is_fancy, + U32 pref_touch_flag) { bool is_fancy = picked_id == 1; // 1 -> fancy, 2 -> plain qnav_stack_pop(); // ^- doesn't actually matter when we do this, with our current code @@ -2790,7 +2789,7 @@ void plainorfancy_menu_was_picked(Tui *t, int picked_id, bool *p_is_fancy, t->ged.is_draw_dirty = true; } -bool tui_restart_osc_udp_if_enabled_diderror(Tui *t) { +staticni bool tui_restart_osc_udp_if_enabled_diderror(Tui *t) { bool error = false; if (t->osc_output_enabled && t->osc_port) { error = !ged_set_osc_udp(&t->ged, osoc(t->osc_address) /* null ok here */, @@ -2800,10 +2799,10 @@ bool tui_restart_osc_udp_if_enabled_diderror(Tui *t) { } return error; } -void tui_restart_osc_udp_showerror(void) { +staticni void tui_restart_osc_udp_showerror(void) { qmsg_printf_push("OSC Networking Error", "Failed to set up OSC networking"); } -void tui_restart_osc_udp_if_enabled(Tui *t) { +staticni void tui_restart_osc_udp_if_enabled(Tui *t) { bool old_inuse = ged_is_using_osc_udp(&t->ged); bool did_error = tui_restart_osc_udp_if_enabled_diderror(t); bool new_inuse = ged_is_using_osc_udp(&t->ged); @@ -2827,7 +2826,7 @@ typedef enum { Tui_menus_consumed_input, } Tui_menus_result; -Tui_menus_result tui_drive_menus(Tui *t, int key) { +staticni Tui_menus_result tui_drive_menus(Tui *t, int key) { Qblock *qb = qnav_top_block(); if (!qb) return Tui_menus_nothing; @@ -3997,3 +3996,4 @@ quit: } #undef TOUCHFLAG +#undef staticni