static int song_save_callback(struct song *song, void *data) { FILE *fp = data; song_save(fp, song); return 0; }
widget->type == WIDGET_TOGGLEBUTTON; widget++) { if (widget->d.togglebutton.state) { // Aha! seltype = widget->d.togglebutton.text; break; } } if (!seltype) { // No button was selected? (should never happen) log_appendf(4, "No file format selected?"); ret = SAVE_INTERNAL_ERROR; } else if (export) { ret = song_export(filename, seltype); } else { ret = song_save(filename, seltype); } if (ret != SAVE_SUCCESS) dialog_create(DIALOG_OK, "Could not save file", NULL, NULL, 0, NULL); free(ptr); } void save_song_or_save_as(void) { const char *f = song_get_filename(); if (f && *f) { do_save_song(str_dup(f)); } else { set_page(PAGE_SAVE_MODULE);