Mercurial > mplayer.hg
annotate Gui/interface.c @ 6352:99f941806029
arts and DMA setting clarified
author | diego |
---|---|
date | Sun, 09 Jun 2002 10:22:43 +0000 |
parents | cf2c2b92d1a7 |
children | f554e7271587 |
rev | line source |
---|---|
6280 | 1 |
4845 | 2 #include <inttypes.h> |
3 #include <stdlib.h> | |
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> |
4798 | 6 |
7 #include "ws.h" | |
8 #include "mplayer/play.h" | |
9 #include "interface.h" | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
10 |
4798 | 11 #include "../mplayer.h" |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
12 #include "mplayer/widgets.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
13 #include "mplayer/mplayer.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
14 #include "app.h" |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
15 #include "../libvo/x11_common.h" |
5789 | 16 #include "../libvo/video_out.h" |
4858 | 17 #include "../input/input.h" |
5789 | 18 |
6280 | 19 #include <inttypes.h> |
20 #include <sys/types.h> | |
21 | |
5665 | 22 #include "../libmpdemux/stream.h" |
5789 | 23 #include "../libmpdemux/demuxer.h" |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
24 |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
25 guiInterface_t guiIntfStruct; |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
26 |
6218 | 27 void guiInit( void ) |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
28 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
29 memset( &guiIntfStruct,0,sizeof( guiIntfStruct ) ); |
6218 | 30 appInit( (void*)mDisplay ); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
31 } |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
32 |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
33 void guiDone( void ) |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
34 { |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
35 mp_msg( MSGT_GPLAYER,MSGL_V,"[mplayer] exit.\n" ); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
36 mplStop(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
37 gtkDone(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
38 wsXDone(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
39 } |
4798 | 40 |
4858 | 41 int guiCMDArray[] = |
42 { | |
43 evLoad, | |
44 evLoadSubtitle, | |
45 evAbout, | |
46 evPlay, | |
47 evStop, | |
48 evPlayList, | |
49 evPreferences, | |
50 evFullScreen, | |
51 evSkinBrowser | |
52 }; | |
53 | |
5789 | 54 typedef struct |
55 { | |
56 demux_stream_t *ds; | |
57 unsigned int format; | |
58 struct codecs_st *codec; | |
59 int inited; | |
60 // output format: | |
61 float timer; | |
62 float fps; | |
63 float frametime; | |
64 int i_bps; | |
65 int disp_w,disp_h; | |
66 } tmp_sh_video_t; | |
67 | |
4798 | 68 void guiGetEvent( int type,char * arg ) |
69 { | |
6280 | 70 stream_t * stream = (stream_t *) arg; |
5672
1f8b34f1e7c0
ifdef reading dvd args, without it non-dvd compilation fails.
eyck
parents:
5665
diff
changeset
|
71 #ifdef USE_DVDREAD |
5665 | 72 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
|
73 #endif |
4798 | 74 switch ( type ) |
75 { | |
76 case guiXEvent: | |
77 wsEvents( wsDisplay,(XEvent *)arg,NULL ); | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
78 gtkEventHandling(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
79 break; |
4798 | 80 case guiCEvent: |
4963 | 81 switch ( (int)arg ) |
82 { | |
83 case guiSetPlay: guiIntfStruct.Playing=1; mplState(); break; | |
84 case guiSetStop: guiIntfStruct.Playing=0; mplState(); break; | |
85 case guiSetPause: guiIntfStruct.Playing=2; mplState(); break; | |
86 } | |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
87 break; |
5665 | 88 case guiSetState: |
89 mplState(); | |
90 break; | |
91 case guiSetFileName: | |
92 if ( arg ) guiSetFilename( guiIntfStruct.Filename,arg ); | |
93 break; | |
5789 | 94 case guiSetAudioOnly: |
95 guiIntfStruct.AudioOnly=(int)arg; | |
96 if ( (int)arg ) wsVisibleWindow( &appMPlayer.subWindow,wsHideWindow ); | |
97 else wsVisibleWindow( &appMPlayer.subWindow,wsShowWindow ); | |
98 break; | |
99 case guiReDrawSubWindow: | |
100 wsPostRedisplay( &appMPlayer.subWindow ); | |
5956 | 101 if ( guiIntfStruct.Playing == 1 ) wsSetBackgroundRGB( &appMPlayer.subWindow,0,0,0 ); |
5789 | 102 break; |
103 case guiSetShVideo: | |
104 { | |
5986 | 105 if ( !appMPlayer.subWindow.isFullScreen ) |
106 { | |
107 wsResizeWindow( &appMPlayer.subWindow,vo_dwidth,vo_dheight ); | |
108 wsMoveWindow( &appMPlayer.subWindow,True,appMPlayer.sub.x,appMPlayer.sub.y ); | |
109 } | |
5955
caac20b1ca79
fix xmga fs, resize to movie size and mouse auto hide + dga
pontscho
parents:
5945
diff
changeset
|
110 guiIntfStruct.MovieWidth=vo_dwidth; |
5997
b5fb9a927bf3
add WM detection, and wm specific fullscreen code. (???)
pontscho
parents:
5986
diff
changeset
|
111 guiIntfStruct.MovieHeight=vo_dheight; |
5789 | 112 } |
113 break; | |
5665 | 114 #ifdef USE_DVDREAD |
115 case guiSetDVD: | |
116 guiIntfStruct.DVD.titles=dvdp->vmg_file->tt_srpt->nr_of_srpts; | |
117 guiIntfStruct.DVD.chapters=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_ptts; | |
118 guiIntfStruct.DVD.angles=dvdp->vmg_file->tt_srpt->title[dvd_title].nr_of_angles; | |
119 guiIntfStruct.DVD.nr_of_audio_channels=dvdp->nr_of_channels; | |
120 memcpy( guiIntfStruct.DVD.audio_streams,dvdp->audio_streams,sizeof( dvdp->audio_streams ) ); | |
121 guiIntfStruct.DVD.nr_of_subtitles=dvdp->nr_of_subtitles; | |
122 memcpy( guiIntfStruct.DVD.subtitles,dvdp->subtitles,sizeof( dvdp->subtitles ) ); | |
123 guiIntfStruct.DVD.current_title=dvd_title + 1; | |
124 guiIntfStruct.DVD.current_chapter=dvd_chapter + 1; | |
125 guiIntfStruct.DVD.current_angle=dvd_angle + 1; | |
126 guiIntfStruct.Track=dvd_title + 1; | |
127 break; | |
128 #endif | |
6280 | 129 case guiSetStream: |
130 guiIntfStruct.StreamType=stream->type; | |
131 switch( stream->type ) | |
132 { | |
133 case STREAMTYPE_DVD: | |
134 guiGetEvent( guiSetDVD,(char *)stream->priv ); | |
135 break; | |
136 #ifdef HAVE_VCD | |
137 case STREAMTYPE_VCD: | |
138 { | |
139 int i; | |
140 for ( i=1;i < 100;i++ ) | |
141 if ( vcd_seek_to_track( stream->fd,i ) < 0 ) break; | |
142 vcd_seek_to_track( stream->fd,vcd_track ); | |
143 guiIntfStruct.VCDTracks=--i; | |
144 mp_msg( MSGT_GPLAYER,MSGL_INFO,"[interface] vcd tracks: %d\n",guiIntfStruct.VCDTracks ); | |
145 guiIntfStruct.Track=vcd_track; | |
146 break; | |
147 } | |
148 #endif | |
149 } | |
150 break; | |
5120 | 151 #ifdef HAVE_NEW_INPUT |
4858 | 152 case guiIEvent: |
153 printf( "cmd: %d\n",(int)arg ); | |
154 switch( (int)arg ) | |
155 { | |
156 case MP_CMD_QUIT: | |
157 mplEventHandling( evExit,0 ); | |
158 break; | |
159 case MP_CMD_VO_FULLSCREEN: | |
160 mplEventHandling( evFullScreen,0 ); | |
161 break; | |
162 default: | |
163 mplEventHandling( guiCMDArray[ (int)arg - MP_CMD_GUI_EVENTS - 1 ],0 ); | |
164 } | |
165 break; | |
5120 | 166 #endif |
6280 | 167 case guiClearStruct: |
168 #ifdef USE_DVDREAD | |
169 if ( (unsigned int)arg & guiDVD ) memset( &guiIntfStruct.DVD,0,sizeof( guiDVDStruct ) ); | |
170 #endif | |
171 #ifdef HAVE_VCD | |
172 if ( (unsigned int)arg & guiVCD ) guiIntfStruct.VCDTracks=0; | |
173 #endif | |
174 break; | |
4798 | 175 } |
176 } | |
177 | |
178 void guiEventHandling( void ) | |
179 { | |
5789 | 180 if ( ( use_gui && !guiIntfStruct.Playing )||( guiIntfStruct.AudioOnly ) ) wsHandleEvents(); |
4818
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
181 gtkEventHandling(); |
3473ca9ef158
new gui interface, and gtk moved into mplayer process. fork ... bleh :)
pontscho
parents:
4798
diff
changeset
|
182 mplTimerHandler(); // handle GUI timer events |
4798 | 183 } |