// ------------------------------------------------------ // Save a 303 pattern void Save_303(void) { FILE *in; char Temph[MAX_PATH]; char extension[10]; sprintf(extension, "TWNN3031"); sprintf(Temph, "Saving '%s.303' pattern in patterns directory...", tb303[sl3].pattern_name[tb303[sl3].selectedpattern]); Status_Box(Temph); sprintf(Temph, "%s"SLASH"%s.303", Dir_Patterns, tb303[sl3].pattern_name[tb303[sl3].selectedpattern]); in = fopen(Temph, "wb"); if(in != NULL) { Write_Data(extension, sizeof(char), 9, in); Save_303_Data(Write_Data, Write_Data_Swap, in, sl3, tb303[sl3].selectedpattern); fclose(in); Read_SMPT(); last_index = -1; Actualize_Files_List(0); Status_Box("303 pattern saved succesfully."); } else { Status_Box("303 pattern save failed."); } Clear_Input(); }
// ------------------------------------------------------ // Save a midi config file void Save_Midi_Cfg(void) { FILE *in; char Temph[96]; char extension[10]; sprintf(extension, "PROTMID1"); sprintf(Temph, "Saving '%s.pmi' data in midi configs directory...", Midi_Name); Status_Box(Temph); sprintf(Temph, "%s"SLASH"%s.pmi", Dir_MidiCfg, Midi_Name); in = fopen(Temph, "wb"); if(in != NULL) { Write_Data(extension, sizeof(char), 9, in); Write_Data(Midi_Name, sizeof(char), 20, in); Save_Midi_Cfg_Data(Write_Data, Write_Data_Swap, in); fclose(in); Read_SMPT(); last_index = -1; Actualize_Files_List(0); Status_Box("Midi config data saved succesfully."); } else { Status_Box("Midi config data save failed."); } Clear_Input(); }
// ------------------------------------------------------ // Save a pattern block file void Save_Pattern(void) { FILE *in; char Temph[96]; char extension[10]; #ifndef __LITE__ sprintf(extension, "PROTBLK2"); #else sprintf(extension, "PTKLBLK3"); #endif sprintf(Temph, "Saving '%s.ppb' data in patterns directory...", Selection_Name); Status_Box(Temph); sprintf(Temph, "%s"SLASH"%s.ppb", Dir_Patterns, Selection_Name); in = fopen(Temph, "wb"); if(in != NULL) { Write_Data(extension, sizeof(char), 9, in); Write_Data(Selection_Name, sizeof(char), 20, in); Save_Pattern_Data(Write_Data, Write_Data_Swap, in); fclose(in); Read_SMPT(); last_index = -1; Actualize_Files_List(0); Status_Box("Pattern data saved succesfully."); } else { Status_Box("Pattern data save failed."); } Clear_Input(); }
// ------------------------------------------------------ // Save the configuration file void SaveConfig(void) { FILE *out; char extension[10]; char FileName[MAX_PATH]; int i; int Real_Palette_Idx; char KeyboardName[MAX_PATH]; signed char phony = -1; sprintf(extension, "PROTCFGF"); Status_Box("Saving 'ptk.cfg'..."); #ifdef __linux__ sprintf(FileName, "%s/.ptk.cfg", getenv("HOME")); #else sprintf(FileName, "%s"SLASH"ptk.cfg", ExePath); #endif memset(KeyboardName, 0, sizeof(KeyboardName)); sprintf(KeyboardName, "%s", Keyboard_Name); out = fopen(FileName, "wb"); if(out != NULL) { Write_Data(extension, sizeof(char), 9, out); Write_Data_Swap(&Current_Edit_Steps, sizeof(Current_Edit_Steps), 1, out); Write_Data_Swap(&patt_highlight, sizeof(patt_highlight), 1, out); Write_Data_Swap(&AUDIO_Milliseconds, sizeof(AUDIO_Milliseconds), 1, out); #if defined(__NO_MIDI__) Write_Data(&phony, sizeof(phony), 1, out); #else Write_Data(&c_midiin, sizeof(c_midiin), 1, out); #endif #if defined(__NO_MIDI__) Write_Data(&phony, sizeof(phony), 1, out); #else Write_Data(&c_midiout, sizeof(c_midiout), 1, out); #endif Write_Data_Swap(&MouseWheel_Multiplier, sizeof(MouseWheel_Multiplier), 1, out); Write_Data(&Rows_Decimal, sizeof(Rows_Decimal), 1, out); Write_Data(&FullScreen, sizeof(FullScreen), 1, out); for(i = 0; i < NUMBER_COLORS; i++) { Real_Palette_Idx = Idx_Palette[i]; Write_Data(&Ptk_Palette[Real_Palette_Idx].r, sizeof(char), 1, out); Write_Data(&Ptk_Palette[Real_Palette_Idx].g, sizeof(char), 1, out); Write_Data(&Ptk_Palette[Real_Palette_Idx].b, sizeof(char), 1, out); } Write_Data(&See_Prev_Next_Pattern, sizeof(See_Prev_Next_Pattern), 1, out); Write_Data_Swap(&Beveled, sizeof(Beveled), 1, out); Write_Data_Swap(&Continuous_Scroll, sizeof(Continuous_Scroll), 1, out); Write_Data(&AutoSave, sizeof(AutoSave), 1, out); Write_Data(&AutoBackup, sizeof(AutoBackup), 1, out); Write_Data(&Dir_Mods, sizeof(Dir_Mods), 1, out); Write_Data(&Dir_Instrs, sizeof(Dir_Instrs), 1, out); Write_Data(&Dir_Presets, sizeof(Dir_Presets), 1, out); Write_Data(&Dir_Reverbs, sizeof(Dir_Reverbs), 1, out); Write_Data(&Dir_MidiCfg, sizeof(Dir_MidiCfg), 1, out); Write_Data(&Dir_Patterns, sizeof(Dir_Patterns), 1, out); Write_Data(&Dir_Samples, sizeof(Dir_Samples), 1, out); Write_Data(KeyboardName, MAX_PATH, 1, out); Write_Data(&rawrender_32float, sizeof(char), 1, out); Write_Data(&rawrender_multi, sizeof(char), 1, out); Write_Data(&rawrender_target, sizeof(char), 1, out); Write_Data(&Large_Patterns, sizeof(char), 1, out); Write_Data(&Scopish_LeftRight, sizeof(char), 1, out); Write_Data(&Paste_Across, sizeof(char), 1, out); Write_Data(&Jazz_Edit, sizeof(char), 1, out); Write_Data(&Accidental, sizeof(char), 1, out); Write_Data(&Use_Shadows, sizeof(char), 1, out); Write_Data(&Global_Patterns_Font, sizeof(char), 1, out); Write_Data(&metronome_magnify, sizeof(int), 1, out); // Save the compelte midi automation config Save_MidiCfg_Data(Write_Data, Write_Data_Swap, out); Write_Data_Swap(&Cur_Width, sizeof(int), 1, out); Write_Data_Swap(&Cur_Height, sizeof(int), 1, out); Cur_Left = -1; Cur_Top = -1; Write_Data_Swap(&Cur_Left, sizeof(int), 1, out); Write_Data_Swap(&Cur_Top, sizeof(int), 1, out); fclose(out); Read_SMPT(); last_index = -1; Actualize_Files_List(0); Status_Box("Configuration file saved succesfully."); } else { Status_Box("Configuration file save failed."); } }