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(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; }