static gboolean save_winamp_file (const gchar * filename) { VFSFile *file; gchar name[257]; gint i; guchar bands[11]; if (!(file = open_vfs_file(filename, "wb"))) return FALSE; if (vfs_fwrite ("Winamp EQ library file v1.1\x1a!--", 1, 31, file) != 31) goto ERR; memset(name, 0, 257); g_strlcpy(name, "Entry1", 257); if (vfs_fwrite (name, 1, 257, file) != 257) goto ERR; for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) bands[i] = 63 - (((equalizerwin_get_band(i) + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2); bands[AUD_EQUALIZER_NBANDS] = 63 - (((equalizerwin_get_preamp() + EQUALIZER_MAX_GAIN) * 63) / EQUALIZER_MAX_GAIN / 2); if (vfs_fwrite (bands, 1, 11, file) != 11) goto ERR; vfs_fclose (file); return TRUE; ERR: vfs_fclose (file); return FALSE; }
void equalizerwin_eq_changed(void) { aud_set_double (NULL, "equalizer_preamp", equalizerwin_get_preamp ()); double bands[AUD_EQUALIZER_NBANDS]; for (gint i = 0; i < AUD_EQUALIZER_NBANDS; i ++) bands[i] = equalizerwin_get_band (i); aud_eq_set_bands (bands); }
static void equalizerwin_save_preset (Index * list, const char * name, const char * filename) { int p = equalizerwin_find_preset (list, name); EqualizerPreset * preset = (p >= 0) ? index_get (list, p) : NULL; if (! preset) { preset = g_new0(EqualizerPreset, 1); preset->name = g_strdup(name); index_append (list, preset); } preset->preamp = equalizerwin_get_preamp(); for (int i = 0; i < AUD_EQUALIZER_NBANDS; i ++) preset->bands[i] = equalizerwin_get_band(i); aud_equalizer_write_preset_file(list, filename); }
void action_equ_save_preset_file(void) { GtkWidget *dialog; gchar *file_uri; gint i; dialog = make_filebrowser(_("Save equalizer preset"), TRUE); if (gtk_dialog_run(GTK_DIALOG(dialog)) == GTK_RESPONSE_ACCEPT) { file_uri = gtk_file_chooser_get_uri(GTK_FILE_CHOOSER(dialog)); EqualizerPreset *preset = g_new0(EqualizerPreset, 1); preset->name = g_strdup(file_uri); preset->preamp = equalizerwin_get_preamp(); for (i = 0; i < AUD_EQUALIZER_NBANDS; i++) preset->bands[i] = equalizerwin_get_band(i); aud_save_preset_file(preset, file_uri); equalizer_preset_free(preset); g_free(file_uri); } char * songname = aud_drct_get_filename (); if (songname != NULL) { gchar * ext = aud_get_string (NULL, "eqpreset_extension"); gchar * eqname = g_strdup_printf ("%s.%s", songname, ext); gtk_file_chooser_set_filename(GTK_FILE_CHOOSER(dialog), eqname); g_free (eqname); g_free (ext); str_unref (songname); } gtk_widget_destroy(dialog); }
static void equalizerwin_update_preset (EqualizerPreset * preset) { preset->preamp = equalizerwin_get_preamp (); for (int i = 0; i < AUD_EQUALIZER_NBANDS; i ++) preset->bands[i] = equalizerwin_get_band (i); }