Mercurial > mplayer.hg
annotate libvo/osx_common.c @ 29660:1331380992e2
Fix teletext font autoscaling.
Patch by Francesco Lavra, francescolavra interfree it
author | cehoyos |
---|---|
date | Tue, 22 Sep 2009 22:06:51 +0000 |
parents | 5a46b1a05a32 |
children | 4a6ec8b958c4 |
rev | line source |
---|---|
29607
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
1 /* |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
2 * This file is part of MPlayer. |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
3 * |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
4 * MPlayer is free software; you can redistribute it and/or modify |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
5 * it under the terms of the GNU General Public License as published by |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
6 * the Free Software Foundation; either version 2 of the License, or |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
7 * (at your option) any later version. |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
8 * |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
9 * MPlayer is distributed in the hope that it will be useful, |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
12 * GNU General Public License for more details. |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
13 * |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
14 * You should have received a copy of the GNU General Public License along |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
15 * with MPlayer; if not, write to the Free Software Foundation, Inc., |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
16 * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
17 */ |
29531
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
18 #include "config.h" |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
19 |
29607
5a46b1a05a32
Add standard license header and move a misplaced comment.
reimar
parents:
29536
diff
changeset
|
20 // only to get keycode definitions from HIToolbox/Events.h |
29531
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
21 #include <Carbon/Carbon.h> |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
22 #include "osx_common.h" |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
23 #include "video_out.h" |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
24 #include "osdep/keycodes.h" |
29535
b2f841a1905e
Fix implicit declaration of mp_input_.. functions.
reimar
parents:
29534
diff
changeset
|
25 #include "input/input.h" |
29531
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
26 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
27 static const struct keymap keymap[] = { |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
28 // special keys |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
29 {0x34, KEY_ENTER}, // Enter key on some iBooks? |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
30 {kVK_Return, KEY_ENTER}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
31 {kVK_Escape, KEY_ESC}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
32 {kVK_Delete, KEY_BACKSPACE}, {kVK_Option, KEY_BACKSPACE}, {kVK_Control, KEY_BACKSPACE}, {kVK_Shift, KEY_BACKSPACE}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
33 {kVK_Tab, KEY_TAB}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
34 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
35 // cursor keys |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
36 {kVK_UpArrow, KEY_UP}, {kVK_DownArrow, KEY_DOWN}, {kVK_LeftArrow, KEY_LEFT}, {kVK_RightArrow, KEY_RIGHT}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
37 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
38 // navigation block |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
39 {kVK_Help, KEY_INSERT}, {kVK_ForwardDelete, KEY_DELETE}, {kVK_Home, KEY_HOME}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
40 {kVK_End, KEY_END}, {kVK_PageUp, KEY_PAGE_UP}, {kVK_PageUp, KEY_PAGE_DOWN}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
41 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
42 // F-keys |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
43 {kVK_F1, KEY_F + 1}, {kVK_F2, KEY_F + 2}, {kVK_F3, KEY_F + 3}, {kVK_F4, KEY_F + 4}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
44 {kVK_F5, KEY_F + 5}, {kVK_F6, KEY_F + 6}, {kVK_F7, KEY_F + 7}, {kVK_F8, KEY_F + 8}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
45 {kVK_F9, KEY_F + 9}, {kVK_F10, KEY_F + 10}, {kVK_F11, KEY_F + 11}, {kVK_F12, KEY_F + 12}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
46 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
47 // numpad |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
48 {kVK_ANSI_KeypadPlus, '+'}, {kVK_ANSI_KeypadMinus, '-'}, {kVK_ANSI_KeypadMultiply, '*'}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
49 {kVK_ANSI_KeypadDivide, '/'}, {kVK_ANSI_KeypadEnter, KEY_KPENTER}, {kVK_ANSI_KeypadDecimal, KEY_KPDEC}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
50 {kVK_ANSI_Keypad0, KEY_KP0}, {kVK_ANSI_Keypad1, KEY_KP1}, {kVK_ANSI_Keypad2, KEY_KP2}, {kVK_ANSI_Keypad3, KEY_KP3}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
51 {kVK_ANSI_Keypad4, KEY_KP4}, {kVK_ANSI_Keypad5, KEY_KP5}, {kVK_ANSI_Keypad6, KEY_KP6}, {kVK_ANSI_Keypad7, KEY_KP7}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
52 {kVK_ANSI_Keypad8, KEY_KP8}, {kVK_ANSI_Keypad9, KEY_KP9}, |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
53 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
54 {0, 0} |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
55 }; |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
56 |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
57 int convert_key(unsigned key, unsigned charcode) |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
58 { |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
59 int mpkey = lookup_keymap_table(keymap, key); |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
60 if (mpkey) |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
61 return mpkey; |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
62 return charcode; |
6bd4c0c77eab
Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff
changeset
|
63 } |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
64 |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
65 static int our_aspect_change; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
66 static float old_movie_aspect; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
67 |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
68 /** |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
69 * Sends MPlayer a command to change aspect to the requested value. |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
70 * @param new_aspect desired new aspect, < 0 means restore original. |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
71 */ |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
72 void change_movie_aspect(float new_aspect) |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
73 { |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
74 char cmd_str[64]; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
75 if (new_aspect < 0) |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
76 new_aspect = old_movie_aspect; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
77 our_aspect_change = 1; |
29536
1e432b300e57
Make aspect switching work again (used the wrong variable and always
reimar
parents:
29535
diff
changeset
|
78 snprintf(cmd_str, sizeof(cmd_str), "switch_ratio %f", new_aspect); |
29532
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
79 mp_input_queue_cmd(mp_input_parse_cmd(cmd_str)); |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
80 } |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
81 |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
82 /** |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
83 * Call in config to save the original movie aspect. |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
84 * This will ignore config calls caused by change_movie_aspect. |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
85 */ |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
86 void config_movie_aspect(float config_aspect) |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
87 { |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
88 if (!our_aspect_change) |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
89 old_movie_aspect = config_aspect; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
90 our_aspect_change = 0; |
99b8d8d5c2d4
Move aspect change handling from vo_quartz to osx_common.
reimar
parents:
29531
diff
changeset
|
91 } |