annotate libvo/vo_winvidix.c @ 25317:7f3cb5408f28

Fixed VIDIX color bug that was introduced when Radeon VIDIX driver was synchronized with vidix.sf.net. The red color was saturating. Corrected value fixes the issue and restore the color to the level it used to have before synchronization. Meaning of the value remains unknow but was retrieved from register's value of a Radeon 9000 card, so it may need further testing. Patch by Guillaume Lecerf (foxcore at gmail dot com)
author ben
date Mon, 10 Dec 2007 19:27:46 +0000
parents 3aee342be929
children 46f0b4d34fa1
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
1 /*
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
2 VIDIX accelerated overlay in a WIN32 window
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
3
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
4 (C) Sascha Sommer
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
5
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
6
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
7 */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
8
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
9 #include <stdio.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
10 #include <stdlib.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
11 #include <string.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
12 #include <math.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
13 #include <errno.h>
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
14
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
15 #include "config.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
16 #include "video_out.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
17 #include "video_out_internal.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
18
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
19 #include <windows.h>
13787
e047e70a9767 Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents: 12861
diff changeset
20 #include "osdep/keycodes.h"
e047e70a9767 Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents: 12861
diff changeset
21 #include "input/input.h"
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
22
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
23 #include "aspect.h"
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
24 #include "mp_msg.h"
22823
98eaf29b5dee Code cleanup: don't include a .c file in mplayer.c and fix a few
rathann
parents: 16892
diff changeset
25 #include "mp_fifo.h"
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
26
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
27 #include "vosub_vidix.h"
13787
e047e70a9767 Handle "xxx.h" vs "../xxx.h" include paths in a consistent way.
diego
parents: 12861
diff changeset
28 #include "vidix/vidixlib.h"
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
29
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
30
25216
3aee342be929 Make vo info structs const
reimar
parents: 22823
diff changeset
31 static const vo_info_t info =
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
32 {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
33 "WIN32 (VIDIX)",
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
34 "winvidix",
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
35 "Sascha Sommer",
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
36 ""
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
37 };
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
38
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
39 LIBVO_EXTERN(winvidix)
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
40
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
41 #define UNUSED(x) ((void)(x)) /* Removes warning about unused arguments */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
42
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
43 /* VIDIX related */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
44 static char *vidix_name;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
45
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
46 /* Image parameters */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
47 static uint32_t image_width;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
48 static uint32_t image_height;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
49 static uint32_t image_format;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
50 static HWND hWnd;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
51 /* Window parameters */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
52 static HWND hWnd=NULL,hWndFS=NULL;
15822
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
53 static float window_aspect;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
54
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
55 static vidix_grkey_t gr_key;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
56
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
57
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
58 extern void set_video_eq( int cap );
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
59
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
60
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
61 static LRESULT CALLBACK WndProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
62 {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
63 switch (message){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
64 case WM_DESTROY:
15822
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
65 PostQuitMessage(0);
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
66 return 0;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
67 case WM_CLOSE:
16892
3470c810527b libvo input cleanup: remove the dependency on libinput,
albeu
parents: 16280
diff changeset
68 mplayer_put_key(KEY_CLOSE_WIN);
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
69 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
70 case WM_WINDOWPOSCHANGED:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
71 {
15822
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
72 int tmpheight=0;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
73 /*calculate new window rect*/
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
74 if(!vo_fs){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
75 RECT rd;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
76 POINT point_window;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
77 if(!hWnd)hWnd=hwnd;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
78 ShowCursor(TRUE);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
79 point_window.x = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
80 point_window.y = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
81 ClientToScreen(hWnd,&point_window);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
82 GetClientRect(hWnd,&rd);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
83
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
84 vo_dwidth=rd.right - rd.left;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
85 vo_dheight=rd.bottom - rd.top;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
86 vo_dx =point_window.x;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
87 vo_dy =point_window.y;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
88 // aspect(&vo_dwidth, &vo_dheight, A_NOZOOM);
15822
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
89
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
90 /* keep aspect on resize, borrowed from vo_directx.c */
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
91 tmpheight = ((float)vo_dwidth/window_aspect);
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
92 tmpheight += tmpheight % 2;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
93 if(tmpheight > vo_dheight)
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
94 {
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
95 vo_dwidth = ((float)vo_dheight*window_aspect);
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
96 vo_dwidth += vo_dwidth % 2;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
97 }
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
98 else vo_dheight = tmpheight;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
99 rd.right = rd.left + vo_dwidth;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
100 rd.bottom = rd.top + vo_dheight;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
101
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
102 if(rd.left < 0) rd.left = 0;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
103 if(rd.right > vo_screenwidth) rd.right = vo_screenwidth;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
104 if(rd.top < 0) rd.top = 0;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
105 if(rd.bottom > vo_screenheight) rd.bottom = vo_screenheight;
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
106
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
107 AdjustWindowRect(&rd, WS_OVERLAPPEDWINDOW | WS_SIZEBOX, 0);
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
108 SetWindowPos(hWnd, HWND_TOPMOST, vo_dx+rd.left, vo_dy+rd.top, rd.right-rd.left, rd.bottom-rd.top, SWP_NOOWNERZORDER);
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
109 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
110 else {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
111 if(ShowCursor(FALSE)>=0)while(ShowCursor(FALSE)>=0){}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
112 aspect(&vo_dwidth, &vo_dheight, A_ZOOM);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
113 vo_dx = (vo_screenwidth - vo_dwidth)/2;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
114 vo_dy = (vo_screenheight - vo_dheight)/2;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
115 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
116 /*update vidix*/
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
117 /* FIXME: implement runtime resize/move if possible, this way is very ugly! */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
118 vidix_stop();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
119 if(vidix_init(image_width, image_height, vo_dx, vo_dy, vo_dwidth, vo_dheight, image_format, vo_depthonscreen, vo_screenwidth, vo_screenheight) != 0)
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
120 mp_msg(MSGT_VO, MSGL_FATAL, "Can't initialize VIDIX driver: %s\n", strerror(errno));
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
121 /*set colorkey*/
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
122 vidix_start();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
123 mp_msg(MSGT_VO, MSGL_V, "[winvidix] window properties: pos: %dx%d, size: %dx%d\n",vo_dx, vo_dy, vo_dwidth, vo_dheight);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
124 if(vidix_grkey_support()){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
125 vidix_grkey_get(&gr_key);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
126 gr_key.key_op = KEYS_PUT;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
127 gr_key.ckey.op = CKEY_TRUE;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
128 if(vo_fs)gr_key.ckey.red = gr_key.ckey.green = gr_key.ckey.blue = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
129 else {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
130 gr_key.ckey.red = gr_key.ckey.blue = 255;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
131 gr_key.ckey.green = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
132 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
133 vidix_grkey_set(&gr_key);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
134 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
135
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
136 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
137 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
138 case WM_SYSCOMMAND:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
139 switch (wParam){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
140 case SC_SCREENSAVE:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
141 case SC_MONITORPOWER:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
142 return 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
143 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
144 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
145 case WM_KEYDOWN:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
146 switch (wParam){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
147 case VK_LEFT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
148 {mplayer_put_key(KEY_LEFT);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
149 case VK_UP:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
150 {mplayer_put_key(KEY_UP);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
151 case VK_RIGHT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
152 {mplayer_put_key(KEY_RIGHT);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
153 case VK_DOWN:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
154 {mplayer_put_key(KEY_DOWN);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
155 case VK_TAB:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
156 {mplayer_put_key(KEY_TAB);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
157 case VK_CONTROL:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
158 {mplayer_put_key(KEY_CTRL);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
159 case VK_DELETE:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
160 {mplayer_put_key(KEY_DELETE);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
161 case VK_INSERT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
162 {mplayer_put_key(KEY_INSERT);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
163 case VK_HOME:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
164 {mplayer_put_key(KEY_HOME);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
165 case VK_END:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
166 {mplayer_put_key(KEY_END);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
167 case VK_PRIOR:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
168 {mplayer_put_key(KEY_PAGE_UP);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
169 case VK_NEXT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
170 {mplayer_put_key(KEY_PAGE_DOWN);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
171 case VK_ESCAPE:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
172 {mplayer_put_key(KEY_ESC);break;}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
173 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
174 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
175 case WM_CHAR:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
176 mplayer_put_key(wParam);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
177 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
178 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
179 return DefWindowProc(hwnd, message, wParam, lParam);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
180 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
181
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
182
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
183 static int config(uint32_t width, uint32_t height, uint32_t d_width,uint32_t d_height, uint32_t flags, char *title, uint32_t format){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
184 title = "MPlayer VIDIX WIN32 Overlay";
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
185
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
186 panscan_init();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
187
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
188 image_height = height;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
189 image_width = width;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
190 image_format = format;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
191 vo_screenwidth = GetSystemMetrics(SM_CXSCREEN);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
192 vo_screenheight = GetSystemMetrics(SM_CYSCREEN);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
193 vo_depthonscreen = GetDeviceCaps(GetDC(GetDesktopWindow()),BITSPIXEL);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
194
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
195
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
196 aspect_save_orig(width, height);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
197 aspect_save_prescale(d_width, d_height);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
198 aspect_save_screenres(vo_screenwidth, vo_screenheight);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
199
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
200 vo_dx = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
201 vo_dy = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
202
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
203 vo_dx=( vo_screenwidth - d_width ) / 2; vo_dy=( vo_screenheight - d_height ) / 2;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
204 geometry(&vo_dx, &vo_dy, &d_width, &d_height, vo_screenwidth, vo_screenheight);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
205
15212
05aa13cdf92f replace VO and VF numeric flags with #defined identifiers
henry
parents: 13787
diff changeset
206 vo_fs = flags&VOFLAG_FULLSCREEN;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
207
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
208
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
209 aspect(&d_width, &d_height, A_NOZOOM);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
210 vo_dwidth=d_width; vo_dheight=d_height;
15822
0651bf280391 keep aspect when resizing, quit MPlayer when closing the window patch by Erik Lunchpail <erik_27can at yahoo.com>
faust3
parents: 15621
diff changeset
211 window_aspect = (float)d_width / (float)d_height;
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
212
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
213
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
214 if(!vo_config_count){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
215 HINSTANCE hInstance = GetModuleHandle(NULL);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
216 WNDCLASS wc;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
217 RECT rd;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
218 rd.left = vo_dx;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
219 rd.top = vo_dy;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
220 rd.right = rd.left + vo_dwidth;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
221 rd.bottom = rd.top + vo_dheight;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
222 AdjustWindowRect(&rd,WS_OVERLAPPEDWINDOW| WS_SIZEBOX,0);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
223 wc.style = CS_HREDRAW | CS_VREDRAW;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
224 wc.lpfnWndProc = WndProc;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
225 wc.cbClsExtra = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
226 wc.cbWndExtra = 0;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
227 wc.hInstance = hInstance;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
228 wc.hCursor = LoadCursor(NULL,IDC_ARROW);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
229 wc.hIcon =ExtractIcon(hInstance,"mplayer.exe",0);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
230 //LoadIcon(NULL,IDI_APPLICATION);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
231 wc.hbrBackground = CreateSolidBrush(RGB(255,0,255));
12858
cbcc205a740e embarassing typo and new name
diego
parents: 11462
diff changeset
232 wc.lpszClassName = "MPlayer - The Movie Player";
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
233 wc.lpszMenuName = NULL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
234 RegisterClass(&wc);
12861
88aba9a06162 name change
diego
parents: 12858
diff changeset
235 hWnd = CreateWindow("MPlayer - The Movie Player",
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
236 title,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
237 WS_OVERLAPPEDWINDOW| WS_SIZEBOX,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
238 rd.left,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
239 rd.top,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
240 rd.right - rd.left,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
241 rd.bottom - rd.top,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
242 NULL,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
243 NULL,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
244 hInstance,
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
245 NULL);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
246 wc.hbrBackground = CreateSolidBrush(RGB(0,0,0));
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
247 wc.lpszClassName = "MPlayer - Fullscreen";
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
248 RegisterClass(&wc);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
249 hWndFS = CreateWindow("MPlayer - Fullscreen","MPlayer VIDIX Fullscreen",WS_POPUP,0,0,vo_screenwidth,vo_screenheight,hWnd,NULL,hInstance,NULL);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
250
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
251
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
252
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
253
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
254
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
255 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
256 ShowWindow(hWnd,SW_SHOW);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
257 if(vo_fs)ShowWindow(hWndFS,SW_SHOW);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
258
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
259 return(0);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
260 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
261
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
262 static void check_events(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
263 MSG msg;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
264 while (PeekMessage(&msg, NULL, 0, 0,PM_REMOVE))
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
265 {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
266 TranslateMessage(&msg);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
267 DispatchMessage(&msg);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
268 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
269 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
270
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
271 /* draw_osd, flip_page, draw_slice, draw_frame should be
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
272 overwritten with vidix functions (vosub_vidix.c) */
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
273 static void draw_osd(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
274 mp_msg(MSGT_VO, MSGL_FATAL, "[winvidix] error: didn't use vidix draw_osd!\n");
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
275 return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
276 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
277
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
278 static void flip_page(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
279 mp_msg(MSGT_VO, MSGL_FATAL, "[winvidix] error: didn't use vidix flip_page!\n");
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
280 return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
281 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
282
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
283 static int draw_slice(uint8_t *src[], int stride[],int w, int h, int x, int y){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
284 UNUSED(src);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
285 UNUSED(stride);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
286 UNUSED(w);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
287 UNUSED(h);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
288 UNUSED(x);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
289 UNUSED(y);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
290 mp_msg(MSGT_VO, MSGL_FATAL, "[winvidix] error: didn't use vidix draw_slice!\n");
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
291 return(-1);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
292 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
293
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
294 static int draw_frame(uint8_t *src[]){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
295 UNUSED(src);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
296 mp_msg(MSGT_VO, MSGL_FATAL, "[winvidix] error: didn't use vidix draw_frame!\n");
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
297 return(-1);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
298 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
299
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
300 static int query_format(uint32_t format){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
301 return(vidix_query_fourcc(format));
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
302 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
303
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
304 static void uninit(void){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
305 DestroyWindow(hWndFS);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
306 DestroyWindow(hWnd);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
307 if ( !vo_config_count ) return;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
308 vidix_term();
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
309
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
310 if (vidix_name){
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
311 free(vidix_name);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
312 vidix_name = NULL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
313 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
314 //
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
315 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
316
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
317 static int preinit(const char *arg){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
318 if (arg)
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
319 vidix_name = strdup(arg);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
320 else
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
321 {
11462
2e367138d4b5 message expanded with hint to use -v option
gabucino
parents: 10979
diff changeset
322 mp_msg(MSGT_VO, MSGL_INFO, "No vidix driver name provided, probing available ones (-v option for details)!\n");
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
323 vidix_name = NULL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
324 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
325
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
326 if (vidix_preinit(vidix_name, &video_out_winvidix) != 0)
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
327 return(1);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
328
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
329 return(0);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
330 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
331
16171
fd51fd1ff231 Fix the return types of all (six) libvo API functions. Used to be uint32_t, but
ivo
parents: 15822
diff changeset
332 static int control(uint32_t request, void *data, ...){
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
333 switch (request) {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
334 case VOCTRL_FULLSCREEN:
15621
54e8a5b5d9c4 regain window focus in fullscreen, patch by Erik Lunchpail <enik_27can at yahoo.com>
faust3
parents: 15212
diff changeset
335 if(!vo_fs){vo_fs=1;ShowWindow(hWndFS,SW_SHOW);SetForegroundWindow(hWndFS);}
10979
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
336 else {vo_fs=0; ShowWindow(hWndFS,SW_HIDE);}
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
337 break;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
338 case VOCTRL_QUERY_FORMAT:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
339 return query_format(*((uint32_t*)data));
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
340 case VOCTRL_SET_EQUALIZER:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
341 {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
342 va_list ap;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
343 int value;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
344
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
345 va_start(ap, data);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
346 value = va_arg(ap, int);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
347 va_end(ap);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
348
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
349 return vidix_control(request, data, (int *)value);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
350 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
351 case VOCTRL_GET_EQUALIZER:
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
352 {
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
353 va_list ap;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
354 int *value;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
355
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
356 va_start(ap, data);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
357 value = va_arg(ap, int*);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
358 va_end(ap);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
359
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
360 return vidix_control(request, data, value);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
361 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
362 }
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
363 return vidix_control(request, data);
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
364 // return VO_NOTIMPL;
ea4426db0db5 new vidix vo modules for textmode console and windows
faust3
parents:
diff changeset
365 }