Example #1
0
// 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);
	

	
}