From 7f70bfbc8ef80ce142dc1ca323a76b34eae236a0 Mon Sep 17 00:00:00 2001 From: vvd_ Date: Wed, 5 Mar 2014 04:48:42 +0100 Subject: [PATCH] psuh --- CMakeLists.txt | 6 +++--- data.C | 6 +++--- data.H | 2 +- midi.C | 40 ++++++++++++++++++++-------------------- prodatum.C | 12 ++++++------ pxk.C | 8 ++++---- pxk.H | 2 +- ringbuffer.C | 2 +- widgets.C | 45 +++++++++++++++++++++------------------------ widgets.H | 29 +++++++++++++++-------------- 10 files changed, 75 insertions(+), 77 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index f8c1092..03c4fd4 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -15,18 +15,18 @@ file (GLOB prodatum_SOURCES *.C) add_executable (prodatum ${prodatum_SOURCES}) if(WIN32) - ADD_DEFINITIONS(-DWIN32 -Wall -Wno-char-subscripts -Wno-write-strings) + ADD_DEFINITIONS(-DWIN32 -Wall -W -Wno-char-subscripts -Wno-write-strings) set(CMAKE_EXE_LINKER_FLAGS "-mwindows -m32 -static-libgcc -static-libstdc++") set(ADDITIONAL_LIBRARIES winmm ole32 uuid comctl32 wsock32) endif(WIN32) if(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") - ADD_DEFINITIONS(-DOSX -DUSE_MLOCK -Wall -Wno-char-subscripts -Wno-write-strings) + ADD_DEFINITIONS(-DOSX -DUSE_MLOCK -Wall -W -Wno-char-subscripts -Wno-write-strings) set(ADDITIONAL_LIBRARIES "-framework Carbon -framework ApplicationServices -framework CoreMIDI -framework CoreAudio") endif(${CMAKE_SYSTEM_NAME} MATCHES "Darwin") IF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") - ADD_DEFINITIONS(-DUSE_MLOCK -D__linux -Wall -Wno-char-subscripts -Wno-write-strings) + ADD_DEFINITIONS(-DUSE_MLOCK -D__linux -Wall -W -Wno-char-subscripts -Wno-write-strings) set(CMAKE_EXE_LINKER_FLAGS "-static-libgcc -static-libstdc++") set(ADDITIONAL_LIBRARIES X11 Xft fontconfig Xinerama asound pthread) ENDIF(${CMAKE_SYSTEM_NAME} MATCHES "Linux") diff --git a/data.C b/data.C index f3037ad..777ad25 100644 --- a/data.C +++ b/data.C @@ -168,10 +168,10 @@ int Preset_Dump::set_value(int id, int value, int layer) { parameter current = undo_s.front(); if (current.id != id || current.layer != layer) - add_undo(id, value, layer); + add_undo(id, layer); } else - add_undo(id, value, layer); + add_undo(id, layer); } // for names, only one byte is used per character... data[offset] = value % 128; @@ -663,7 +663,7 @@ void Preset_Dump::copy(int type, int src, int dst) } } -void Preset_Dump::add_undo(int id, int value, int layer) +void Preset_Dump::add_undo(int id, int layer) { if (disable_add_undo) return; diff --git a/data.H b/data.H index 97f8b23..b264ff7 100644 --- a/data.H +++ b/data.H @@ -53,7 +53,7 @@ class Preset_Dump /// redo stack std::deque redo_s; /// push undo parameter on stack - void add_undo(int id, int value, int layer); + void add_undo(int id, int layer); void update_ui_from_xdo(int id, int value, int layer) const; /** * maps parameter IDs to offset values in the dump diff --git a/midi.C b/midi.C index 3ffdeb2..327ae8d 100644 --- a/midi.C +++ b/midi.C @@ -387,7 +387,7 @@ static void process_midi_in(void*) ui->init_log->append("\nprocess_midi_in: Received unrecognized e-mu sysex:\n"); char* __buffer = (char*) malloc(len * sizeof(char)); for (unsigned int i = 0; i < len; i++) - snprintf(__buffer + i, 1, "%x", (int) sysex + i); + snprintf(__buffer + i, 1, "%x", *(sysex + i)); ui->init_log->append(__buffer); ui->init_log->append("\n"); free(__buffer); @@ -416,7 +416,7 @@ static void process_midi_in(void*) ui->init_log->append("\nprocess_midi_in: Received unknown sysex:\n"); char* __buffer = (char*) malloc(len * sizeof(char)); for (unsigned int i = 0; i < len; i++) - snprintf(__buffer + i, 1, "%x", (int) sysex + i); + snprintf(__buffer + i, 1, "%x", *(sysex + i)); ui->init_log->append(__buffer); ui->init_log->append("\n"); free(__buffer); @@ -535,15 +535,15 @@ static void process_midi_in(void*) // log midi events if (cfg->get_cfg_option(CFG_LOG_EVENTS_IN)) { - char buf[30]; - snprintf(buf, 30, "\nIE.%lu::%02X%02X%02X", ++count_events, event[0], event[1], event[2]); - ui->logbuf->append(buf); + char _b[30]; + snprintf(_b, 30, "\nIE.%lu::%02X%02X%02X", ++count_events, event[0], event[1], event[2]); + ui->logbuf->append(_b); } } } #ifndef __linux if (timer_running) - Fl::repeat_timeout(.01, process_midi_in); + Fl::repeat_timeout(.01, process_midi_in); #endif } @@ -562,7 +562,7 @@ MIDI::MIDI() port_thru = 0; #ifdef __linux if (pipe(p) == -1) - fprintf(stderr, "*** Could not open pipe\n%s", strerror(errno)); + fprintf(stderr, "*** Could not open pipe\n%s", strerror(errno)); #endif read_buffer = jack_ringbuffer_create(RINGBUFFER_READ); write_buffer = jack_ringbuffer_create(RINGBUFFER_WRITE); @@ -971,7 +971,7 @@ void MIDI::write_event(int status, int value1, int value2, int channel) const if (cfg->get_cfg_option(CFG_LOG_EVENTS_OUT)) { char buf[30]; - snprintf(buf, 30, "\nOE.%lu::%02x%02x%02x", ++count, stat, value1, value2); + snprintf(buf, 30, "\nOE.%lu::%02x%02x%02x", ++count, stat, v1, v2); ui->logbuf->append(buf); } } @@ -981,18 +981,18 @@ void MIDI::ack(int packet) const pmesg("MIDI::ack(packet: %d) \n", packet); unsigned char l = packet % 128; unsigned char m = packet / 128; - unsigned char ack[] = + unsigned char a[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, 0x7f, l, m, 0xf7 }; - write_sysex(ack, 9); + write_sysex(a, 9); } void MIDI::nak(int packet) const { pmesg("MIDI::nak(packet: %d) \n", packet); unsigned char l = packet % 128; unsigned char m = packet / 128; - unsigned char nak[] = + unsigned char n[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, 0x7e, l, m, 0xf7 }; - write_sysex(nak, 9); + write_sysex(n, 9); } void MIDI::eof() const @@ -1119,18 +1119,18 @@ void MIDI::copy(int cmd, int src, int dst, int src_l, int dst_l, int rom_id) con { unsigned char s_l = src_l & 0xff; unsigned char d_l = dst_l & 0xff; - unsigned char copy[] = + unsigned char cm[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, c, srcl, srcm, s_l, 0, dstl, dstm, d_l, 0, rl, rm, 0xf7 }; - write_sysex(copy, 17); + write_sysex(cm, 17); } // layer independent else { if (cmd == 0x2c) // copy setup { - unsigned char copy[] = + unsigned char cm[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, c, srcl, srcm, dstl, dstm, 0xf7 }; - write_sysex(copy, 11); + write_sysex(cm, 11); // set device id to our chosen device id // so it will respond to our requests edit_parameter_value(388, midi_device_id); @@ -1139,9 +1139,9 @@ void MIDI::copy(int cmd, int src, int dst, int src_l, int dst_l, int rom_id) con } else { - unsigned char copy[] = + unsigned char cm[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, c, srcl, srcm, dstl, dstm, rl, rm, 0xf7 }; - write_sysex(copy, 13); + write_sysex(cm, 13); } } } @@ -1185,9 +1185,9 @@ void MIDI::randomize() const { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, 0x72, 0x7f, 0x7f, 0, 0, b1l, b1m, b2l, b2m, 0xf7 }; write_sysex(seedr, 15); } - unsigned char randomize[] = + unsigned char r[] = { 0xf0, 0x18, 0x0f, midi_device_id, 0x55, 0x71, 0x7f, 0x7f, 0, 0, 0xf7 }; - write_sysex(randomize, 11); + write_sysex(r, 11); mysleep(200); request_preset_dump(-1, 0); } diff --git a/prodatum.C b/prodatum.C index 21191dc..c8fc01e 100644 --- a/prodatum.C +++ b/prodatum.C @@ -133,6 +133,7 @@ void PD_UI::select(int l) l = prev; } ((Fl_Button*) selector->child(l))->setonly(); + Fl::flush(); prev = selected; if (l == 5) { @@ -805,15 +806,14 @@ void PD_UI::Reset(char user_data, char rom_data) dirent **files; int num_files = fl_filename_list(config_dir, &files); char buf[PATH_MAX]; - int f_size = 20; - char f[f_size]; + char f[20]; int deleted = 0; if (user_data >= 0) { if (user_data == 127) // delete all user data - snprintf(f, f_size, "n_???_0_*"); + snprintf(f, 20, "n_???_0_*"); else - snprintf(f, f_size, "n_???_0_%d", user_data); + snprintf(f, 20, "n_???_0_%d", user_data); for (int i = 0; i < num_files; i++) { if (fl_filename_match(files[i]->d_name, f)) @@ -840,9 +840,9 @@ void PD_UI::Reset(char user_data, char rom_data) if (rom_data >= 1) { if (rom_data == 1) // delete all rom data - snprintf(f, f_size, "n_???_[123456789]*"); + snprintf(f, 20, "n_???_[123456789]*"); else - snprintf(f, f_size, "n_???_%d", rom_data); + snprintf(f, 20, "n_???_%d", rom_data); for (int i = 0; i < num_files; i++) { if (fl_filename_match(files[i]->d_name, f)) diff --git a/pxk.C b/pxk.C index a318999..d5351a1 100644 --- a/pxk.C +++ b/pxk.C @@ -819,7 +819,7 @@ void PXK::incoming_inquiry_data(const unsigned char* data, int len) } } -char PXK::get_rom_index(char id) const +unsigned char PXK::get_rom_index(char id) const { if (id == 0) return 0; @@ -831,7 +831,7 @@ char PXK::get_rom_index(char id) const return 3; if (rom_index[4] == id) return 4; - return -1; + return 5; } void PXK::incoming_hardware_config(const unsigned char* data, int len) @@ -1153,7 +1153,7 @@ void PXK::incoming_generic_name(const unsigned char* data) return; } int rom_id = data[9] + 128 * data[10]; - if (get_rom_index(rom_id) == -1) + if (get_rom_index(rom_id) == 5) { pmesg("*** ROM %d does not exist\n", data[9] + 128 * data[10]); display_status("*** Received unknown name type."); @@ -1219,7 +1219,7 @@ void PXK::incoming_arp_dump(const unsigned char* data, int len) return; } int rom_id = data[len - 3] + 128 * data[len - 2]; - if (get_rom_index(rom_id) != -1) + if (get_rom_index(rom_id) != 5) { rom[get_rom_index(rom_id)]->set_name(ARP, number, data + 14); ++init_progress; diff --git a/pxk.H b/pxk.H index a192ce2..efaf0d0 100644 --- a/pxk.H +++ b/pxk.H @@ -130,7 +130,7 @@ private: public: ROM* rom[5]; unsigned char roms; // number of roms - char get_rom_index(char) const; + unsigned char get_rom_index(char) const; /* * preset specific diff --git a/ringbuffer.C b/ringbuffer.C index cb49d7a..a6580bf 100644 --- a/ringbuffer.C +++ b/ringbuffer.C @@ -41,7 +41,7 @@ jack_ringbuffer_create (size_t sz) rb = (jack_ringbuffer_t*) malloc (sizeof (jack_ringbuffer_t)); - for (power_of_two = 1; 1 << power_of_two < sz; power_of_two++); + for (power_of_two = 1; 1 << power_of_two < (int) sz; power_of_two++); rb->size = 1 << power_of_two; rb->size_mask = rb->size; diff --git a/widgets.C b/widgets.C index 63952f7..15732d3 100644 --- a/widgets.C +++ b/widgets.C @@ -362,8 +362,8 @@ void Browser::set_value(int v) void Browser::load_n(int type, int rom_id, int preset) { //pmesg("Browser::load_n(%d, %d, %d) (id:%d layer:%d)\n", type, rom_id, preset, id_layer[0], id_layer[1]); - char rom_ = pxk->get_rom_index(rom_id); - if (rom_ == -1) + unsigned char rom_ = pxk->get_rom_index(rom_id); + if (rom_ == 5) return; if (!pxk->rom[rom_]) return; @@ -692,7 +692,7 @@ void ROM_Choice::set_id(int v, int l) void ROM_Choice::set_value(int v) { - if (v == 0 || pxk->get_rom_index(v) != -1) + if (v == 0 || pxk->get_rom_index(v) != 5) { value(pxk->get_rom_index(v) - no_user); dependency(v, false); @@ -1803,7 +1803,7 @@ void Group::set_value(int v) int Group::get_value() const { int v = 0; - for (char i = 0; i < children(); i++) + for (unsigned char i = 0; i < children(); i++) { if (((Fl_Button*) array()[i])->value()) { @@ -3344,7 +3344,7 @@ void Envelope_Editor::draw() } } -void Envelope_Editor::draw_envelope(char type, int x0, int y0, int luma) +void Envelope_Editor::draw_envelope(unsigned char type, int x0, int y0, int luma) { fl_push_clip(ee_x0 + 1, ee_y0 + 21, ee_w - 2, ee_h - 42); // x-scaling @@ -3491,7 +3491,7 @@ int Envelope_Editor::handle(int ev) // coordinate system if (Fl::event_inside(ee_x0 + 2, ee_y0 + 22, ee_w - 4, ee_h - 43)) { - for (char i = 0; i < 6; i++) + for (unsigned char i = 0; i < 6; i++) { if (Fl::event_inside(dragbox[i][0] - 4, dragbox[i][1] - 4, 9, 9)) { @@ -3519,7 +3519,7 @@ int Envelope_Editor::handle(int ev) else if (Fl::event_inside(ee_x0, ee_y0, ee_w, 19)) { fl_cursor(FL_CURSOR_DEFAULT); - for (char i = 0; i < 5; i++) + for (unsigned char i = 0; i < 5; i++) if (Fl::event_inside(mode_button[i] - 2, ee_y0 + 3, 52, 17)) button_hover = i; } @@ -3528,7 +3528,7 @@ int Envelope_Editor::handle(int ev) { fl_cursor(FL_CURSOR_DEFAULT); - for (char i = 0; i < 6; i++) + for (unsigned char i = 0; i < 6; i++) { if (Fl::event_inside(copy_button[i], ee_y0 + ee_h - 21, 17, 17)) { @@ -3536,7 +3536,7 @@ int Envelope_Editor::handle(int ev) return 1; } } - for (char i = 0; i < 4; i++) + for (unsigned char i = 0; i < 4; i++) { if (Fl::event_inside(shape_button[i], ee_y0 + ee_h - 21, 17, 17)) { @@ -3809,12 +3809,12 @@ int Envelope_Editor::handle(int ev) return Fl_Box::handle(ev); } -void Envelope_Editor::set_data(char type, int* stages, char mode, char repeat) +void Envelope_Editor::set_data(unsigned char type, int* stages, char mode, char repeat) { //pmesg("Envelope_Editor::set_data(%d, int*, %d, %d)\n", type, mode, repeat); env[type].mode = mode; env[type].repeat = repeat; - for (char i = 0; i < 6; i++) + for (unsigned char i = 0; i < 6; i++) { env[type].stage[i][0] = *(stages + i * 2); env[type].stage[i][1] = *(stages + i * 2 + 1); @@ -3822,11 +3822,11 @@ void Envelope_Editor::set_data(char type, int* stages, char mode, char repeat) redraw(); } -void Envelope_Editor::copy_envelope(char src, char dst) +void Envelope_Editor::copy_envelope(unsigned char src, unsigned char dst) { if (dst == src) return; - for (int i = 0; i < 6; i++) + for (unsigned int i = 0; i < 6; i++) { env[dst].stage[i][0] = env[src].stage[i][0]; env[dst].stage[i][1] = env[src].stage[i][1]; @@ -3838,7 +3838,7 @@ void Envelope_Editor::copy_envelope(char src, char dst) redraw(); } -void Envelope_Editor::set_shape(char dst, char shape) +void Envelope_Editor::set_shape(unsigned char dst, char shape) { switch (shape) { @@ -3902,7 +3902,7 @@ void Envelope_Editor::set_shape(char dst, char shape) redraw(); if (!pxk) // not there on init return; - for (int i = 0; i < 6; i++) + for (unsigned char i = 0; i < 6; i++) { pxk->widget_callback(1793 + 1 + dst * 13 + i * 2, env[dst].stage[i][0], layer); pxk->widget_callback(1793 + 1 + dst * 13 + i * 2 + 1, env[dst].stage[i][1], layer); @@ -4776,7 +4776,7 @@ void Piano::set_mode(char m) // called by midi->process_not_sysex to highlight incoming midi events // on the keyboard -void Piano::activate_key(char value, char key) +void Piano::activate_key(char value, unsigned char key) { if (active_keys[key] == value || (active_keys[key] == 2 && value == -1) || (pushed != NONE && key == hovered_key)) return; @@ -4800,16 +4800,13 @@ void Piano::reset_active_keys() } // map keys to 2-d space -void Piano::set_range_values(char md, char layer, char low_k, char low_f, char high_k, char high_f) +void Piano::set_range_values(unsigned char md, unsigned char layer, unsigned char low_k, unsigned char low_f, + unsigned char high_k, unsigned char high_f) { //pmesg("Piano::set_range_values(%d, %d, %d, %d, %d, %d)\n", md, layer, low_k, low_f, high_k, high_f); - if (low_k < 0) - low_k = 0; - if (low_f < 0 || low_f + low_k > 127) + if (low_f + low_k > 127) low_f = 0; - if (high_k < 0) - high_k = 127; - if (high_f < 0 || high_k - high_f < 0) + if (high_k - high_f < 0) high_f = 0; dragbox[md][layer][LOW_KEY][0] = taste_x0[low_k][0]; dragbox[md][layer][LOW_FADE][0] = taste_x0[low_k + low_f][0]; @@ -4850,7 +4847,7 @@ void Piano::commit_changes() //pmesg("Piano::commit_changes()\n"); if (pushed < PRESET_ARP) { - for (int range = 0; range < 4; range++) + for (unsigned char range = 0; range < 4; range++) { if (prev_key_value[mode][pushed][range] != new_key_value[mode][pushed][range]) { diff --git a/widgets.H b/widgets.H index 08f5915..c75d0ac 100644 --- a/widgets.H +++ b/widgets.H @@ -136,7 +136,7 @@ class Double_Window: public Fl_Double_Window bool w__shown; public: void showup(); - void resize(int,int,int,int); + void resize(int, int, int, int); bool __main; Double_Window(int w, int h, char* const label = 0) : Fl_Double_Window(w, h, label) @@ -932,9 +932,9 @@ class Envelope_Editor: public Fl_Box virtual int handle(int event); void draw(); void draw_b_label(char, Fl_Color); - void draw_envelope(char type, int x0, int y0, int luma); - void copy_envelope(char src, char dst); - void set_shape(char dst, char shape); + void draw_envelope(unsigned char type, int x0, int y0, int luma); + void copy_envelope(unsigned char src, unsigned char dst); + void set_shape(unsigned char dst, char shape); char layer; int ee_x0; int ee_y0; @@ -969,7 +969,7 @@ public: set_shape(FILTER, SHAPE_A); set_shape(AUXILIARY, SHAPE_C); } - void set_data(char type, int* stages, char mode, char repeat); + void set_data(unsigned char type, int* stages, char mode, char repeat); void set_layer(char l); void sync_view(char l, char m = 0, float z = .0, bool o = false); }; @@ -1007,8 +1007,8 @@ class Piano: public Fl_Box { D_RANGES = 1, D_KEYS, D_HIGHLIGHT = 4, D_CASE = 8 }; - char mode; // 0 = keyrange, 1 = velocity, 2 = realtime - char modes; + unsigned char mode; // 0 = keyrange, 1 = velocity, 2 = realtime + unsigned char modes; int keyboard_x0, keyboard_y0, keyboard_w, keyboard_h; char h_white, w_white, h_black, w_black; int taste_x0[128][2]; @@ -1087,9 +1087,9 @@ public: offset += 7 * (w_white - 1); } // y-koordinaten der dragboxes - for (char m = 0; m < 3; m++) - for (char i = 0; i < 4; i++) - for (char j = 0; j < 4; j++) + for (unsigned char m = 0; m < 3; m++) + for (unsigned char i = 0; i < 4; i++) + for (unsigned char j = 0; j < 4; j++) { if (j == LOW_KEY || j == HIGH_KEY) dragbox[m][i][j][1] = keyboard_y0 + 5 + keyboard_h + i * 18; @@ -1107,16 +1107,17 @@ public: dragbox[0][7][LOW_KEY][1] = dragbox[0][6][LOW_KEY][1] + 10; dragbox[0][7][HIGH_KEY][1] = dragbox[0][7][LOW_KEY][1]; // x koordinaten - for (char m = 0; m < 3; m++) - for (char i = 0; i < 8; i++) + for (unsigned char m = 0; m < 3; m++) + for (unsigned char i = 0; i < 8; i++) set_range_values(m, i, 0, 0, 127, 0); } - void set_range_values(char md, char layer, char low_k, char low_f, char high_k, char high_f); + void set_range_values(unsigned char md, unsigned char layer, unsigned char low_k, unsigned char low_f, + unsigned char high_k, unsigned char high_f); void set_transpose(char l1, char l2, char l3, char l4); void select_transpose_layer(char l); void set_mode(char m); - void activate_key(char value, char key); + void activate_key(char value, unsigned char key); void reset_active_keys(); };