annotate Gui/interface.c @ 20997:425ff58ad31b

Move xvid 'grayscale' option close to 'interlacing'
author gpoirier
date Sat, 18 Nov 2006 12:26:04 +0000
parents 18ba5bc68f40
children b42f1c1ef651
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
1
4845
ed5aa118e142 inttypes.h bug fix. 10l
pontscho
parents: 4818
diff changeset
2 #include <inttypes.h>
ed5aa118e142 inttypes.h bug fix. 10l
pontscho
parents: 4818
diff changeset
3 #include <stdlib.h>
ed5aa118e142 inttypes.h bug fix. 10l
pontscho
parents: 4818
diff changeset
4 #include <stdio.h>
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
5 #include <string.h>
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
6 #include <sys/types.h>
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
7
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
8 #include "wm/ws.h"
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
9 #include "wm/wsxdnd.h"
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
10 #include "interface.h"
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
11 #include "skin/skin.h"
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
12
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
13 #include "mplayer/gtk/eq.h"
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
14 #include "mplayer/widgets.h"
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
15 #include "mplayer/mplayer.h"
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
16 #include "mplayer/play.h"
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
17
17144
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
18 #include "mplayer.h"
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
19 #include "app.h"
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
20 #include "cfg.h"
17144
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
21 #include "help_mp.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
22 #include "subreader.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
23 #include "libvo/x11_common.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
24 #include "libvo/video_out.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
25 #include "libvo/font_load.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
26 #include "libvo/sub.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
27 #include "input/input.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
28 #include "libao2/audio_out.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
29 #include "mixer.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
30 #include "libaf/af.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
31 #include "libaf/equalizer.h"
5789
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
32
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
33 extern af_cfg_t af_cfg;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
34
6996
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
35 #ifdef USE_ICONV
7128
dc48f2130a76 FreeBSD iconv change/fix
nexus
parents: 7122
diff changeset
36 #include <iconv.h>
6996
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
37 #endif
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
38
19274
e579e74d6c3c fix includes due to libmpdemux split (patch by Stefan Huehner)
ben
parents: 19081
diff changeset
39 #include "stream/stream.h"
17144
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
40 #include "libmpdemux/demuxer.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
41 #include "libmpdemux/stheader.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
42 #include "libmpcodecs/dec_video.h"
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
43
18682
bee3186a06f7 include stream_dvd's interface from libmpdemux/stream_dvd.h
nicodvb
parents: 18533
diff changeset
44 #ifdef USE_DVDREAD
19274
e579e74d6c3c fix includes due to libmpdemux split (patch by Stefan Huehner)
ben
parents: 19081
diff changeset
45 #include "stream/stream_dvd.h"
18682
bee3186a06f7 include stream_dvd's interface from libmpdemux/stream_dvd.h
nicodvb
parents: 18533
diff changeset
46 #endif
bee3186a06f7 include stream_dvd's interface from libmpdemux/stream_dvd.h
nicodvb
parents: 18533
diff changeset
47
bee3186a06f7 include stream_dvd's interface from libmpdemux/stream_dvd.h
nicodvb
parents: 18533
diff changeset
48
17144
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
49 #include "m_config.h"
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
50 #include "m_option.h"
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
51
12691
0230544f52a1 Fix GUI compilation, patch by Reimar Dffinger and Alexander Strasser.
diego
parents: 12646
diff changeset
52 extern mixer_t mixer; // mixer from mplayer.c
0230544f52a1 Fix GUI compilation, patch by Reimar Dffinger and Alexander Strasser.
diego
parents: 12646
diff changeset
53
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
54 guiInterface_t guiIntfStruct;
9314
f38fe55d0e05 this patch adds the option -guiwid to gmplayer. I think its a more clean
arpi
parents: 9306
diff changeset
55 int guiWinID=-1;
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
56
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
57 char * gstrcat( char ** dest,const char * src )
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
58 {
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
59 char * tmp = NULL;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
60
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
61 if ( !src ) return NULL;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
62
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
63 if ( *dest )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
64 {
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
65 tmp=malloc( strlen( *dest ) + strlen( src ) + 1 );
12646
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
66
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
67 if ( tmp ) /* TODO: advanced error handling */
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
68 {
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
69 strcpy( tmp,*dest ); strcat( tmp,src ); free( *dest );
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
70 }
9a495bdc3a1e string handling security fixes
diego
parents: 12068
diff changeset
71 }
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
72 else
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
73 { tmp=malloc( strlen( src ) + 1 ); strcpy( tmp,src ); }
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
74 *dest=tmp;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
75 return tmp;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
76 }
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
77
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
78 int gstrcmp( const char * a,const char * b )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
79 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
80 if ( !a && !b ) return 0;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
81 if ( !a || !b ) return -1;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
82 return strcmp( a,b );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
83 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
84
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
85 int gstrncmp( const char * a,const char * b,int size )
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
86 {
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
87 if ( !a && !b ) return 0;
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
88 if ( !a || !b ) return -1;
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
89 return strncmp( a,b,size );
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
90 }
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
91
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
92 char * gstrdup( const char * str )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
93 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
94 if ( !str ) return NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
95 return strdup( str );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
96 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
97
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
98 char * gstrchr( char * str,int c )
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
99 {
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
100 if ( !str ) return NULL;
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
101 return strchr( str,c );
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
102 }
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
103
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
104 void gfree( void ** p )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
105 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
106 if ( *p == NULL ) return;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
107 free( *p ); *p=NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
108 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
109
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
110 void gset( char ** str, const char * what )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
111 {
7887
0e5544951425 A small patch to Gui/interface.c; the first fix is a plain bug, the second is
arpi
parents: 7707
diff changeset
112 if ( *str ) { if ( !strstr( *str,what ) ) { gstrcat( str,"," ); gstrcat( str,what ); }}
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
113 else gstrcat( str,what );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
114 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
115
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
116 /**
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
117 * \brief this actually creates a new list containing only one element...
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
118 */
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
119 void gaddlist( char *** list,const char * entry )
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
120 {
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
121 int i;
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
122
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
123 if ( (*list) )
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
124 {
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
125 for ( i=0;(*list)[i];i++ ) free( (*list)[i] );
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
126 free( (*list) );
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
127 }
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
128
14177
b8ba18471f4a Somebody obviously took a course "coding non-portable".
reimar
parents: 14156
diff changeset
129 (*list)=malloc( 2 * sizeof(char **) );
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
130 (*list)[0]=gstrdup( entry );
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
131 (*list)[1]=NULL;
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
132 }
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
133
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
134 /**
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
135 * \brief this replaces a string starting with search by replace.
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
136 * If not found, replace is appended.
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
137 */
19081
273bdef43012 Mark several string parameters that are not modified in the function as const.
diego
parents: 19061
diff changeset
138 void greplace(char ***list, const char *search, const char *replace)
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
139 {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
140 int i = 0;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
141 int len = (search) ? strlen(search) : 0;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
142
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
143 if (*list) {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
144 for (i = 0; (*list)[i]; i++) {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
145 if (search && (strncmp((*list)[i], search, len) == 0)) {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
146 free((*list)[i]);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
147 (*list)[i] = gstrdup(replace);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
148 return;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
149 }
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
150 }
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
151 *list = realloc(*list, (i + 2) * sizeof(char *));
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
152 }
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
153 else
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
154 *list = malloc(2 * sizeof(char *));
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
155
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
156 (*list)[i] = gstrdup(replace);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
157 (*list)[i + 1] = NULL;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
158 }
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
159
6996
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
160 #ifdef USE_ICONV
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
161 char * gconvert_uri_to_filename( char * str )
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
162 {
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
163 iconv_t d;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
164 char * out = strdup( str );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
165 char * tmp = NULL;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
166 char * ize;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
167 size_t inb,outb;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
168 char * charset = "ISO8859-1";
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
169 char * cs;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
170
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
171 if ( !strchr( str,'%' ) ) return str;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
172
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
173 {
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
174 char * t = calloc( 1,strlen( out ) );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
175 int i,c = 0;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
176 for ( i=0;i < (int)strlen( out );i++ )
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
177 if ( out[i] != '%' ) t[c++]=out[i];
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
178 else
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
179 {
12068
df423e2d71dc patch from Rune <runner@mail.tele.dk>
pontscho
parents: 11918
diff changeset
180 char tmp[5] = "0xXX";
6996
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
181 // if ( out[++i] == '%' ) { t[c++]='%'; continue; };
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
182 tmp[2]=out[++i]; tmp[3]=out[++i];
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
183 t[c++]=(char)strtol( tmp,(char **)NULL,0 );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
184 }
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
185 free( out );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
186 out=t;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
187 }
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
188
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
189 if ( (cs=getenv( "CHARSET" )) && *cs ) charset=cs;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
190
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
191 inb=outb=strlen( out );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
192 tmp=calloc( 1,outb + 1 );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
193 ize=tmp;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
194 d=iconv_open( charset,"UTF-8" );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
195 if ( (iconv_t)(-1) == d ) return str;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
196 iconv( d,&out,&inb,&tmp,&outb );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
197 iconv_close( d );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
198 free( out );
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
199 return ize;
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
200 }
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
201 #endif
163f78ece9c2 add uri2filename converter
pontscho
parents: 6973
diff changeset
202
6218
8cfddba867b4 fix text render chrash ...
pontscho
parents: 5997
diff changeset
203 void guiInit( void )
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
204 {
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
205 int i;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
206
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
207 memset( &guiIntfStruct,0,sizeof( guiIntfStruct ) );
6898
138a7ff52a26 - fix fuckin' locale (?:)
pontscho
parents: 6891
diff changeset
208 guiIntfStruct.Balance=50.0f;
138a7ff52a26 - fix fuckin' locale (?:)
pontscho
parents: 6891
diff changeset
209 guiIntfStruct.StreamType=-1;
138a7ff52a26 - fix fuckin' locale (?:)
pontscho
parents: 6891
diff changeset
210
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
211 memset( &gtkEquChannels,0,sizeof( gtkEquChannels ) );
7707
b3c7c62c106c upsz ...
pontscho
parents: 7706
diff changeset
212 #ifdef HAVE_DXR3
7706
90044efe01ee - better dxr3 support
pontscho
parents: 7582
diff changeset
213 if ( !gtkDXR3Device ) gtkDXR3Device=strdup( "/dev/em8300-0" );
7707
b3c7c62c106c upsz ...
pontscho
parents: 7706
diff changeset
214 #endif
14181
6ecf5fca82e2 Fixes the bug that after opening the preferences panel gmplayer plays files
reimar
parents: 14177
diff changeset
215 if ( stream_cache_size > 0 ) { gtkCacheOn=1; gtkCacheSize=stream_cache_size; }
18743
087415a46292 respect saved default for cache enable when nothing specified on
reimar
parents: 18682
diff changeset
216 else if ( stream_cache_size == 0 ) gtkCacheOn = 0;
8311
37ab4e646f65 add autosync && some 10l bugfix
pontscho
parents: 8302
diff changeset
217 if ( autosync && autosync != gtkAutoSync ) { gtkAutoSyncOn=1; gtkAutoSync=autosync; }
6898
138a7ff52a26 - fix fuckin' locale (?:)
pontscho
parents: 6891
diff changeset
218
20424
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
219 #ifdef USE_ASS
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
220 gtkASS.enabled = ass_enabled;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
221 gtkASS.use_margins = ass_use_margins;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
222 gtkASS.top_margin = ass_top_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
223 gtkASS.bottom_margin = ass_bottom_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
224 #endif
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
225
6898
138a7ff52a26 - fix fuckin' locale (?:)
pontscho
parents: 6891
diff changeset
226 gtkInit();
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
227 // --- initialize X
6912
5ddd609550d5 - fix equ handling
pontscho
parents: 6903
diff changeset
228 wsXInit( (void *)mDisplay );
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
229 // --- load skin
17974
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
230 skinDirInHome=get_path("skins");
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
231 skinDirInHome_obsolete=get_path("Skin");
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
232 skinMPlayerDir=MPLAYER_DATADIR "/skins";
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
233 skinMPlayerDir_obsolete=MPLAYER_DATADIR "/Skin";
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
234 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 1: '%s'\n",skinDirInHome);
17974
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
235 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 1 (obsolete): '%s'\n",skinDirInHome_obsolete);
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
236 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 2: '%s'\n",skinMPlayerDir);
17974
9a5a62f480e6 Rename the default GUI skins directory from 'Skin' to 'skins', keeping
diego
parents: 17144
diff changeset
237 mp_msg( MSGT_GPLAYER,MSGL_V,"SKIN dir 2 (obsolete): '%s'\n",skinMPlayerDir_obsolete);
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
238 if ( !skinName ) skinName=strdup( "default" );
10607
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
239 i = skinRead( skinName );
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
240 if ((i == -1) && strcmp(skinName,"default"))
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
241 {
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
242 mp_msg( MSGT_GPLAYER,MSGL_WARN,MSGTR_SKIN_SKINCFG_SelectedSkinNotFound, skinName);
10607
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
243 skinName=strdup( "default" );
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
244 i = skinRead( skinName );
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
245 }
a17ebe817e33 Fixed a long standing issue: if configured a not available (not existing, permission denied, ...) skin, the gui never ever started again. Now it reverts to 'default' if it can't open the selected skin, if 'default' fails too, the gui exits with error.
alex
parents: 10594
diff changeset
246 switch (i) {
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
247 case -1: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinNotFound,skinName ); exit( 0 );
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
248 case -2: mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_SKIN_SKINCFG_SkinCfgReadError,skinName ); exit( 0 );
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
249 }
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
250 // --- initialize windows
19061
86350b4b8203 drops casts from void * on malloc/calloc from the gui code
reynaldo
parents: 18743
diff changeset
251 if ( ( mplDrawBuffer = malloc( appMPlayer.main.Bitmap.ImageSize ) ) == NULL )
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
252 {
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
253 fprintf( stderr,MSGTR_NEMDB );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
254 exit( 0 );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
255 }
9306
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
256
9625
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
257 if ( gui_save_pos )
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
258 {
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
259 appMPlayer.main.x = gui_main_pos_x;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
260 appMPlayer.main.y = gui_main_pos_y;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
261 appMPlayer.sub.x = gui_sub_pos_x;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
262 appMPlayer.sub.y = gui_sub_pos_y;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
263 }
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
264
9306
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
265 if (WinID>0)
9625
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
266 {
9306
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
267 appMPlayer.subWindow.Parent=WinID;
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
268 appMPlayer.sub.x=0;
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
269 appMPlayer.sub.y=0;
9625
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
270 }
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
271 if (guiWinID>=0) appMPlayer.mainWindow.Parent=guiWinID;
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
272
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
273 wsCreateWindow( &appMPlayer.subWindow,
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
274 appMPlayer.sub.x,appMPlayer.sub.y,appMPlayer.sub.width,appMPlayer.sub.height,
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
275 wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,wsShowFrame|wsHideWindow,"MPlayer - Video" );
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
276
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
277 wsDestroyImage( &appMPlayer.subWindow );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
278 wsCreateImage( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Width,appMPlayer.sub.Bitmap.Height );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
279 wsXDNDMakeAwareness(&appMPlayer.subWindow);
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
280
8973
0a665389cf2b - add playbar
pontscho
parents: 8949
diff changeset
281 mplMenuInit();
0a665389cf2b - add playbar
pontscho
parents: 8949
diff changeset
282 mplPBInit();
0a665389cf2b - add playbar
pontscho
parents: 8949
diff changeset
283
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
284 vo_setwindow( appMPlayer.subWindow.WindowID, appMPlayer.subWindow.wGC );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
285
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
286 // i=wsHideFrame|wsMaxSize|wsHideWindow;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
287 // if ( appMPlayer.mainDecoration ) i=wsShowFrame|wsMaxSize|wsHideWindow;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
288 i=wsShowFrame|wsMaxSize|wsHideWindow;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
289 wsCreateWindow( &appMPlayer.mainWindow,
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
290 appMPlayer.main.x,appMPlayer.main.y,appMPlayer.main.width,appMPlayer.main.height,
8949
d07ab8e088a9 correct skin changing
pontscho
parents: 8920
diff changeset
291 wsNoBorder,wsShowMouseCursor|wsHandleMouseButton|wsHandleMouseMove,i,"MPlayer" );
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
292
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
293 wsSetShape( &appMPlayer.mainWindow,appMPlayer.main.Mask.Image );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
294 wsXDNDMakeAwareness(&appMPlayer.mainWindow);
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
295
19997
adc8bfbb3628 Fix #ifdef indentation.
diego
parents: 19274
diff changeset
296 #ifdef DEBUG
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
297 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] depth on screen: %d\n",wsDepthOnScreen );
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
298 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] parent: 0x%x\n",(int)appMPlayer.mainWindow.WindowID );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
299 mp_msg( MSGT_GPLAYER,MSGL_DBG2,"[main] sub: 0x%x\n",(int)appMPlayer.subWindow.WindowID );
19997
adc8bfbb3628 Fix #ifdef indentation.
diego
parents: 19274
diff changeset
300 #endif
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
301
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
302 appMPlayer.mainWindow.ReDraw=(void *)mplMainDraw;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
303 appMPlayer.mainWindow.MouseHandler=mplMainMouseHandle;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
304 appMPlayer.mainWindow.KeyHandler=mplMainKeyHandle;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
305 appMPlayer.mainWindow.DandDHandler=mplDandDHandler;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
306
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
307 appMPlayer.subWindow.ReDraw=(void *)mplSubDraw;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
308 appMPlayer.subWindow.MouseHandler=mplSubMouseHandle;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
309 appMPlayer.subWindow.KeyHandler=mplMainKeyHandle;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
310 appMPlayer.subWindow.DandDHandler=mplDandDHandler;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
311
8973
0a665389cf2b - add playbar
pontscho
parents: 8949
diff changeset
312 wsSetBackgroundRGB( &appMPlayer.subWindow,appMPlayer.sub.R,appMPlayer.sub.G,appMPlayer.sub.B );
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
313 wsClearWindow( appMPlayer.subWindow );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
314 if ( appMPlayer.sub.Bitmap.Image ) wsConvert( &appMPlayer.subWindow,appMPlayer.sub.Bitmap.Image,appMPlayer.sub.Bitmap.ImageSize );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
315
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
316 btnModify( evSetVolume,guiIntfStruct.Volume );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
317 btnModify( evSetBalance,guiIntfStruct.Balance );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
318 btnModify( evSetMoviePosition,guiIntfStruct.Position );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
319
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
320 wsSetIcon( wsDisplay,appMPlayer.mainWindow.WindowID,guiIcon,guiIconMask );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
321 wsSetIcon( wsDisplay,appMPlayer.subWindow.WindowID,guiIcon,guiIconMask );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
322
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
323 guiIntfStruct.Playing=0;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
324
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
325 if ( !appMPlayer.mainDecoration ) wsWindowDecoration( &appMPlayer.mainWindow,0 );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
326
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
327 wsVisibleWindow( &appMPlayer.mainWindow,wsShowWindow );
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
328 #if 0
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
329 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
330
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
331 {
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
332 XEvent xev;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
333 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
334 appMPlayer.subWindow.Mapped=wsMapped;
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
335 }
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
336
9088
731e5dc57436 - fix -fs
pontscho
parents: 9056
diff changeset
337 if ( !fullscreen ) fullscreen=gtkLoadFullscreen;
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
338 if ( fullscreen )
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
339 {
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
340 mplFullScreen();
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
341 btnModify( evFullScreen,btnPressed );
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
342 }
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
343 #else
11874
3f6cecc44fc7 fix broken fullscreen start of gmplayer
attila
parents: 11412
diff changeset
344 if ( !fullscreen ) fullscreen=gtkLoadFullscreen;
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
345 if ( gtkShowVideoWindow )
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
346 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
347 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
348 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
349 XEvent xev;
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
350 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
351 appMPlayer.subWindow.Mapped=wsMapped;
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
352 }
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
353
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
354 if ( fullscreen )
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
355 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
356 mplFullScreen();
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
357 btnModify( evFullScreen,btnPressed );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
358 }
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
359 }
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
360 else
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
361 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
362 if ( fullscreen )
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
363 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
364 wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
365 {
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
366 XEvent xev;
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
367 do { XNextEvent( wsDisplay,&xev ); } while ( xev.type != MapNotify || xev.xmap.event != appMPlayer.subWindow.WindowID );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
368 appMPlayer.subWindow.Mapped=wsMapped;
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
369 }
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
370 wsVisibleWindow( &appMPlayer.subWindow, wsShowWindow );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
371
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
372 mplFullScreen();
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
373 btnModify( evFullScreen,btnPressed );
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
374 }
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
375 }
8058
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
376 #endif
9246adcf95f0 cosmetic
pontscho
parents: 8043
diff changeset
377 mplSubRender=1;
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
378 // ---
7538
c7b61f316edf - add "start in fullscreen" function
pontscho
parents: 7526
diff changeset
379
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
380 if ( filename ) mplSetFileName( NULL,filename,STREAMTYPE_FILE );
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
381 if ( plCurrent && !filename ) mplSetFileName( plCurrent->path,plCurrent->name,STREAMTYPE_FILE );
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
382 if ( subdata ) guiSetFilename( guiIntfStruct.Subtitlename, subdata->filename );
6797
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
383 #if defined( USE_OSD ) || defined( USE_SUB )
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
384 guiLoadFont();
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
385 #endif
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
386 }
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
387
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
388 void guiDone( void )
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
389 {
8883
d6d999a9fc41 - new font render finished
pontscho
parents: 8714
diff changeset
390 mplMainRender=0;
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
391 mp_msg( MSGT_GPLAYER,MSGL_V,"[GUI] done.\n" );
9625
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
392
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
393 if ( gui_save_pos )
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
394 {
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
395 gui_main_pos_x=appMPlayer.mainWindow.X; gui_main_pos_y=appMPlayer.mainWindow.Y;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
396 gui_sub_pos_x=appMPlayer.subWindow.X; gui_sub_pos_y=appMPlayer.subWindow.Y;
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
397 }
20424
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
398
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
399 #ifdef USE_ASS
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
400 ass_enabled = gtkASS.enabled;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
401 ass_use_margins = gtkASS.use_margins;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
402 ass_top_margin = gtkASS.top_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
403 ass_bottom_margin = gtkASS.bottom_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
404 #endif
9625
bc24dd70c6e2 many 10l for me ...
pontscho
parents: 9623
diff changeset
405
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
406 cfg_write();
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
407 wsXDone();
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
408 }
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
409
4858
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
410 int guiCMDArray[] =
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
411 {
8883
d6d999a9fc41 - new font render finished
pontscho
parents: 8714
diff changeset
412 evLoadPlay,
4858
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
413 evLoadSubtitle,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
414 evAbout,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
415 evPlay,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
416 evStop,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
417 evPlayList,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
418 evPreferences,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
419 evFullScreen,
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
420 evSkinBrowser
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
421 };
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
422
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
423 extern ao_functions_t * audio_out;
6755
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6713
diff changeset
424 extern vo_functions_t * video_out;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
425 extern int frame_dropping;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
426 extern int stream_dump_type;
9812
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
427 extern int vcd_track;
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
428 extern m_obj_settings_t*vo_plugin_args;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
429
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
430 #if defined( USE_OSD ) || defined( USE_SUB )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
431 void guiLoadFont( void )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
432 {
7122
0dc9cb756b68 freetype 2.0/2.1+ support - disabled by default until bugs fixed
arpi
parents: 7111
diff changeset
433 #ifdef HAVE_FREETYPE
8635
81dbd28ef7c0 these patches let ,,oldstyle'' and freetype subtitle renderers live
arpi
parents: 8615
diff changeset
434 load_font_ft(vo_image_width, vo_image_height);
7122
0dc9cb756b68 freetype 2.0/2.1+ support - disabled by default until bugs fixed
arpi
parents: 7111
diff changeset
435 #else
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
436 if ( vo_font )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
437 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
438 int i;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
439 if ( vo_font->name ) free( vo_font->name );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
440 if ( vo_font->fpath ) free( vo_font->fpath );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
441 for ( i=0;i<16;i++ )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
442 if ( vo_font->pic_a[i] )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
443 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
444 if ( vo_font->pic_a[i]->bmp ) free( vo_font->pic_a[i]->bmp );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
445 if ( vo_font->pic_a[i]->pal ) free( vo_font->pic_a[i]->pal );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
446 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
447 for ( i=0;i<16;i++ )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
448 if ( vo_font->pic_b[i] )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
449 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
450 if ( vo_font->pic_b[i]->bmp ) free( vo_font->pic_b[i]->bmp );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
451 if ( vo_font->pic_b[i]->pal ) free( vo_font->pic_b[i]->pal );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
452 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
453 free( vo_font ); vo_font=NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
454 }
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
455 if ( font_name )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
456 {
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
457 vo_font=read_font_desc( font_name,font_factor,0 );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
458 if ( !vo_font ) mp_msg( MSGT_CPLAYER,MSGL_ERR,MSGTR_CantLoadFont,font_name );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
459 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
460 else
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
461 {
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
462 font_name=gstrdup( get_path( "font/font.desc" ) );
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
463 vo_font=read_font_desc( font_name,font_factor,0 );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
464 if ( !vo_font )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
465 {
10272
7b0bc557987b renames: DATADIR->MPLAYER_DATADIR, CONFDIR->MPLAYER_CONFDIR, LIBDIR->MPLAYER_LIBDIR
arpi
parents: 10193
diff changeset
466 gfree( (void **)&font_name ); font_name=gstrdup(MPLAYER_DATADIR "/font/font.desc" );
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
467 vo_font=read_font_desc( font_name,font_factor,0 );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
468 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
469 }
7122
0dc9cb756b68 freetype 2.0/2.1+ support - disabled by default until bugs fixed
arpi
parents: 7111
diff changeset
470 #endif
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
471 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
472 #endif
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
473
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
474 #ifdef USE_SUB
7169
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
475 extern mp_osd_obj_t* vo_osd_list;
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
476
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
477 extern char **sub_name;
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
478
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
479 void guiLoadSubtitle( char * name )
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
480 {
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
481 if ( guiIntfStruct.Playing == 0 )
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
482 {
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
483 guiIntfStruct.SubtitleChanged=1; //what is this for? (mw)
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
484 return;
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
485 }
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
486 if ( subdata )
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
487 {
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
488 mp_msg( MSGT_GPLAYER,MSGL_INFO,MSGTR_DeletingSubtitles );
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
489 sub_free( subdata );
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
490 subdata=NULL;
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
491 vo_sub=NULL;
7169
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
492 if ( vo_osd_list )
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
493 {
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
494 int len;
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
495 mp_osd_obj_t * osd = vo_osd_list;
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
496 while ( osd )
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
497 {
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
498 if ( osd->type == OSDTYPE_SUBTITLE ) break;
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
499 osd=osd->next;
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
500 }
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
501 if ( osd && osd->flags&OSDFLAG_VISIBLE )
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
502 {
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
503 len=osd->stride * ( osd->bbox.y2 - osd->bbox.y1 );
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
504 memset( osd->bitmap_buffer,0,len );
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
505 memset( osd->alpha_buffer,0,len );
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
506 }
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
507 }
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
508 }
7169
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
509 if ( name )
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
510 {
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
511 mp_msg( MSGT_GPLAYER,MSGL_INFO,MSGTR_LoadingSubtitles,name );
15603
2d1ad16b6021 strdup subtitle filename at a more appropriate place, fixing memleaks and
reimar
parents: 14686
diff changeset
512 subdata=sub_read_file( name, guiIntfStruct.FPS );
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
513 if ( !subdata ) mp_msg( MSGT_GPLAYER,MSGL_ERR,MSGTR_CantLoadSub,name );
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
514 sub_name = (malloc(2 * sizeof(char*))); //when mplayer will be restarted
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
515 sub_name[0] = strdup(name); //sub_name[0] will be read
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
516 sub_name[1] = NULL;
7169
35bab6be713b add subtitle dropping support
pontscho
parents: 7151
diff changeset
517 }
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
518 update_set_of_subtitles();
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
519
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
520 }
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
521 #endif
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
522
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
523 static void add_vop( char * str )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
524 {
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
525 mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_AddingVideoFilter,str );
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
526 if ( vo_plugin_args )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
527 {
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
528 int i = 0;
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
529 while ( vo_plugin_args[i].name ) if ( !gstrcmp( vo_plugin_args[i++].name,str ) ) { i=-1; break; }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
530 if ( i != -1 )
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
531 { vo_plugin_args=realloc( vo_plugin_args,( i + 2 ) * sizeof( m_obj_settings_t ) ); vo_plugin_args[i].name=strdup( str );vo_plugin_args[i].attribs = NULL; vo_plugin_args[i+1].name=NULL; }
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
532 } else { vo_plugin_args=malloc( 2 * sizeof( m_obj_settings_t ) ); vo_plugin_args[0].name=strdup( str );vo_plugin_args[0].attribs = NULL; vo_plugin_args[1].name=NULL; }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
533 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
534
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
535 static void remove_vop( char * str )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
536 {
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
537 int n = 0;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
538
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
539 if ( !vo_plugin_args ) return;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
540
14156
c30e193ac112 printf --> mp_msg conversion, less verbosity
diego
parents: 14148
diff changeset
541 mp_msg( MSGT_GPLAYER,MSGL_STATUS,MSGTR_RemovingVideoFilter,str );
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
542
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
543 while ( vo_plugin_args[n++].name ); n--;
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
544 if ( n > -1 )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
545 {
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
546 int i = 0,m = -1;
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
547 while ( vo_plugin_args[i].name ) if ( !gstrcmp( vo_plugin_args[i++].name,str ) ) { m=i - 1; break; }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
548 i--;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
549 if ( m > -1 )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
550 {
9623
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
551 if ( n == 1 ) { free( vo_plugin_args[0].name );free( vo_plugin_args[0].attribs ); free( vo_plugin_args ); vo_plugin_args=NULL; }
20f0a254142d bugfix from Raindel Shachar <raindel@techunix.technion.ac.il>
pontscho
parents: 9314
diff changeset
552 else { free( vo_plugin_args[i].name );free( vo_plugin_args[i].attribs ); memcpy( &vo_plugin_args[i],&vo_plugin_args[i + 1],( n - i ) * sizeof( m_obj_settings_t ) ); }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
553 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
554 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
555 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
556
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
557 int guiGetEvent( int type,char * arg )
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
558 {
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
559 stream_t * stream = (stream_t *) arg;
5672
1f8b34f1e7c0 ifdef reading dvd args, without it non-dvd compilation fails.
eyck
parents: 5665
diff changeset
560 #ifdef USE_DVDREAD
5665
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
561 dvd_priv_t * dvdp = (dvd_priv_t *) arg;
5672
1f8b34f1e7c0 ifdef reading dvd args, without it non-dvd compilation fails.
eyck
parents: 5665
diff changeset
562 #endif
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
563
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
564 switch ( type )
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
565 {
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
566 case guiXEvent:
8973
0a665389cf2b - add playbar
pontscho
parents: 8949
diff changeset
567 guiIntfStruct.event_struct=(void *)arg;
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
568 wsEvents( wsDisplay,(XEvent *)arg,NULL );
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
569 gtkEventHandling();
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
570 break;
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
571 case guiCEvent:
4963
13262bd21965 small changes
pontscho
parents: 4858
diff changeset
572 switch ( (int)arg )
13262bd21965 small changes
pontscho
parents: 4858
diff changeset
573 {
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
574 case guiSetPlay:
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
575 guiIntfStruct.Playing=1;
11918
634a2b279b1a 'video window vanishes after pause' bugfix, based on Andr Khne's (andre.kuehne@gmx.net) bugreport
pontscho
parents: 11874
diff changeset
576 // if ( !gtkShowVideoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
577 break;
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
578 case guiSetStop:
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
579 guiIntfStruct.Playing=0;
12068
df423e2d71dc patch from Rune <runner@mail.tele.dk>
pontscho
parents: 11918
diff changeset
580 // if ( !gtkShowVideoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
9202
c2f31ca14a92 - rewrite Jan Spitalnik's patch
pontscho
parents: 9088
diff changeset
581 break;
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
582 case guiSetPause: guiIntfStruct.Playing=2; break;
4963
13262bd21965 small changes
pontscho
parents: 4858
diff changeset
583 }
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
584 mplState();
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
585 break;
5665
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
586 case guiSetState:
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
587 mplState();
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
588 break;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
589 case guiSetFileName:
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
590 if ( arg ) guiSetFilename( guiIntfStruct.Filename,arg );
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
591 break;
5789
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
592 case guiSetAudioOnly:
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
593 guiIntfStruct.AudioOnly=(int)arg;
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
594 if ( (int)arg ) { guiIntfStruct.NoWindow=True; wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow ); }
5789
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
595 else wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow );
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
596 break;
8312
ef8c992672f4 - audio track handling in menu (idea from Rdiger Kuhlmann)
pontscho
parents: 8311
diff changeset
597 case guiSetDemuxer:
ef8c992672f4 - audio track handling in menu (idea from Rdiger Kuhlmann)
pontscho
parents: 8311
diff changeset
598 guiIntfStruct.demuxer=(void *)arg;
ef8c992672f4 - audio track handling in menu (idea from Rdiger Kuhlmann)
pontscho
parents: 8311
diff changeset
599 break;
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
600 case guiSetAfilter:
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
601 guiIntfStruct.afilter=(void *)arg;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
602 break;
5789
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
603 case guiSetShVideo:
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
604 {
5986
d34622ebaf45 window resize bug fixed
pontscho
parents: 5956
diff changeset
605 if ( !appMPlayer.subWindow.isFullScreen )
d34622ebaf45 window resize bug fixed
pontscho
parents: 5956
diff changeset
606 {
d34622ebaf45 window resize bug fixed
pontscho
parents: 5956
diff changeset
607 wsResizeWindow( &appMPlayer.subWindow,vo_dwidth,vo_dheight );
d34622ebaf45 window resize bug fixed
pontscho
parents: 5956
diff changeset
608 wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y );
d34622ebaf45 window resize bug fixed
pontscho
parents: 5956
diff changeset
609 }
5955
caac20b1ca79 fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents: 5945
diff changeset
610 guiIntfStruct.MovieWidth=vo_dwidth;
5997
b5fb9a927bf3 add WM detection, and wm specific fullscreen code. (???)
pontscho
parents: 5986
diff changeset
611 guiIntfStruct.MovieHeight=vo_dheight;
9314
f38fe55d0e05 this patch adds the option -guiwid to gmplayer. I think its a more clean
arpi
parents: 9306
diff changeset
612 if (guiWinID>=0)
9306
b78cd2e33d2c Embed gui into the playback window, if winid>0
arpi
parents: 9291
diff changeset
613 wsMoveWindow( &appMPlayer.mainWindow,0,0, vo_dheight);
5789
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
614 }
0132c5747e8a fix audio only files play
pontscho
parents: 5672
diff changeset
615 break;
5665
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
616 #ifdef USE_DVDREAD
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
617 case guiSetDVD:
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
618 guiIntfStruct.DVD.titles=dvdp->vmg_file->tt_srpt->nr_of_srpts;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
619 guiIntfStruct.DVD.chapters=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_ptts;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
620 guiIntfStruct.DVD.angles=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_angles;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
621 guiIntfStruct.DVD.nr_of_audio_channels=dvdp->nr_of_channels;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
622 memcpy( guiIntfStruct.DVD.audio_streams,dvdp->audio_streams,sizeof( dvdp->audio_streams ) );
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
623 guiIntfStruct.DVD.nr_of_subtitles=dvdp->nr_of_subtitles;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
624 memcpy( guiIntfStruct.DVD.subtitles,dvdp->subtitles,sizeof( dvdp->subtitles ) );
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
625 guiIntfStruct.DVD.current_title=dvd_title + 1;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
626 guiIntfStruct.DVD.current_chapter=dvd_chapter + 1;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
627 guiIntfStruct.DVD.current_angle=dvd_angle + 1;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
628 guiIntfStruct.Track=dvd_title + 1;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
629 break;
3e7f39c4110c fix dvd playing under gui
pontscho
parents: 5120
diff changeset
630 #endif
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
631 case guiSetStream:
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
632 guiIntfStruct.StreamType=stream->type;
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
633 switch( stream->type )
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
634 {
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
635 #ifdef USE_DVDREAD
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
636 case STREAMTYPE_DVD:
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
637 guiGetEvent( guiSetDVD,(char *)stream->priv );
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
638 break;
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
639 #endif
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
640 #ifdef HAVE_VCD
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
641 case STREAMTYPE_VCD:
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
642 {
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
643 int i;
10696
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
644
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
645 if (!stream->priv)
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
646 {
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
647 guiIntfStruct.VCDTracks=0;
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
648 break;
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
649 }
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
650 for ( i=1;i < 100;i++ )
10696
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
651 if ( vcd_seek_to_track( stream->priv,i ) < 0 ) break;
73702d2f93ab 1000l. The vcd api changed and nobody updated the gui..
alex
parents: 10607
diff changeset
652 vcd_seek_to_track( stream->priv,vcd_track );
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
653 guiIntfStruct.VCDTracks=--i;
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
654 break;
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
655 }
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
656 #endif
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
657 default: break;
6280
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
658 }
cf2c2b92d1a7 add VCD support for GUI
pontscho
parents: 6218
diff changeset
659 break;
4858
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
660 case guiIEvent:
14148
00bb3326391c printf --> mp_msg
diego
parents: 12918
diff changeset
661 mp_msg( MSGT_GPLAYER,MSGL_V,"cmd: %d\n",(int)arg );
4858
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
662 switch( (int)arg )
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
663 {
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
664 case MP_CMD_QUIT:
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
665 mplEventHandling( evExit,0 );
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
666 break;
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
667 case MP_CMD_VO_FULLSCREEN:
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
668 mplEventHandling( evFullScreen,0 );
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
669 break;
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
670 default:
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
671 mplEventHandling( guiCMDArray[ (int)arg - MP_CMD_GUI_EVENTS - 1 ],0 );
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
672 }
65730cea02e7 add half new input support for gui
pontscho
parents: 4845
diff changeset
673 break;
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
674 case guiReDraw:
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
675 mplEventHandling( evRedraw,0 );
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
676 break;
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
677 case guiSetVolume:
6903
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
678 if ( audio_out )
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
679 {
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
680 float l,r;
12691
0230544f52a1 Fix GUI compilation, patch by Reimar Dffinger and Alexander Strasser.
diego
parents: 12646
diff changeset
681 mixer_getvolume( &mixer,&l,&r );
6903
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
682 guiIntfStruct.Volume=(r>l?r:l);
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
683 if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f;
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
684 else guiIntfStruct.Balance=50.0f;
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
685 btnModify( evSetVolume,guiIntfStruct.Volume );
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
686 btnModify( evSetBalance,guiIntfStruct.Balance );
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
687 }
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
688 break;
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
689 case guiSetFileFormat:
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
690 guiIntfStruct.FileFormat=(int)arg;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
691 break;
6903
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
692 case guiSetValues:
6912
5ddd609550d5 - fix equ handling
pontscho
parents: 6903
diff changeset
693 // -- video
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
694 guiIntfStruct.sh_video=arg;
6912
5ddd609550d5 - fix equ handling
pontscho
parents: 6903
diff changeset
695 if ( arg )
5ddd609550d5 - fix equ handling
pontscho
parents: 6903
diff changeset
696 {
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
697 sh_video_t * sh = (sh_video_t *)arg;
7150
b212f74e14ec - add play time subtitle change support
pontscho
parents: 7139
diff changeset
698 guiIntfStruct.FPS=sh->fps;
6912
5ddd609550d5 - fix equ handling
pontscho
parents: 6903
diff changeset
699 }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
700
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
701 if ( guiIntfStruct.NoWindow ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow );
8280
72700fefd3dc no seeking if stream is STREAMTYPE_STREAM (net/stdin)
pontscho
parents: 8150
diff changeset
702
8300
bf8e8144dfa6 10l fix in item disabling (vagymi)
pontscho
parents: 8284
diff changeset
703 if ( guiIntfStruct.StreamType == STREAMTYPE_STREAM ) btnSet( evSetMoviePosition,btnDisabled );
bf8e8144dfa6 10l fix in item disabling (vagymi)
pontscho
parents: 8284
diff changeset
704 else btnSet( evSetMoviePosition,btnReleased );
8284
f7d0ac887455 cache (buzeralas)
pontscho
parents: 8280
diff changeset
705
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
706 // -- audio
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
707 if ( audio_out )
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
708 {
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
709 float l,r;
12691
0230544f52a1 Fix GUI compilation, patch by Reimar Dffinger and Alexander Strasser.
diego
parents: 12646
diff changeset
710 mixer_getvolume( &mixer,&l,&r );
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
711 guiIntfStruct.Volume=(r>l?r:l);
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
712 if ( r != l ) guiIntfStruct.Balance=( ( r - l ) + 100 ) * 0.5f;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
713 else guiIntfStruct.Balance=50.0f;
6619
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
714 btnModify( evSetVolume,guiIntfStruct.Volume );
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
715 btnModify( evSetBalance,guiIntfStruct.Balance );
f554e7271587 fix volume handling ( step 2 ) -- add balance support and some code cleanup and fix
pontscho
parents: 6280
diff changeset
716 }
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
717
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
718 if ( gtkEnableAudioEqualizer )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
719 {
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
720 equalizer_t eq;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
721 int i,j;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
722 for ( i=0;i<6;i++ )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
723 for ( j=0;j<10;j++ )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
724 {
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
725 eq.channel=i; eq.band=j; eq.gain=gtkEquChannels[i][j];
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
726 gtkSet( gtkSetEqualizer,0,&eq );
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
727 }
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
728 }
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
729 // -- subtitle
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
730 #ifdef HAVE_DXR3
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
731 if ( video_driver_list && !gstrcmp( video_driver_list[0],"dxr3" ) && guiIntfStruct.FileFormat != DEMUXER_TYPE_MPEG_PS
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
732 #ifdef USE_LIBAVCODEC
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
733 && !gtkVopLAVC
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
734 #endif
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
735 )
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
736 {
20723
18ba5bc68f40 Remove remnants of long-gone libfame.
diego
parents: 20424
diff changeset
737 gtkMessageBox( GTK_MB_FATAL,MSGTR_NEEDLAVC );
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
738 guiIntfStruct.Playing=0;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
739 return True;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
740 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
741 #endif
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
742 break;
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
743 case guiSetDefaults:
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
744 // if ( guiIntfStruct.Playing == 1 && guiIntfStruct.FilenameChanged )
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
745 if ( guiIntfStruct.FilenameChanged )
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
746 {
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
747 audio_id=-1;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
748 video_id=-1;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
749 dvdsub_id=-1;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
750 vobsub_id=-1;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
751 stream_cache_size=-1;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
752 autosync=0;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
753 vcd_track=0;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
754 dvd_title=0;
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
755 force_fps=0;
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
756 }
18076
d30afd14867f Segfault fix, patch by Stanislav Maslovski stanislav POIS maslovski AH gmail POIS com
gpoirier
parents: 17974
diff changeset
757 guiIntfStruct.demuxer=NULL;
18533
6b92a27e247c also set guiIntfStruct.sh_video to NULL for guiSetDefaults.
reimar
parents: 18076
diff changeset
758 guiIntfStruct.sh_video=NULL;
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
759 wsPostRedisplay( &appMPlayer.subWindow );
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
760 break;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
761 case guiSetParameters:
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
762 guiGetEvent( guiSetDefaults,NULL );
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
763 switch ( guiIntfStruct.StreamType )
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
764 {
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
765 case STREAMTYPE_PLAYLIST:
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
766 break;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
767 #ifdef HAVE_VCD
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
768 case STREAMTYPE_VCD:
9812
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
769 {
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
770 char tmp[512];
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
771 sprintf( tmp,"vcd://%d",guiIntfStruct.Track + 1 );
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
772 guiSetFilename( guiIntfStruct.Filename,tmp );
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
773 }
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
774 break;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
775 #endif
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
776 #ifdef USE_DVDREAD
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
777 case STREAMTYPE_DVD:
9812
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
778 {
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
779 char tmp[512];
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
780 sprintf( tmp,"dvd://%d",guiIntfStruct.Title );
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
781 guiSetFilename( guiIntfStruct.Filename,tmp );
22092ed814ad fix dvd, vcd playing, compiling, and add one small playlist patch
pontscho
parents: 9625
diff changeset
782 }
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
783 dvd_chapter=guiIntfStruct.Chapter;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
784 dvd_angle=guiIntfStruct.Angle;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
785 break;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
786 #endif
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
787 }
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
788 //if ( guiIntfStruct.StreamType != STREAMTYPE_PLAYLIST ) // Does not make problems anymore!
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
789 {
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
790 if ( guiIntfStruct.Filename ) filename=gstrdup( guiIntfStruct.Filename );
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
791 else if ( filename ) guiSetFilename( guiIntfStruct.Filename,filename );
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
792 }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
793 // --- video opts
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
794
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
795 if ( !video_driver_list )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
796 {
6797
06d29dbdf20d upsz, sorry, i forgott this :) (skin name saving:)
pontscho
parents: 6794
diff changeset
797 int i = 0;
6903
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
798 while ( video_out_drivers[i++] )
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
799 if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE )
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
800 {
8150
851e974e6eaa updating
pontscho
parents: 8058
diff changeset
801 gaddlist( &video_driver_list,(char *)video_out_drivers[i - 1]->info->short_name );
6903
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
802 break;
c2d4100c964e - fix mixer handling
pontscho
parents: 6898
diff changeset
803 }
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
804 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
805
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
806 if ( !video_driver_list && !video_driver_list[0] ) { gtkMessageBox( GTK_MB_FATAL,MSGTR_IDFGCVD ); exit_player( "gui init" ); }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
807
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
808 {
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
809 int i = 0;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
810 guiIntfStruct.NoWindow=False;
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
811 while ( video_out_drivers[i++] )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
812 if ( video_out_drivers[i - 1]->control( VOCTRL_GUISUPPORT,NULL ) == VO_TRUE )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
813 {
8150
851e974e6eaa updating
pontscho
parents: 8058
diff changeset
814 if ( ( video_driver_list && !gstrcmp( video_driver_list[0],(char *)video_out_drivers[i - 1]->info->short_name ) )&&( video_out_drivers[i - 1]->control( VOCTRL_GUI_NOWINDOW,NULL ) == VO_TRUE ) )
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
815 { guiIntfStruct.NoWindow=True; break; }
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
816 }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
817 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
818
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
819 #ifdef HAVE_DXR3
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
820 #ifdef USE_LIBAVCODEC
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
821 remove_vop( "lavc" );
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
822 #endif
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
823 if ( video_driver_list && !gstrcmp( video_driver_list[0],"dxr3" ) )
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
824 {
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
825 if ( ( guiIntfStruct.StreamType != STREAMTYPE_DVD)&&( guiIntfStruct.StreamType != STREAMTYPE_VCD ) )
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
826 {
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
827 #ifdef USE_LIBAVCODEC
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
828 if ( gtkVopLAVC ) add_vop( "lavc" );
8043
e5dda05f9aab cleanup
pontscho
parents: 7887
diff changeset
829 #endif
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
830 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
831 }
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
832 #endif
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
833 // ---
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
834 if ( gtkVopPP ) add_vop( "pp" );
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
835 else remove_vop( "pp" );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
836
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
837 // --- audio opts
7887
0e5544951425 A small patch to Gui/interface.c; the first fix is a plain bug, the second is
arpi
parents: 7707
diff changeset
838 // if ( ao_plugin_cfg.plugin_list ) { free( ao_plugin_cfg.plugin_list ); ao_plugin_cfg.plugin_list=NULL; }
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
839 if (gtkAONorm)
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
840 greplace(&af_cfg.list, "volnorm", "volnorm");
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
841 if (gtkEnableAudioEqualizer)
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
842 greplace(&af_cfg.list, "equalizer", "equalizer");
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
843 if ( gtkAOExtraStereo )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
844 {
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
845 char *name = malloc(12 + 20 + 1);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
846 snprintf(name, 12 + 20, "extrastereo=%f", gtkAOExtraStereoMul);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
847 name[12 + 20] = 0;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
848 greplace(&af_cfg.list, "extrastereo", name);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
849 free(name);
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
850 }
8600
54eac4cf587c Lots of functions and variables specific to OSS audio are used without
arpi
parents: 8484
diff changeset
851 #ifdef USE_OSS_AUDIO
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
852 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"oss",3 ) )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
853 {
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
854 char *tmp;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
855 mixer_device = gtkAOOSSMixer;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
856 mixer_channel = gtkAOOSSMixerChannel;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
857 if (gtkAOOSSDevice) {
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
858 tmp = calloc( 1,strlen( gtkAOOSSDevice ) + 7 );
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
859 sprintf( tmp,"oss:%s",gtkAOOSSDevice );
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
860 } else
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
861 tmp = strdup("oss");
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
862 gaddlist( &audio_driver_list,tmp );
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
863 free(tmp);
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
864 }
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
865 #endif
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
866 #if defined(HAVE_ALSA9) || defined (HAVE_ALSA1X)
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
867 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"alsa",4 ) )
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
868 {
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
869 char *tmp;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
870 mixer_device = gtkAOALSAMixer;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
871 mixer_channel = gtkAOALSAMixerChannel;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
872 if (gtkAOALSADevice) {
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
873 tmp = calloc( 1,strlen( gtkAOALSADevice ) + 14 );
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
874 sprintf( tmp,"alsa:device=%s",gtkAOALSADevice );
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
875 } else
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
876 tmp = strdup("alsa");
7582
4a233f3b09a7 add [video||audio]_driver_list
pontscho
parents: 7538
diff changeset
877 gaddlist( &audio_driver_list,tmp );
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
878 free(tmp);
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
879 }
8615
935764ebfb6a missing #endif
arpi
parents: 8600
diff changeset
880 #endif
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
881 #ifdef HAVE_SDL
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
882 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"sdl",3 ) )
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
883 {
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
884 char *tmp;
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
885 if (gtkAOSDLDriver) {
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
886 tmp = calloc( 1,strlen( gtkAOSDLDriver ) + 10 );
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
887 sprintf( tmp,"sdl:%s",gtkAOSDLDriver );
12918
eb0d3c1b6c6d unified audio options dialog, fixes also bug #40
reimar
parents: 12691
diff changeset
888 } else
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
889 tmp = strdup("sdl");
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
890 gaddlist( &audio_driver_list,tmp );
14627
cd16b26cf6e0 Yet another memleak...
reimar
parents: 14405
diff changeset
891 free(tmp);
8714
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
892 }
a88f827ec563 SDL Audio configure window from Filip Kalinski <filon@pld.org.pl>
pontscho
parents: 8635
diff changeset
893 #endif
14686
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
894 #ifdef USE_ESD
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
895 if ( audio_driver_list && !gstrncmp( audio_driver_list[0],"esd",3 ) )
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
896 {
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
897 char *tmp;
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
898 if (gtkAOESDDevice) {
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
899 tmp = calloc( 1,strlen( gtkAOESDDevice ) + 10 );
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
900 sprintf( tmp,"esd:%s",gtkAOESDDevice );
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
901 } else
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
902 tmp = strdup("esd");
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
903 gaddlist( &audio_driver_list,tmp );
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
904 free(tmp);
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
905 }
e2b2ab284a9a ESD configuration dialog and software volume control option for Gui
reimar
parents: 14627
diff changeset
906 #endif
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
907 // -- subtitle
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
908 #ifdef USE_SUB
9870
09d630a4f991 support for multiple subtitle files by Marcin Wojdyr <wojdyr@unipress.waw.pl>
henry
parents: 9812
diff changeset
909 //subdata->filename=gstrdup( guiIntfStruct.Subtitlename );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
910 stream_dump_type=0;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
911 if ( gtkSubDumpMPSub ) stream_dump_type=4;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
912 if ( gtkSubDumpSrt ) stream_dump_type=6;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
913 gtkSubDumpMPSub=gtkSubDumpSrt=0;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
914 #endif
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
915 #if defined( USE_OSD ) || defined( USE_SUB )
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
916 guiLoadFont();
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
917 #endif
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
918
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
919 // --- misc
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
920 if ( gtkCacheOn ) stream_cache_size=gtkCacheSize;
8484
9ea5f18a7957 - fix (?) "mixer bug"
pontscho
parents: 8423
diff changeset
921 if ( gtkAutoSyncOn ) autosync=gtkAutoSync;
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
922
8484
9ea5f18a7957 - fix (?) "mixer bug"
pontscho
parents: 8423
diff changeset
923 if ( guiIntfStruct.AudioFile ) audio_stream=gstrdup( guiIntfStruct.AudioFile );
9ea5f18a7957 - fix (?) "mixer bug"
pontscho
parents: 8423
diff changeset
924 else if ( guiIntfStruct.FilenameChanged ) gfree( (void**)&audio_stream );
9ea5f18a7957 - fix (?) "mixer bug"
pontscho
parents: 8423
diff changeset
925 //audio_stream=NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
926
8423
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
927 guiIntfStruct.DiskChanged=0;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
928 guiIntfStruct.FilenameChanged=0;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
929 guiIntfStruct.NewPlay=0;
c6a1a5b6ba25 - fix three submenu bug
pontscho
parents: 8312
diff changeset
930
20424
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
931 #ifdef USE_ASS
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
932 ass_enabled = gtkASS.enabled;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
933 ass_use_margins = gtkASS.use_margins;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
934 ass_top_margin = gtkASS.top_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
935 ass_bottom_margin = gtkASS.bottom_margin;
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
936 #endif
945fa0eb37c0 Add ASS subtitle rendering options to gui.
eugeni
parents: 19997
diff changeset
937
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
938 break;
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
939 }
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
940 return False;
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
941 }
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
942
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
943 void guiEventHandling( void )
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
944 {
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
945 if ( !guiIntfStruct.Playing || guiIntfStruct.NoWindow ) wsHandleEvents();
4818
3473ca9ef158 new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents: 4798
diff changeset
946 gtkEventHandling();
4798
c39affa2b376 new interface ? :)
pontscho
parents:
diff changeset
947 }
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
948
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
949 // ---
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
950
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
951 float gtkEquChannels[6][10];
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
952
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
953 plItem * plCurrent = NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
954 plItem * plList = NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
955 plItem * plLastPlayed = NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
956
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
957 URLItem *URLList = NULL;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
958
9055
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
959 char *fsHistory[fsPersistant_MaxPos] = { NULL,NULL,NULL,NULL,NULL };
4a42c0604ce1 - rewrite sub_fps
pontscho
parents: 8973
diff changeset
960
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
961 #if defined( MP_DEBUG ) && 0
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
962 void list( void )
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
963 {
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
964 plItem * next = plList;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
965 printf( "--- list ---\n" );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
966 while( next || next->next )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
967 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
968 printf( "item: %s/%s\n",next->path,next->name );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
969 if ( next->next ) next=next->next; else break;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
970 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
971 printf( "--- end of list ---\n" );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
972 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
973 #else
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
974 #define list();
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
975 #endif
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
976
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
977 void * gtkSet( int cmd,float fparam, void * vparam )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
978 {
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
979 equalizer_t * eq = (equalizer_t *)vparam;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
980 plItem * item = (plItem *)vparam;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
981
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
982 URLItem * url_item = (URLItem *)vparam;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
983 int is_added = True;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
984
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
985 switch ( cmd )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
986 {
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
987 // --- handle playlist
6755
a31b9f15cbff - fix audio equalizer
pontscho
parents: 6713
diff changeset
988 case gtkAddPlItem: // add item to playlist
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
989 if ( plList )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
990 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
991 plItem * next = plList;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
992 while ( next->next ) { /*printf( "%s\n",next->name );*/ next=next->next; }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
993 next->next=item; item->prev=next;
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
994 } else { item->prev=item->next=NULL; plCurrent=plList=item; }
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
995 list();
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
996 return NULL;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
997 case gtkInsertPlItem: // add item into playlist after current
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
998 if ( plCurrent )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
999 {
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1000 plItem * curr = plCurrent;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1001 item->next=curr->next;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1002 if (item->next)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1003 item->next->prev=item;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1004 item->prev=curr;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1005 curr->next=item;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1006 plCurrent=plCurrent->next;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1007 return plCurrent;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1008 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1009 else
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1010 return gtkSet(gtkAddPlItem,0,(void*)item);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1011 return NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1012 case gtkGetNextPlItem: // get current item from playlist
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1013 if ( plCurrent && plCurrent->next)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1014 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1015 plCurrent=plCurrent->next;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1016 /*if ( !plCurrent && plList )
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1017 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1018 plItem * next = plList;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1019 while ( next->next ) { if ( !next->next ) break; next=next->next; }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1020 plCurrent=next;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1021 }*/
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1022 return plCurrent;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1023 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1024 return NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1025 case gtkGetPrevPlItem:
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1026 if ( plCurrent && plCurrent->prev)
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1027 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1028 plCurrent=plCurrent->prev;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1029 //if ( !plCurrent && plList ) plCurrent=plList;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1030 return plCurrent;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1031 }
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1032 return NULL;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1033 case gtkSetCurrPlItem: // set current item
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1034 plCurrent=item;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1035 return plCurrent;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1036 case gtkGetCurrPlItem: // get current item
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1037 return plCurrent;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1038 case gtkDelCurrPlItem: // delete current item
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1039 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1040 plItem * curr = plCurrent;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1041
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1042 if (!curr)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1043 return NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1044 if (curr->prev)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1045 curr->prev->next=curr->next;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1046 if (curr->next)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1047 curr->next->prev=curr->prev;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1048 if (curr==plList)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1049 plList=curr->next;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1050 plCurrent=curr->next;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1051 // Free it
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1052 if ( curr->path ) free( curr->path );
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1053 if ( curr->name ) free( curr->name );
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1054 free( curr );
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1055 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1056 mplCurr(); // Instead of using mplNext && mplPrev
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1057
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1058 return plCurrent;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1059 case gtkDelPl: // delete list
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1060 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1061 plItem * curr = plList;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1062 plItem * next;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1063 if ( !plList ) return NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1064 if ( !curr->next )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1065 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1066 if ( curr->path ) free( curr->path );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1067 if ( curr->name ) free( curr->name );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1068 free( curr );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1069 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1070 else
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1071 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1072 while ( curr->next )
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1073 {
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1074 next=curr->next;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1075 if ( curr->path ) free( curr->path );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1076 if ( curr->name ) free( curr->name );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1077 free( curr );
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1078 curr=next;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1079 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1080 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1081 plList=NULL; plCurrent=NULL;
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1082 }
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1083 return NULL;
7092
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1084 // ----- Handle url
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1085 case gtkAddURLItem:
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1086 if ( URLList )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1087 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1088 URLItem * next_url = URLList;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1089 is_added = False;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1090 while ( next_url->next )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1091 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1092 if ( !gstrcmp( next_url->url,url_item->url ) )
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1093 {
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1094 is_added=True;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1095 break;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1096 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1097 next_url=next_url->next;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1098 }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1099 if ( ( !is_added )&&( gstrcmp( next_url->url,url_item->url ) ) ) next_url->next=url_item;
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1100 } else { url_item->next=NULL; URLList=url_item; }
8e9607c5897e - warning fixes from Dominik Mierzejewski <dominik@rangers.eu.org>
pontscho
parents: 7019
diff changeset
1101 return NULL;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1102 // --- subtitle
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1103 #ifndef HAVE_FREETYPE
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1104 case gtkSetFontFactor:
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
1105 font_factor=fparam;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1106 guiLoadFont();
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1107 return NULL;
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1108 #else
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1109 case gtkSetFontOutLine:
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1110 subtitle_font_thickness=( 8.0f / 100.0f ) * fparam;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1111 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1112 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1113 case gtkSetFontBlur:
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1114 subtitle_font_radius=( 8.0f / 100.0f ) * fparam;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1115 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1116 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1117 case gtkSetFontTextScale:
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1118 text_font_scale_factor=fparam;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1119 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1120 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1121 case gtkSetFontOSDScale:
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1122 osd_font_scale_factor=fparam;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1123 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1124 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1125 case gtkSetFontEncoding:
9056
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1126 gfree( (void **)&subtitle_font_encoding );
7139
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1127 subtitle_font_encoding=gstrdup( (char *)vparam );
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1128 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1129 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1130 case gtkSetFontAutoScale:
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1131 subtitle_autoscale=(int)fparam;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1132 guiLoadFont();
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1133 return NULL;
dd1e21e775b6 - add freetype support for gui
pontscho
parents: 7128
diff changeset
1134 #endif
9056
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1135 #ifdef USE_ICONV
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1136 case gtkSetSubEncoding:
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1137 gfree( (void **)&sub_cp );
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1138 sub_cp=gstrdup( (char *)vparam );
3086611e8213 - add subcp
pontscho
parents: 9055
diff changeset
1139 break;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1140 #endif
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1141 // --- misc
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1142 case gtkClearStruct:
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
1143 if ( (unsigned int)vparam & guiFilenames )
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1144 {
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1145 gfree( (void **)&guiIntfStruct.Filename );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1146 gfree( (void **)&guiIntfStruct.Subtitlename );
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1147 gfree( (void **)&guiIntfStruct.AudioFile );
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
1148 gtkSet( gtkDelPl,0,NULL );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1149 }
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1150 #ifdef USE_DVDREAD
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
1151 if ( (unsigned int)vparam & guiDVD ) memset( &guiIntfStruct.DVD,0,sizeof( guiDVDStruct ) );
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1152 #endif
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1153 #ifdef HAVE_VCD
7009
98bed9e12087 - add dxr3 gui support (dialogbox, etc.)
pontscho
parents: 6996
diff changeset
1154 if ( (unsigned int)vparam & guiVCD ) guiIntfStruct.VCDTracks=0;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1155 #endif
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1156 return NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1157 case gtkSetExtraStereo:
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1158 gtkAOExtraStereoMul=fparam;
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1159 if (guiIntfStruct.afilter)
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1160 af_control_any_rev(guiIntfStruct.afilter,
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1161 AF_CONTROL_ES_MUL | AF_CONTROL_SET, &gtkAOExtraStereoMul);
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1162 return NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1163 case gtkSetPanscan:
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1164 {
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1165 mp_cmd_t * mp_cmd;
19061
86350b4b8203 drops casts from void * on malloc/calloc from the gui code
reynaldo
parents: 18743
diff changeset
1166 mp_cmd=calloc( 1,sizeof( *mp_cmd ) );
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1167 mp_cmd->id=MP_CMD_PANSCAN; mp_cmd->name=strdup( "panscan" );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1168 mp_cmd->args[0].v.f=fparam; mp_cmd->args[1].v.i=1;
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1169 mp_input_queue_cmd( mp_cmd );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1170 }
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1171 return NULL;
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1172 case gtkSetAutoq:
7019
e37a67d5e117 fix (?) cmd line handling
pontscho
parents: 7009
diff changeset
1173 auto_quality=(int)fparam;
6794
77980ab4e296 - add preferences support (first try)
pontscho
parents: 6755
diff changeset
1174 return NULL;
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1175 // --- set equalizers
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1176 case gtkSetContrast:
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1177 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"contrast",(int)fparam );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1178 return NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1179 case gtkSetBrightness:
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1180 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"brightness",(int)fparam );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1181 return NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1182 case gtkSetHue:
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1183 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"hue",(int)fparam );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1184 return NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1185 case gtkSetSaturation:
7217
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1186 if ( guiIntfStruct.sh_video ) set_video_colors( guiIntfStruct.sh_video,"saturation",(int)fparam );
7527dc997596 rewrite eq interface and add *.rm to fs
pontscho
parents: 7170
diff changeset
1187 return NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1188 case gtkSetEqualizer:
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1189 {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1190 af_control_ext_t tmp;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1191 if ( eq )
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1192 {
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1193 gtkEquChannels[eq->channel][eq->band]=eq->gain;
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1194 tmp.ch = eq->channel;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1195 tmp.arg = gtkEquChannels[eq->channel];
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1196 if (guiIntfStruct.afilter)
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1197 af_control_any_rev(guiIntfStruct.afilter,
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1198 AF_CONTROL_EQUALIZER_GAIN | AF_CONTROL_SET, &tmp);
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1199 }
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1200 else
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1201 {
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1202 int i;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1203 memset( gtkEquChannels,0,sizeof( gtkEquChannels ) );
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1204 if (guiIntfStruct.afilter)
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1205 for ( i=0;i<6;i++ )
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1206 {
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1207 tmp.ch = i;
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1208 tmp.arg = gtkEquChannels[i];
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1209 af_control_any_rev(guiIntfStruct.afilter,
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1210 AF_CONTROL_EQUALIZER_GAIN | AF_CONTROL_SET, &tmp);
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1211 }
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1212 }
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1213 return NULL;
14254
21e72b6d8d11 Do not use audio plugins anymore
reimar
parents: 14181
diff changeset
1214 }
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1215 }
6713
cc917a581b6e add simple playlist support
pontscho
parents: 6651
diff changeset
1216 return NULL;
6627
fd3ac41ee1a1 add equalizer support and fix some small bug...
pontscho
parents: 6623
diff changeset
1217 }
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1218
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1219 #define mp_basename(s) (strrchr(s,'/')==NULL?(char*)s:(strrchr(s,'/')+1))
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1220
17144
0e1471d9da74 Unify include paths, -I.. is in CFLAGS.
diego
parents: 16374
diff changeset
1221 #include "playtree.h"
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1222
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1223 //This function adds/inserts one file into the gui playlist
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1224
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1225 int import_file_into_gui(char* temp, int insert)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1226 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1227 char *filename, *pathname;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1228 plItem * item;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1229
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1230 filename = strdup(mp_basename(temp));
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1231 pathname = strdup(temp);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1232 if (strlen(pathname)-strlen(filename)>0)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1233 pathname[strlen(pathname)-strlen(filename)-1]='\0'; // We have some path so remove / at end
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1234 else
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1235 pathname[strlen(pathname)-strlen(filename)]='\0';
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1236 mp_msg(MSGT_PLAYTREE,MSGL_V, "Adding filename %s && pathname %s\n",filename,pathname); //FIXME: Change to MSGL_DBG2 ?
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1237 item=calloc( 1,sizeof( plItem ) );
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1238 if (!item)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1239 return 0;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1240 item->name=filename;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1241 item->path=pathname;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1242 if (insert)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1243 gtkSet( gtkInsertPlItem,0,(void*)item ); // Inserts the item after current, and makes current=item
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1244 else
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1245 gtkSet( gtkAddPlItem,0,(void*)item );
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1246 return 1;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1247 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1248
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1249
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1250 // This function imports the initial playtree (based on cmd-line files) into the gui playlist
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1251 // by either:
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1252 // - overwriting gui pl (enqueue=0)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1253 // - appending it to gui pl (enqueue=1)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1254
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1255 int import_initial_playtree_into_gui(play_tree_t* my_playtree, m_config_t* config, int enqueue)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1256 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1257 play_tree_iter_t* my_pt_iter=NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1258 int result=0;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1259
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1260 if (!enqueue) // Delete playlist before "appending"
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1261 gtkSet(gtkDelPl,0,0);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1262
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1263 if((my_pt_iter=pt_iter_create(&my_playtree,config)))
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1264 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1265 while ((filename=pt_iter_get_next_file(my_pt_iter))!=NULL)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1266 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1267 if (import_file_into_gui(filename, 0)) // Add it to end of list
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1268 result=1;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1269 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1270 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1271
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1272 mplCurr(); // Update filename
10193
f0bcaf5ea675 From: Michael Joosten <joost@c-lab.de>
pontscho
parents: 9870
diff changeset
1273 mplGotoTheNext=1;
9291
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1274
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1275 if (!enqueue)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1276 filename=guiIntfStruct.Filename; // Backward compatibility; if file is specified on commandline,
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1277 // gmplayer does directly start in Play-Mode.
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1278 else
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1279 filename=NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1280
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1281 return result;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1282 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1283
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1284 // This function imports and inserts an playtree, that is created "on the fly", for example by
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1285 // parsing some MOV-Reference-File; or by loading an playlist with "File Open"
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1286 //
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1287 // The file which contained the playlist is thereby replaced with it's contents.
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1288
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1289 int import_playtree_playlist_into_gui(play_tree_t* my_playtree, m_config_t* config)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1290 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1291 play_tree_iter_t* my_pt_iter=NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1292 int result=0;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1293 plItem * save=(plItem*)gtkSet( gtkGetCurrPlItem, 0, 0); // Save current item
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1294
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1295 if((my_pt_iter=pt_iter_create(&my_playtree,config)))
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1296 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1297 while ((filename=pt_iter_get_next_file(my_pt_iter))!=NULL)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1298 {
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1299 if (import_file_into_gui(filename, 1)) // insert it into the list and set plCurrent=new item
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1300 result=1;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1301 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1302 pt_iter_destroy(&my_pt_iter);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1303 }
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1304
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1305 if (save)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1306 gtkSet(gtkSetCurrPlItem, 0, (void*)save);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1307 else
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1308 gtkSet(gtkSetCurrPlItem, 0, (void*)plList); // go to head, if plList was empty before
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1309
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1310 if (save && result)
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1311 gtkSet(gtkDelCurrPlItem, 0, 0);
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1312
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1313 mplCurr(); // Update filename
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1314 filename=NULL;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1315
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1316 return result;
64b8c5a07c2c - It adds an option enqueue/noenqueue, so users can choose if they want to
arpi
parents: 9202
diff changeset
1317 }
16374
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1318
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1319 // wrapper function for mp_msg to display a message box for errors and warnings.
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1320
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1321 void guiMessageBox(int level, char * str) {
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1322 switch(level) {
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1323 case MSGL_FATAL:
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1324 gtkMessageBox(GTK_MB_FATAL|GTK_MB_SIMPLE, str);
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1325 break;
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1326 case MSGL_ERR:
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1327 gtkMessageBox(GTK_MB_ERROR|GTK_MB_SIMPLE, str);
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1328 break;
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1329 #if 0
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1330 // WARNING! Do NOT enable this! There are too many non-critical messages with
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1331 // MSGL_WARN, for example: broken SPU packets, codec's bit error messages,
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1332 // etc etc, they should not raise up a new window every time.
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1333 case MSGL_WARN:
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1334 gtkMessageBox(GTK_MB_WARNING|GTK_MB_SIMPLE, str);
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1335 break;
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1336 #endif
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1337 }
e2e231134056 Remove many annoying GTK includes in every compile line and remove GTK
ods15
parents: 15603
diff changeset
1338 }