Mercurial > audlegacy
annotate Plugins/Input/amidi-plug/i_fileinfo.c @ 533:bcbc6195e82e trunk
[svn] throw out duplicate XEvents... again, for speed purposes we don't need
to process every pixel the player is manipulated
author | nenolod |
---|---|
date | Fri, 27 Jan 2006 21:29:56 -0800 |
parents | 60c744f652f4 |
children | b8b9d7f5d371 |
rev | line source |
---|---|
522
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
1 /* |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
2 * |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
3 * Author: Giacomo Lozito <james@develia.org>, (C) 2005-2006 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
4 * |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
5 * This program is free software; you can redistribute it and/or modify it |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
6 * under the terms of the GNU General Public License as published by the |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
7 * Free Software Foundation; either version 2 of the License, or (at your |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
8 * option) any later version. |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
9 * |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
10 * This program is distributed in the hope that it will be useful, but |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
11 * WITHOUT ANY WARRANTY; without even the implied warranty of |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
13 * General Public License for more details. |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
14 * |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
15 * You should have received a copy of the GNU General Public License along |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
16 * with this program; if not, write to the Free Software Foundation, Inc., |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
17 * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
18 * |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
19 */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
20 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
21 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
22 #include "i_fileinfo.h" |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
23 /* this is needed to retrieve information */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
24 #include "i_midi.h" |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
25 /* icon from gnome-mime-audio-midi.png of the GNOME ICON SET */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
26 #include "amidi-plug.midiicon.xpm" |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
27 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
28 static amidiplug_gui_fileinfo_t amidiplug_gui_fileinfo = { NULL }; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
29 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
30 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
31 gint i_fileinfo_midiparse( gchar * filename , midifile_t * mf ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
32 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
33 i_midi_init( mf ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
34 DEBUGMSG( "FILEINFO requested, opening file: %s\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
35 mf->file_pointer = fopen( filename , "rb" ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
36 if (!mf->file_pointer) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
37 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
38 g_warning( "Cannot open %s\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
39 return 0; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
40 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
41 mf->file_name = filename; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
42 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
43 switch( i_midi_file_read_id( mf ) ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
44 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
45 case MAKE_ID('R', 'I', 'F', 'F'): |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
46 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
47 DEBUGMSG( "FILEINFO requested, RIFF chunk found, processing...\n" ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
48 /* read riff chunk */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
49 if ( !i_midi_file_parse_riff( mf ) ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
50 WARNANDBREAK( "%s: invalid file format (riff parser)\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
51 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
52 /* if that was read correctly, go ahead and read smf data */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
53 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
54 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
55 case MAKE_ID('M', 'T', 'h', 'd'): |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
56 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
57 DEBUGMSG( "FILEINFO requested, MThd chunk found, processing...\n" ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
58 /* we don't care about port count here, pass 1 */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
59 if ( !i_midi_file_parse_smf( mf , 1 ) ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
60 WARNANDBREAK( "%s: invalid file format (smf parser)\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
61 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
62 if ( mf->time_division < 1 ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
63 WARNANDBREAK( "%s: invalid time division (%i)\n" , filename , mf->time_division ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
64 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
65 /* fill mf->ppq and mf->tempo using time_division */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
66 if ( !i_midi_setget_tempo( mf ) ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
67 WARNANDBREAK( "%s: invalid values while setting ppq and tempo\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
68 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
69 /* fill mf->length, keeping in count tempo-changes */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
70 i_midi_setget_length( mf ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
71 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
72 /* ok, mf has been filled with information; successfully return */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
73 fclose( mf->file_pointer ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
74 return 1; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
75 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
76 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
77 default: |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
78 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
79 g_warning( "%s is not a Standard MIDI File\n" , filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
80 break; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
81 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
82 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
83 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
84 /* something failed */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
85 fclose( mf->file_pointer ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
86 return 0; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
87 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
88 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
89 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
90 void i_fileinfo_ev_destroy( void ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
91 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
92 amidiplug_gui_fileinfo.fileinfo_win = NULL; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
93 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
94 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
95 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
96 void i_fileinfo_ev_close( void ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
97 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
98 gtk_widget_destroy( amidiplug_gui_fileinfo.fileinfo_win ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
99 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
100 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
101 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
102 void i_fileinfo_table_add_entry( gchar * field_text , gchar * value_text , |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
103 GtkWidget * table , guint line , PangoAttrList * attrlist ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
104 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
105 GtkWidget *field, *value; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
106 field = gtk_label_new( field_text ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
107 gtk_label_set_attributes( GTK_LABEL(field) , attrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
108 gtk_misc_set_alignment( GTK_MISC(field) , 0 , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
109 gtk_label_set_justify( GTK_LABEL(field) , GTK_JUSTIFY_LEFT ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
110 gtk_table_attach( GTK_TABLE(table) , field , 0 , 1 , line , (line + 1) , |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
111 GTK_FILL , GTK_FILL , 5 , 2 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
112 value = gtk_label_new( value_text ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
113 gtk_misc_set_alignment( GTK_MISC(value) , 0 , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
114 gtk_label_set_justify( GTK_LABEL(value) , GTK_JUSTIFY_LEFT ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
115 gtk_table_attach( GTK_TABLE(table) , value , 1 , 2 , line , (line + 1) , |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
116 GTK_FILL , GTK_FILL , 5 , 2 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
117 return; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
118 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
119 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
120 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
121 void i_fileinfo_gui( gchar * filename ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
122 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
123 GtkWidget *fileinfowin_vbox; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
124 GtkWidget *title_hbox , *title_icon_image , *title_name_f_label , *title_name_v_entry; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
125 GtkWidget *info_frame , *info_table; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
126 GtkWidget *footer_hbbox, *footer_bclose; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
127 GdkPixbuf *title_icon_pixbuf; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
128 PangoAttrList *pangoattrlist; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
129 PangoAttribute *pangoattr; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
130 GString *value_gstring; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
131 gchar *title , *filename_utf8; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
132 gint bpm = 0, wavg_bpm = 0; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
133 midifile_t mf; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
134 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
135 if ( amidiplug_gui_fileinfo.fileinfo_win ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
136 return; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
137 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
138 /****************** midifile parser ******************/ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
139 if ( !i_fileinfo_midiparse( filename , &mf ) ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
140 return; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
141 /* midifile is filled with information at this point, |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
142 bpm information is needed too */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
143 i_midi_get_bpm( &mf , &bpm , &wavg_bpm ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
144 /*****************************************************/ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
145 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
146 amidiplug_gui_fileinfo.fileinfo_win = gtk_window_new( GTK_WINDOW_TOPLEVEL ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
147 gtk_window_set_type_hint( GTK_WINDOW(amidiplug_gui_fileinfo.fileinfo_win), GDK_WINDOW_TYPE_HINT_DIALOG ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
148 gtk_window_set_resizable( GTK_WINDOW(amidiplug_gui_fileinfo.fileinfo_win) , FALSE ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
149 gtk_window_set_position( GTK_WINDOW(amidiplug_gui_fileinfo.fileinfo_win) , GTK_WIN_POS_CENTER ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
150 g_signal_connect( G_OBJECT(amidiplug_gui_fileinfo.fileinfo_win) , |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
151 "destroy" , G_CALLBACK(i_fileinfo_ev_destroy) , NULL ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
152 gtk_container_set_border_width( GTK_CONTAINER(amidiplug_gui_fileinfo.fileinfo_win), 10 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
153 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
154 fileinfowin_vbox = gtk_vbox_new( FALSE , 10 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
155 gtk_container_add( GTK_CONTAINER(amidiplug_gui_fileinfo.fileinfo_win) , fileinfowin_vbox ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
156 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
157 /* pango attributes */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
158 pangoattrlist = pango_attr_list_new(); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
159 pangoattr = pango_attr_weight_new( PANGO_WEIGHT_BOLD ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
160 pangoattr->start_index = 0; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
161 pangoattr->end_index = G_MAXINT; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
162 pango_attr_list_insert( pangoattrlist , pangoattr ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
163 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
164 /****************** |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
165 *** TITLE LINE ***/ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
166 title_hbox = gtk_hbox_new( FALSE , 5 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
167 gtk_box_pack_start( GTK_BOX(fileinfowin_vbox) , title_hbox , FALSE , FALSE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
168 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
169 title_icon_pixbuf = gdk_pixbuf_new_from_xpm_data( (const gchar **)amidiplug_xpm_midiicon ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
170 title_icon_image = gtk_image_new_from_pixbuf( title_icon_pixbuf ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
171 g_object_unref( title_icon_pixbuf ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
172 gtk_misc_set_alignment( GTK_MISC(title_icon_image) , 0 , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
173 gtk_box_pack_start( GTK_BOX(title_hbox) , title_icon_image , FALSE , FALSE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
174 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
175 title_name_f_label = gtk_label_new( _("Name:") ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
176 gtk_label_set_attributes( GTK_LABEL(title_name_f_label) , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
177 gtk_box_pack_start( GTK_BOX(title_hbox) , title_name_f_label , FALSE , FALSE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
178 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
179 title_name_v_entry = gtk_entry_new(); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
180 gtk_editable_set_editable( GTK_EDITABLE(title_name_v_entry) , FALSE ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
181 gtk_widget_set_size_request( GTK_WIDGET(title_name_v_entry) , 200 , -1 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
182 gtk_box_pack_start(GTK_BOX(title_hbox) , title_name_v_entry , TRUE , TRUE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
183 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
184 /********************* |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
185 *** MIDI INFO BOX ***/ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
186 info_frame = gtk_frame_new( _(" MIDI Info ") ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
187 gtk_box_pack_start( GTK_BOX(fileinfowin_vbox) , info_frame , TRUE , TRUE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
188 info_table = gtk_table_new( 6 , 2 , FALSE ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
189 gtk_container_set_border_width( GTK_CONTAINER(info_table) , 5 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
190 gtk_container_add( GTK_CONTAINER(info_frame) , info_table ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
191 value_gstring = g_string_new( "" ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
192 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
193 /* midi format */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
194 G_STRING_PRINTF( value_gstring , "type %i" , mf.format ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
195 i_fileinfo_table_add_entry( _("Format:") , value_gstring->str , info_table , 0 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
196 /* midi length */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
197 G_STRING_PRINTF( value_gstring , "%i" , (gint)(mf.length / 1000) ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
198 i_fileinfo_table_add_entry( _("Length (msec):") , value_gstring->str , info_table , 1 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
199 /* midi num of tracks */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
200 G_STRING_PRINTF( value_gstring , "%i" , mf.num_tracks ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
201 i_fileinfo_table_add_entry( _("Num of Tracks:") , value_gstring->str , info_table , 2 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
202 /* midi bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
203 if ( bpm > 0 ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
204 G_STRING_PRINTF( value_gstring , "%i" , bpm ); /* fixed bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
205 else |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
206 G_STRING_PRINTF( value_gstring , _("variable") ); /* variable bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
207 i_fileinfo_table_add_entry( _("BPM:") , value_gstring->str , info_table , 3 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
208 /* midi weighted average bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
209 if ( bpm > 0 ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
210 G_STRING_PRINTF( value_gstring , "/" ); /* fixed bpm, don't care about wavg_bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
211 else |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
212 G_STRING_PRINTF( value_gstring , "%i" , wavg_bpm ); /* variable bpm, display wavg_bpm */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
213 i_fileinfo_table_add_entry( _("BPM (wavg):") , value_gstring->str , info_table , 4 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
214 /* midi time division */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
215 G_STRING_PRINTF( value_gstring , "%i" , mf.time_division ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
216 i_fileinfo_table_add_entry( _("Time Div:") , value_gstring->str , info_table , 5 , pangoattrlist ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
217 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
218 g_string_free( value_gstring , TRUE ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
219 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
220 /************** |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
221 *** FOOTER ***/ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
222 footer_hbbox = gtk_hbutton_box_new(); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
223 gtk_button_box_set_layout( GTK_BUTTON_BOX(footer_hbbox) , GTK_BUTTONBOX_END ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
224 footer_bclose = gtk_button_new_from_stock( GTK_STOCK_CLOSE ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
225 g_signal_connect( G_OBJECT(footer_bclose) , "clicked" , G_CALLBACK(i_fileinfo_ev_close) , NULL ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
226 gtk_container_add( GTK_CONTAINER(footer_hbbox) , footer_bclose ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
227 gtk_box_pack_start( GTK_BOX(fileinfowin_vbox) , footer_hbbox , FALSE , FALSE , 0 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
228 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
229 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
230 /* utf8-ize filename and set window title */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
231 filename_utf8 = g_strdup(g_filename_to_utf8( filename , -1 , NULL , NULL , NULL )); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
232 if ( !filename_utf8 ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
233 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
234 /* utf8 fallback */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
235 gchar *chr , *convert_str = g_strdup( filename ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
236 for ( chr = convert_str ; *chr ; chr++ ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
237 { |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
238 if ( *chr & 0x80 ) |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
239 *chr = '?'; |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
240 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
241 filename_utf8 = g_strconcat( convert_str , _(" (invalid UTF-8)") , NULL ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
242 g_free(convert_str); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
243 } |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
244 title = g_strdup_printf( "%s - " PLAYER_NAME , g_basename(filename_utf8)); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
245 gtk_window_set_title( GTK_WINDOW(amidiplug_gui_fileinfo.fileinfo_win) , title); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
246 g_free(title); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
247 /* set the text for the filename header too */ |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
248 gtk_entry_set_text( GTK_ENTRY(title_name_v_entry) , filename_utf8 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
249 gtk_editable_set_position( GTK_EDITABLE(title_name_v_entry) , -1 ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
250 g_free(filename_utf8); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
251 |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
252 gtk_widget_grab_focus( GTK_WIDGET(footer_bclose) ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
253 gtk_widget_show_all( amidiplug_gui_fileinfo.fileinfo_win ); |
60c744f652f4
[svn] amidi-plug (MIDI through ALSA seq) input plugin added, brand new and completely written from scratch :)
giacomo
parents:
diff
changeset
|
254 } |