static UI_MENU_CALLBACK(save_movie_callback) { char *name = NULL; int width; int height; if (activated) { if (!ffmpeg_drv) { ui_error("FFMPEG not available."); return NULL; } name = sdl_ui_file_selection_dialog("Choose movie file", FILEREQ_MODE_SAVE_FILE); if (name != NULL) { width = sdl_active_canvas->draw_buffer->draw_buffer_width; height = sdl_active_canvas->draw_buffer->draw_buffer_height; memcpy(sdl_active_canvas->draw_buffer->draw_buffer, sdl_ui_get_draw_buffer(), width * height); util_add_extension(&name, ffmpeg_drv->default_extension); if (screenshot_save("FFMPEG", name, sdl_active_canvas) < 0) { ui_error("Cannot save movie."); } lib_free(name); return sdl_menu_text_exit_ui; } } return NULL; }
static UI_MENU_CALLBACK(start_recording_callback) { char *parameter = (char *)param; if (activated) { resources_set_string("SoundRecordDeviceName", ""); if (parameter != NULL) { char *name = NULL; name = sdl_ui_file_selection_dialog("Choose audio file to record to", FILEREQ_MODE_CHOOSE_FILE); if (name != NULL) { util_add_extension(&name, parameter); resources_set_string("SoundRecordDeviceArg", name); resources_set_string("SoundRecordDeviceName", parameter); lib_free(name); } } } else { if (parameter != NULL) { const char *w; resources_get_string("SoundRecordDeviceName", &w); if (!strcmp(w, parameter)) { return sdl_menu_text_tick; } } } return NULL; }
static UI_MENU_CALLBACK(save_screenshot_callback) { char title[20]; char *name = NULL; int width; int height; gfxoutputdrv_t *selected_driver = NULL; if (activated) { sprintf(title, "Choose %s file", (char *)param); name = sdl_ui_file_selection_dialog(title, FILEREQ_MODE_SAVE_FILE); if (name != NULL) { width = sdl_active_canvas->draw_buffer->draw_buffer_width; height = sdl_active_canvas->draw_buffer->draw_buffer_height; memcpy(sdl_active_canvas->draw_buffer->draw_buffer, sdl_ui_get_draw_buffer(), width * height); selected_driver = gfxoutput_get_driver((char *)param); util_add_extension(&name, selected_driver->default_extension); if (screenshot_save((char *)param, name, sdl_active_canvas) < 0) { ui_error("Cannot save screenshot."); } lib_free(name); } } return NULL; }
static UI_MENU_CALLBACK(attach_cart_callback) { char *name; if (activated) { name = sdl_ui_file_selection_dialog("Select Cart image", FILEREQ_MODE_CHOOSE_FILE); if (name != NULL) { if (cartridge_attach_image(vice_ptr_to_int(param), name) < 0) { ui_error("Cannot load cartridge image."); } lib_free(name); } } return NULL; }
static UI_MENU_CALLBACK(c64_cart_save_callback) { if (activated) { int cartid = vice_ptr_to_int(param); char *name = NULL; name = sdl_ui_file_selection_dialog("Choose cartridge file", FILEREQ_MODE_SAVE_FILE); if (name != NULL) { if (cartridge_save_image(cartid, name) < 0) { ui_error("Cannot save cartridge image."); } lib_free(name); } } return NULL; }
static UI_MENU_CALLBACK(load_psid_callback) { char *name = NULL; if (activated) { name = sdl_ui_file_selection_dialog("Choose PSID file", FILEREQ_MODE_CHOOSE_FILE); if (name != NULL) { if (machine_autodetect_psid(name) < 0) { ui_error("Could not load PSID file"); } lib_free(name); psid_init_driver(); machine_play_psid(0); machine_trigger_reset(MACHINE_RESET_MODE_SOFT); return sdl_menu_text_exit_ui; } } return NULL; }
static UI_MENU_CALLBACK(attach_cart_callback) { char *title; char *name = NULL; if (activated) { switch (vice_ptr_to_int(param)) { case CARTRIDGE_VIC20_FP: title = "Select " CARTRIDGE_VIC20_NAME_FP " image"; break; case CARTRIDGE_VIC20_MEGACART: title = "Select " CARTRIDGE_VIC20_NAME_MEGACART " image"; break; case CARTRIDGE_VIC20_FINAL_EXPANSION: title = "Select " CARTRIDGE_VIC20_NAME_FP " image"; break; case CARTRIDGE_VIC20_DETECT: case CARTRIDGE_VIC20_GENERIC: title = "Select cartridge image"; break; case CARTRIDGE_VIC20_16KB_2000: case CARTRIDGE_VIC20_16KB_4000: case CARTRIDGE_VIC20_16KB_6000: title = "Select 4/8/16kB image"; break; case CARTRIDGE_VIC20_8KB_A000: title = "Select 4/8kB image"; break; case CARTRIDGE_VIC20_4KB_B000: default: title = "Select 4kB image"; break; } name = sdl_ui_file_selection_dialog(title, FILEREQ_MODE_CHOOSE_FILE); if (name != NULL) { if (cartridge_attach_image(vice_ptr_to_int(param), name) < 0) { ui_error("Cannot load cartridge image."); } lib_free(name); } } return NULL; }