// format output using mp3info. void mod_idmp3_format_output(char *format_string, mp3info *mp3, int vbr_report, char *relname) { char genre[40]=""; char mod[1000],*percent,*pos,*code; char *format=format_string; int modlen; strcpy(mod, format_string); mod_idmp3_replace(mod, "%a", mp3->id3.artist); mod_idmp3_replace(mod, "%l", mp3->id3.album); mod_idmp3_replace(mod, "%y", mp3->id3.year); mod_idmp3_text_genre(mp3->id3.genre, genre); mod_idmp3_replace(mod, "%g", genre); sprintf(genre, "%d", mp3->id3.genre[0]); mod_idmp3_replace(mod, "%G", genre); if (mp3->vbr && (vbr_report == VBR_VARIABLE)) sprintf(genre, "Variable"); else if (vbr_report == VBR_AVERAGE) sprintf(genre, "%.1f", mp3->vbr_average); else sprintf(genre, "%d", header_bitrate(&mp3->header)); mod_idmp3_replace(mod, "%r", genre); sprintf(genre, "%d", header_frequency(&mp3->header)); mod_idmp3_replace(mod, "%Q", genre); mod_idmp3_replace(mod, "%L", mod_idmp3_layer_text[header_layer(&mp3->header)-1]); mod_idmp3_replace(mod, "%o", header_mode(&mp3->header)); mod_idmp3_replace(mod, "%R", relname); mod_idmp3_replace(mod, "%S", "NYI"); mod_idmp3_replace(mod, "%m", "NYI"); mod_idmp3_replace(mod, "%s", "NYI"); gl_gllog_add(mod); printf(" .. idmp3 module says: Logged information to glftpd.log\n .. %s\n", mod); // printf("%s\n", mod); }
void create_techinfo_win(void) { GtkWidget *infowin_main, *infowin_main_frame; GtkWidget *infowin_exit_button, *infowin_button_frame; GtkWidget *infowin_text_media, *infowin_text_bitrate; GtkWidget *infowin_text_emphasis, *infowin_text_crc; GtkWidget *infowin_text_copyright, *infowin_text_original; GtkWidget *infowin_text_padding, *infowin_text_length; GtkWidget *infowin_text_frequency; int ibuf,ibuf2; char buf[50]; char *layer_text[] = { "I", "II", "III" }; infowin_main = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_widget_set_usize(infowin_main, 230, 300); gtk_container_border_width(GTK_CONTAINER(infowin_main), 15); gtk_window_set_title(GTK_WINDOW(infowin_main), "MP3 Technical Info"); gtk_window_set_policy(GTK_WINDOW(infowin_main), FALSE, FALSE, FALSE); gtk_signal_connect_object(GTK_OBJECT(infowin_main), "key_press_event", GTK_SIGNAL_FUNC(kill_if_esc), (gpointer) infowin_main); infowin_main_frame=gtk_vbox_new(FALSE,5); if (mp3.header_isvalid) { sprintf(buf,"Media Type: MPEG %s Layer %s",mp3.header.version ? ((mp3.header.version==2) ? "2.5" : "1.0") : "2.0", layer_text[header_layer(&mp3.header)-1]); infowin_text_media=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_media,TRUE,TRUE,0); sprintf(buf,"Bitrate: %i KB/s",header_bitrate(&mp3.header)); infowin_text_bitrate=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_bitrate,TRUE,TRUE,0); sprintf(buf,"Frequency: %iKHz",header_frequency(&mp3.header)/1000); infowin_text_frequency=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_frequency,TRUE,TRUE,0); ibuf=mp3.seconds / 60; ibuf2=mp3.seconds % 60; sprintf(buf,"Length: %i:%02i",ibuf,ibuf2); infowin_text_length=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_length,TRUE,TRUE,0); sprintf(buf,"Emphasis: %s",header_emphasis(&mp3.header)); infowin_text_emphasis=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_emphasis,TRUE,TRUE,0); sprintf(buf,"CRC: %s",!mp3.header.crc ? "Yes" : "No"); infowin_text_crc=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_crc,TRUE,TRUE,0); sprintf(buf,"Copyright: %s",mp3.header.copyright ? "Yes" : "No"); infowin_text_copyright=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_copyright,TRUE,TRUE,0); sprintf(buf,"Original: %s",mp3.header.original ? "Yes" : "No"); infowin_text_original=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_original,TRUE,TRUE,0); sprintf(buf,"Padding: %s",mp3.header.padding ? "Yes" : "No"); infowin_text_padding=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_padding,TRUE,TRUE,0); } else { sprintf(buf,"This file's header\nis invalid.\n\nNo information\navailable"); infowin_text_media=gtk_label_new(buf); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_text_media,TRUE,TRUE,0); } infowin_button_frame=gtk_hbox_new(TRUE,30); gtk_widget_set_usize(infowin_button_frame,30,20); gtk_box_pack_start(GTK_BOX(infowin_main_frame),infowin_button_frame,TRUE,TRUE,0); infowin_exit_button = gtk_button_new_with_label("Exit"); gtk_widget_show(infowin_exit_button); gtk_box_pack_end(GTK_BOX(infowin_button_frame), infowin_exit_button, FALSE, TRUE, 0); gtk_signal_connect_object(GTK_OBJECT(infowin_exit_button), "pressed", GTK_SIGNAL_FUNC(gtk_widget_destroy), GTK_OBJECT(infowin_main)); gtk_container_add(GTK_CONTAINER(infowin_main),infowin_main_frame); gtk_widget_show_all(infowin_main); }