int c64dtvui_init(void) { tui_menu_t ui_ioextensions_submenu; ui_create_main_menu(1, 1, 1, 2, 1, drivec64dtv_settings_submenu); tui_menu_add_separator(ui_special_submenu); uic64dtvmodel_init(ui_special_submenu); uic64dtv_init(ui_special_submenu); tui_menu_add_separator(ui_special_submenu); ui_ioextensions_submenu = tui_menu_create("I/O extensions", 1); tui_menu_add(ui_ioextensions_submenu, ioextenstions_menu_items); tui_menu_add_submenu(ui_special_submenu, "_I/O extensions...", "Configure I/O extensions", ui_ioextensions_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_separator(ui_video_submenu); uivideo_init(ui_video_submenu, VID_VICII, VID_NONE); tui_menu_add(ui_sound_submenu, siddtv_ui_menu_items); tui_menu_add(ui_rom_submenu, rom_menu_items); return 0; }
void uic64cart_init(struct tui_menu *parent_submenu) { uicart_menu_create(); tui_menu_add(ui_detach_submenu, detach_cartridge_menu_items); if (machine_class != VICE_MACHINE_SCPU64) { tui_menu_add(ui_attach_submenu, attach_c64_cartridge_menu_items); tui_menu_add(ui_reset_submenu, freeze_cartridge_menu_items); } else { tui_menu_add(ui_attach_submenu, attach_scpu64_cartridge_menu_items); } }
int cbm5x0ui_init(void) { ui_create_main_menu(0, 1, 0, 0, 1); tui_menu_add_separator(ui_video_submenu); tui_menu_add(ui_sound_submenu, sid_cbm2_ui_menu_items); uivideo_init(ui_video_submenu, VID_VICII, VID_NONE); uicbm5x0model_init(ui_special_submenu); uiciamodel_single_init(ui_special_submenu); tui_menu_add(ui_rom_submenu, rom_menu_items); return 0; }
void uiprinter_init(struct tui_menu *parent_submenu) { tui_menu_t tmp = tui_menu_create("Printer settings", 1); tui_menu_add(tmp, printer_submenu); tui_menu_add_submenu(parent_submenu, "P_rinter settings...", "Various printer settings", tmp, NULL, NULL, 0); }
void uisound_init(struct tui_menu *parent_submenu) { ui_sound_submenu = tui_menu_create("Audio Settings", 1); tui_menu_add(ui_sound_submenu, sound_submenu); tui_menu_add_submenu(parent_submenu, "_Sound Settings...", "Sampling rate, sound output, soundcard settings", ui_sound_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uidrive_init(struct tui_menu *parent_submenu) { tui_menu_t ui_drive_submenu; ui_drive_submenu = tui_menu_create("Disk Drive Settings", 1); tui_menu_add(ui_drive_submenu, drive_settings_submenu); tui_menu_add_submenu(parent_submenu, "Dis_k Drive Settings...", "Drive emulation settings", ui_drive_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uijoystick_init(struct tui_menu *parent_submenu) { tui_menu_t ui_joystick_settings_submenu; ui_joystick_settings_submenu = tui_menu_create("Joystick Settings", 1); tui_menu_add_submenu(parent_submenu, "_Joystick Settings...", "Joystick settings", ui_joystick_settings_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); switch (machine_class) { case VICE_MACHINE_C64: case VICE_MACHINE_C64SC: case VICE_MACHINE_C128: case VICE_MACHINE_SCPU64: tui_menu_add(ui_joystick_settings_submenu, c64_joystick_submenu); break; case VICE_MACHINE_C64DTV: tui_menu_add(ui_joystick_settings_submenu, c64dtv_joystick_submenu); break; case VICE_MACHINE_CBM5x0: tui_menu_add(ui_joystick_settings_submenu, cbm5x0_joystick_submenu); break; case VICE_MACHINE_CBM6x0: case VICE_MACHINE_PET: tui_menu_add(ui_joystick_settings_submenu, pet_joystick_submenu); break; case VICE_MACHINE_VIC20: tui_menu_add(ui_joystick_settings_submenu, vic20_joystick_submenu); break; case VICE_MACHINE_PLUS4: tui_menu_add(ui_joystick_settings_submenu, plus4_joystick_submenu); break; } }
int petui_init(void) { tui_menu_t ui_ioextensions_submenu; ui_create_main_menu(1, 1, 0, 2, 1); tui_menu_add_separator(ui_video_submenu); uivideo_init(ui_video_submenu, VID_CRTC, VID_NONE); tui_menu_add_separator(ui_special_submenu); tui_menu_add(ui_special_submenu, special_menu_items); uipetmodel_init(ui_special_submenu); ui_ioextensions_submenu = tui_menu_create("I/O extensions", 1); tui_menu_add_submenu(ui_special_submenu, "_I/O extensions", "Configure I/O extensions", ui_ioextensions_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add(ui_rom_submenu, rom_menu_items); uipetdww_init(ui_ioextensions_submenu); uipethre`_init(ui_ioextensions_submenu); uipetreu_init(ui_ioextensions_submenu); uisidcart_init(ui_ioextensions_submenu, "$8F00", "$E900", "PET"); tui_menu_add_item(ui_ioextensions_submenu, "Enable Userport DAC", "Enable Userport DAC", toggle_UserportDAC_callback, NULL, 3, TUI_MENU_BEH_CONTINUE); return 0; }
void uiplus60k_init(struct tui_menu *parent_submenu) { tui_menu_t ui_plus60k_submenu; ui_plus60k_submenu = tui_menu_create("PLUS60K settings", 1); tui_menu_add(ui_plus60k_submenu, plus60k_menu_items); tui_menu_add_submenu(parent_submenu, "PLUS_60K settings...", "PLUS60K settings", ui_plus60k_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uiscpuc64_init(struct tui_menu *parent_submenu) { tui_menu_t ui_scpu64_submenu; ui_scpu64_submenu = tui_menu_create("SuperCPU64 settings", 1); tui_menu_add(ui_scpu64_submenu, scpu64_menu_items); tui_menu_add_submenu(parent_submenu, "SuperCPU64 settings...", "SuperCPU64 settings", ui_scpu64_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uipethre_init(struct tui_menu *parent_submenu) { tui_menu_t ui_pethre_submenu; ui_pethre_submenu = tui_menu_create("PET HRE settings", 1); tui_menu_add(ui_pethre_submenu, pethre_menu_items); tui_menu_add_submenu(parent_submenu, "PET _HRE settings...", "PET HRE settings", ui_pethre_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uiisepic_init(struct tui_menu *parent_submenu) { tui_menu_t ui_isepic_submenu; ui_isepic_submenu = tui_menu_create("ISEPIC settings", 1); tui_menu_add(ui_isepic_submenu, isepic_menu_items); tui_menu_add_submenu(parent_submenu, "_ISEPIC settings...", "ISEPIC settings", ui_isepic_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uimmcreplay_init(struct tui_menu *parent_submenu) { tui_menu_t ui_mmcreplay_submenu; ui_mmcreplay_submenu = tui_menu_create("MMC Replay settings", 1); tui_menu_add(ui_mmcreplay_submenu, mmcreplay_menu_items); tui_menu_add_submenu(parent_submenu, "MMC _Replay settings...", "MMC Replay settings", ui_mmcreplay_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uiplus4model_init(struct tui_menu *parent_submenu) { tui_menu_t ui_plus4model_submenu; ui_plus4model_submenu = tui_menu_create("Plus4 model settings", 1); tui_menu_add(ui_plus4model_submenu, plus4_model_items); tui_menu_add_submenu(parent_submenu, "Plus4 _model settings...", "Plus4 model settings", ui_plus4model_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uidigimax_vic20_init(struct tui_menu *parent_submenu) { tui_menu_t ui_digimax_submenu; ui_digimax_submenu = tui_menu_create("DigiMAX settings (MasC=uerade)", 1); tui_menu_add(ui_digimax_submenu, digimax_vic20_menu_items); tui_menu_add_submenu(parent_submenu, "_DigiMAX settings (MasC=uerade)...", "DigiMAX settings", ui_digimax_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uic64_memory_hacks_init(struct tui_menu *parent_submenu) { tui_menu_t ui_memory_hacks_submenu; ui_memory_hacks_submenu = tui_menu_create("Memory Expansion Hacks settings", 1); tui_menu_add(ui_memory_hacks_submenu, memory_hacks_menu_items); tui_menu_add_submenu(parent_submenu, "Memory Expansion Hacks settings...", "Memory Expansion Hacks settings", ui_memory_hacks_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uiv364speech_init(struct tui_menu *parent_submenu) { tui_menu_t ui_v364speech_submenu; ui_v364speech_submenu = tui_menu_create("V364 speech settings", 1); tui_menu_add(ui_v364speech_submenu, v364speech_menu_items); tui_menu_add_submenu(parent_submenu, "_V364 speech settings...", "V364 speech settings", ui_v364speech_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uisidcart_init(struct tui_menu *parent_submenu, char *addr1, char *addr2, char *clock) { tui_menu_t ui_sidcart_submenu; sidcart_primary_address=addr1; sid_address_submenu[0].label=addr1; sidcart_secondary_address=addr2; sid_address_submenu[1].label=addr2; sidcart_clock=clock; sid_clock_submenu[1].label=clock; ui_sidcart_submenu = tui_menu_create("SID cart settings", 1); tui_menu_add(ui_sidcart_submenu, sidcart_ui_menu_items); tui_menu_add_submenu(parent_submenu, "_SID cart settings...", "SID cart settings", ui_sidcart_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
int vic20ui_init(void) { tui_menu_t ui_ioextensions_submenu; tui_menu_t ui_final_expansion_submenu; tui_menu_t ui_vic_flash_plugin_submenu; tui_menu_t ui_megacart_submenu; ui_create_main_menu(1, 1, 1, 1, 1); tui_menu_add(ui_attach_submenu, attach_cartridge_menu_items); tui_menu_add(ui_detach_submenu, detach_cartridge_menu_items); tui_menu_add(ui_special_submenu, special_menu_items); ui_ioextensions_submenu = tui_menu_create("I/O Extensions", 1); tui_menu_add_submenu(ui_special_submenu, "_I/O Extensions...", "I/O Extensions", ui_ioextensions_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); uilightpen_init(ui_ioextensions_submenu); uisidcart_init(ui_ioextensions_submenu, "$9800", "$9C00", "VIC20"); ui_final_expansion_submenu = tui_menu_create("Final Expansion settings", 1); tui_menu_add(ui_final_expansion_submenu, final_expansion_menu_items); tui_menu_add_submenu(ui_ioextensions_submenu, "_Final Expansion settings...", "Final Expansion settings", ui_final_expansion_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_submenu(ui_ioextensions_submenu, "_Vic Flash Plugin settings...", "Vic Flash Plugin settings", ui_vic_flash_plugin_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); ui_megacart_submenu = tui_menu_create("Mega-Cart settings", 1); tui_menu_add(ui_megacart_submenu, megacart_menu_items); tui_menu_add_submenu(ui_ioextensions_submenu, "_Mega-Cart settings...", "Mega-Cart settings", ui_megacart_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); uidigimax_vic20_init(ui_ioextensions_submenu); uigeoram_vic20_init(ui_ioextensions_submenu); uisoundexpander_vic20_init(ui_ioextensions_submenu); uisoundsampler_init(ui_ioextensions_submenu); #ifdef HAVE_TFE uitfe_vic20_init(ui_ioextensions_submenu); #endif tui_menu_add(ui_rom_submenu, rom_menu_items); uivideo_init(ui_video_submenu, VID_VIC, VID_NONE); return 0; }
int c64ui_init(void) { tui_menu_t ui_ioextensions_submenu; ui_create_main_menu(1, 1, 1, 2, 1); tui_menu_add_separator(ui_special_submenu); ui_ioextensions_submenu = tui_menu_create("I/O extensions", 1); tui_menu_add(ui_ioextensions_submenu, ioextenstions_menu_items); if (machine_class == VICE_MACHINE_C64SC) { uic64model_init(ui_special_submenu); } tui_menu_add_submenu(ui_special_submenu, "_I/O extensions...", "Configure I/O extensions", ui_ioextensions_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); uic64cart_init(NULL); tui_menu_add_separator(ui_video_submenu); uivideo_init(ui_video_submenu, VID_VICII, VID_NONE); tui_menu_add(ui_sound_submenu, sid_c64_ui_menu_items); tui_menu_add(ui_rom_submenu, rom_menu_items); uiburstmod_init(ui_ioextensions_submenu); uilightpen_init(ui_ioextensions_submenu); uireu_init(ui_ioextensions_submenu); uigeoram_c64_init(ui_ioextensions_submenu); uiramcart_init(ui_ioextensions_submenu); uiide64_init(ui_ioextensions_submenu); uidqbb_init(ui_ioextensions_submenu); uiisepic_init(ui_ioextensions_submenu); uiexpert_init(ui_ioextensions_submenu); uiplus60k_init(ui_ioextensions_submenu); uiplus256k_init(ui_ioextensions_submenu); uic64_256k_init(ui_ioextensions_submenu); uimmc64_init(ui_ioextensions_submenu); uimmcreplay_init(ui_ioextensions_submenu); uidigimax_c64_init(ui_ioextensions_submenu); uids12c887rtc_c64_init(ui_ioextensions_submenu); uimagicvoice_init(ui_ioextensions_submenu); #ifdef HAVE_TFE uitfe_c64_init(ui_ioextensions_submenu); #endif uieasyflash_init(ui_ioextensions_submenu); uisoundexpander_c64_init(ui_ioextensions_submenu); tui_menu_add_item(ui_ioextensions_submenu, "Enable SFX Sound Sampler", "Enable SFX Sound Sampler", toggle_SFXSoundSampler_callback, NULL, 3, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(ui_ioextensions_submenu, "Enable Userport RTC", "Enable Userport RTC", toggle_UserportRTC_callback, NULL, 3, TUI_MENU_BEH_CONTINUE); return 0; }
void uivideo_init(struct tui_menu *parent_submenu, int vid1, int vid2) { tui_menu_t video_submenu1; tui_menu_t video_submenu2; tui_menu_t render_submenu; tui_menu_t crt_emulation_submenu; tui_menu_t colors_submenu; if (vid2 != VID_NONE) { video_submenu1 = tui_menu_create(video_item[vid1].settings_name, 1); video_submenu2 = tui_menu_create(video_item[vid2].settings_name, 1); } else { video_submenu1 = parent_submenu; } tui_menu_add_item(video_submenu1, "Video cache", "Enable video cache", toggle_cache_callback, (void *)vid1, 3, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(video_submenu1, "Double size", "Enable double size", toggle_doublesize_callback, (void *)vid1, 3, TUI_MENU_BEH_CONTINUE); if (vid2 != VID_NONE) { tui_menu_add_item(video_submenu2, "Double size", "Enable double size", toggle_doublesize_callback, (void *)vid2, 3, TUI_MENU_BEH_CONTINUE); } tui_menu_add_item(video_submenu1, "Double scan", "Enable double scan", toggle_doublescan_callback, (void *)vid1, 3, TUI_MENU_BEH_CONTINUE); if (vid2 != VID_NONE) { tui_menu_add_item(video_submenu2, "Double scan", "Enable double scan", toggle_doublesize_callback, (void *)vid2, 3, TUI_MENU_BEH_CONTINUE); } tui_menu_add_separator(video_submenu1); if (vid2 != VID_NONE) { tui_menu_add_separator(video_submenu2); } if (video_item[vid1].chip_menu != NULL) { tui_menu_add(video_submenu1, video_item[vid1].chip_menu); if (machine_class != VICE_MACHINE_C64SC && video_item[vid1].has_video_standard == 1) { tui_menu_add(video_submenu1, video_standard_menu_items); } tui_menu_add_separator(video_submenu1); } if (vid2 != VID_NONE) { if (video_item[vid2].chip_menu != NULL) { tui_menu_add(video_submenu2, video_item[vid2].chip_menu); tui_menu_add_separator(video_submenu2); } } tui_menu_add_item(video_submenu1, "External palette", "Use external palette file", toggle_external_palette_callback, (void *)video_item[vid1].ext_pal_res, 3, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(video_submenu1, "Choose external palette", "Load a custom palette", custom_palette_callback, (void *)video_item[vid1].ext_pal_file_res, 0, TUI_MENU_BEH_RESUME); if (vid2 != VID_NONE) { tui_menu_add_item(video_submenu2, "External palette", "Use external palette file", toggle_external_palette_callback, (void *)video_item[vid2].ext_pal_res, 3, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(video_submenu2, "Choose external palette", "Load a custom palette", custom_palette_callback, (void *)video_item[vid2].ext_pal_file_res, 0, TUI_MENU_BEH_RESUME); } if (vid2 != VID_NONE) { tui_menu_add_submenu(parent_submenu, video_item[vid1].settings_name, video_item[vid1].settings_title, video_submenu1, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_submenu(parent_submenu, video_item[vid2].settings_name, video_item[vid2].settings_title, video_submenu2, NULL, 0, TUI_MENU_BEH_CONTINUE); } render_submenu = tui_menu_create("Render filter", 1); tui_menu_add_item(render_submenu, "None", "No render filter", radio_renderfilter_callback, (void *)((vid1 << 4) | 0), 3, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(render_submenu, "CRT emulation", "CRT emulation", radio_renderfilter_callback, (void *)((vid1 << 4) | 1), 3, TUI_MENU_BEH_CONTINUE); if (video_item[vid1].scale2x_res != NULL) { tui_menu_add_item(render_submenu, "Scale2x", "CRT emulation", radio_renderfilter_callback, (void *)((vid1 << 4) | 2), 3, TUI_MENU_BEH_CONTINUE); } tui_menu_add_submenu(parent_submenu, "Render filter", "Render filter", render_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); crt_emulation_submenu = tui_menu_create("CRT emulation", 1); tui_menu_add(crt_emulation_submenu, ui_crt_emulation_items); tui_menu_add_submenu(parent_submenu, "CRT emulation", "CRT emulation", crt_emulation_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); colors_submenu = tui_menu_create("Colors", 1); tui_menu_add(colors_submenu, ui_color_items); tui_menu_add_submenu(parent_submenu, "Colors", "Colors", colors_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
void uiplus4cart_init(struct tui_menu *parent_submenu) { tui_menu_add(ui_attach_submenu, attach_cartridge_menu_items); tui_menu_add(ui_detach_submenu, detach_cartridge_menu_items); }
void ui_create_main_menu(int has_tape, int has_drive, int has_serial_traps, int number_joysticks, int has_datasette) { /* Main menu. */ ui_main_menu = tui_menu_create(NULL, 1); ui_attach_submenu = tui_menu_create("Attach Images", 1); tui_menu_add(ui_attach_submenu, ui_attach_menu_def); if (has_tape) { tui_menu_add_separator(ui_attach_submenu); tui_menu_add_item(ui_attach_submenu, "_Tape:", "Attach tape image for cassette player (device #1)", attach_tape_callback, NULL, 30, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(ui_attach_submenu, "Autostart Ta_pe", "Reset the emulator and run the first program on the tape image", autostart_callback, (void *)1, 0, TUI_MENU_BEH_RESUME); } ui_detach_submenu = tui_menu_create("Detach Images", 1); tui_menu_add_item(ui_detach_submenu, "Drive #_8:", "Remove disk from disk drive #8", detach_disk_callback, (void *)8, 30, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(ui_detach_submenu,"Drive #_9:", "Remove disk from disk drive #9", detach_disk_callback, (void *)9, 30, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(ui_detach_submenu, "Drive #1_0:", "Remove disk from disk drive #10", detach_disk_callback, (void *)10, 30, TUI_MENU_BEH_CONTINUE); tui_menu_add_item(ui_detach_submenu, "Drive #1_1:", "Remove disk from disk drive #11", detach_disk_callback, (void *)11, 30, TUI_MENU_BEH_CONTINUE); if (has_tape) { tui_menu_add_separator(ui_detach_submenu); tui_menu_add_item(ui_detach_submenu, "_Tape:", "Remove tape from cassette player (device #1)", detach_tape_callback, NULL, 30, TUI_MENU_BEH_CONTINUE); } tui_menu_add_submenu(ui_main_menu, "_Attach Image...", "Insert virtual disks, tapes or cartridges in the emulated machine", ui_attach_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_submenu(ui_main_menu, "_Detach Image...", "Remove virtual disks, tapes or cartridges from the emulated machine", ui_detach_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); if (has_datasette) { ui_datasette_submenu = tui_menu_create("Datassette control", 1); tui_menu_add_item(ui_datasette_submenu, "S_top", "Press the STOP key of the datassette", datasette_callback, (void *)DATASETTE_CONTROL_STOP, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "_Start", "Press the START key of the datassette", datasette_callback, (void *)DATASETTE_CONTROL_START, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "_Forward", "Press the FORWARD key of the datassette", datasette_callback, (void *)DATASETTE_CONTROL_FORWARD, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "_Rewind", "Press the REWIND key of the datassette", datasette_callback, (void *)DATASETTE_CONTROL_REWIND, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "Re_cord", "Press the RECORD key of the datassette", datasette_callback, (void *)DATASETTE_CONTROL_RECORD, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "R_eset", "Rewind the tape and stop the datasette", datasette_callback, (void *)DATASETTE_CONTROL_RESET, 0, TUI_MENU_BEH_RESUME); tui_menu_add_item(ui_datasette_submenu, "Reset C_ounter", "Set the datasette counter to '000'", datasette_callback, (void *)DATASETTE_CONTROL_RESET_COUNTER, 0, TUI_MENU_BEH_RESUME); tui_menu_add_submenu(ui_main_menu, "Datassett_e Control...", "Press some buttons on the emulated datassette", ui_datasette_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); } tui_menu_add_separator(ui_main_menu); create_ui_video_submenu(); tui_menu_add_submenu(ui_main_menu, "_Video Settings...", "Screen parameters", ui_video_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); if (has_drive) { uidrive_init(ui_main_menu); } if (has_datasette) { ui_datasette_settings_submenu = tui_menu_create("Datasette Settings", 1); tui_menu_add(ui_datasette_settings_submenu,datasette_settings_submenu); tui_menu_add_submenu(ui_main_menu, "Da_tasette Settings...", "Datasette settings", ui_datasette_settings_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); } uisound_init(ui_main_menu); uijoystick_init(ui_main_menu); ui_rom_submenu = tui_menu_create("Firmware ROM Settings", 1); tui_menu_add(ui_rom_submenu, rom_submenu); tui_menu_add_submenu(ui_main_menu, "Firm_ware ROM Settings...", "Firmware ROMs the emulator is using", ui_rom_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); create_special_submenu(has_serial_traps); tui_menu_add_submenu(ui_main_menu, "_Other Settings...", "Extra emulation features", ui_special_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_separator(ui_main_menu); ui_snapshot_submenu = tui_menu_create("Freeze Commands", 1); tui_menu_add(ui_snapshot_submenu, ui_snapshot_menu_def); tui_menu_add_submenu(ui_main_menu, "_Freeze Commands...", "Commands for loading/saving the machine state", ui_snapshot_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); #ifdef HAVE_NETWORK ui_netplay_submenu = tui_menu_create("Netplay Commands", 1); tui_menu_add(ui_netplay_submenu, ui_netplay_menu_def); tui_menu_add_submenu(ui_main_menu, "_Netplay Commands...", "Commands for netplay between computers", ui_netplay_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); #endif tui_menu_add_separator(ui_main_menu); ui_settings_submenu = tui_menu_create("Configuration Commands", 1); tui_menu_add_item(ui_settings_submenu, "_Write Configuration", "Save current settings as default for next session", save_settings_callback, NULL, 0, TUI_MENU_BEH_CLOSE); tui_menu_add_item(ui_settings_submenu, "_Load Configuration", "Load saved settings from previous session", load_settings_callback, NULL, 0, TUI_MENU_BEH_CLOSE); tui_menu_add_item(ui_settings_submenu, "Restore _Factory Defaults", "Set default settings", restore_default_settings_callback, NULL, 0, TUI_MENU_BEH_CLOSE); tui_menu_add_submenu(ui_main_menu, "_Configuration Commands...", "Commands to save, retrieve and restore settings", ui_settings_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_separator(ui_main_menu); tui_menu_add_item(ui_main_menu, "_Monitor", "Enter the built-in machine language monitor", monitor_callback, NULL, 0, TUI_MENU_BEH_RESUME); ui_reset_submenu = tui_menu_create("Reset?", 1); tui_menu_add(ui_reset_submenu, reset_submenu); tui_menu_add_submenu(ui_main_menu, "_Reset ", "Reset the machine", ui_reset_submenu, NULL, NULL, 0); ui_quit_submenu = tui_menu_create("Quit", 1); tui_menu_add(ui_quit_submenu, quit_submenu); tui_menu_add_submenu(ui_main_menu, "_Quit", "Quit emulator", ui_quit_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); tui_menu_add_separator(ui_main_menu); ui_info_submenu = tui_menu_create("Info", 1); tui_menu_add(ui_info_submenu, info_submenu); tui_menu_add_submenu(ui_main_menu, "VICE _Info...", "VICE is Free Software distributed under the GNU General Public License!", ui_info_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }
/* This is a bit of a hack, but I prefer this way instead of writing 1,000 menu entries... */ static void create_ui_video_submenu(void) { static tui_menu_t refresh_rate_submenu, vga_mode_submenu; int i; refresh_rate_submenu = tui_menu_create("Refresh", 1); for (i = 1; i <= 10; i++) { char *label, *desc; if (i != 10) { label = lib_msprintf("1/_%d", i); } else { label = lib_stralloc("1/1_0"); } if (i == 1) { desc = lib_msprintf("Set refresh rate to 1/%d (update every frame)", i); } else { desc = lib_msprintf("Set refresh rate to 1/%d (update once every %d frames)", i, i); } tui_menu_add_item(refresh_rate_submenu, label, desc, radio_RefreshRate_callback, (void *)i, 0, TUI_MENU_BEH_CLOSE); lib_free(label); lib_free(desc); } tui_menu_add_separator(refresh_rate_submenu); tui_menu_add_item(refresh_rate_submenu, "_Automatic", "Let the emulator select an appropriate refresh rate automagically", radio_RefreshRate_callback, NULL, 0, TUI_MENU_BEH_CLOSE); vga_mode_submenu = tui_menu_create("VGA Resolution", 1); for (i = 0; i < NUM_VGA_MODES; i++) { char *s1, *s2; /* FIXME: hotkeys work only for less than 11 elements. */ s1 = lib_msprintf("Mode %s%d: %s",(i<10?" _":""), i, vga_modes[i].description); s2 = lib_msprintf("Set VGA resolution to %s", vga_modes[i].description); tui_menu_add_item(vga_mode_submenu, s1, s2, radio_VGAMode_callback, (void *)i, 0, TUI_MENU_BEH_CLOSE); lib_free(s1); lib_free(s2); } ui_video_submenu = tui_menu_create("Video Settings", 1); tui_menu_add_submenu(ui_video_submenu, "_VGA Resolution:", "Choose screen resolution for video emulation", vga_mode_submenu, resolution_submenu_callback, NULL, 15); tui_menu_add_submenu(ui_video_submenu, "_Refresh Rate:", "Choose frequency of screen refresh", refresh_rate_submenu, refresh_rate_submenu_callback, NULL, 4); #ifndef USE_MIDAS_SOUND tui_menu_add_item(ui_video_submenu, "_Triple Buffering:", "Enable triple buffering for smoother animations (when available)", toggle_TripleBuffering_callback, NULL, 3, TUI_MENU_BEH_CONTINUE); #endif tui_menu_add_separator(ui_video_submenu); ui_screenshot_submenu = tui_menu_create("Screenshot Commands", 1); tui_menu_add(ui_screenshot_submenu, ui_screenshot_menu_def); tui_menu_add_submenu(ui_video_submenu, "_Screenshot Commands...", "Commands for saving screenshots", ui_screenshot_submenu, NULL, 0, TUI_MENU_BEH_CONTINUE); }