annotate libvo/osx_common.c @ 33960:1cd81338af07

Rework fullscreen handling. This should fix all problems the GUI had with fullscreen handling. In interface.c: 1. Remove disabled code. 2. Set background of inactive video window to black (which prevents some flashing when starting the playback in fullscreen mode). 3. Set the state of the fullscreen button according to next playback mode (normal or fullscreen). 4. Make the video window invisible if there is no video, but don't make it visible that early if there is video. 5. Set the global fullscreen variable to get aspect scaling. (Hack) 6. In GUI_SETUP_VIDEO_WINDOW: a. First set the video size, b. then resize and reposition, c. then make the window visible, d. switch to/from fullscreen, if necessary. (This minimizes disturbances and the display stays in fullscreen mode and is smoothly black as often as possible.) 7. When playback ends, either act as in 6. or make video window quickly invisible if requested. In actions.c: 8. Allow calling uiFullScreen() even if not playing. 9. Remove unnecessary (and misplaced) repositioning (but not properly resizing) code from uiFullScreen(). 10. Don't call wsFullScreen() conditionally. 11. Only set global variable vo_fs, not the global fullscreen variable.
author ib
date Thu, 01 Sep 2011 20:15:40 +0000
parents fca6cfc4d5ca
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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>
30922
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
22 #include "config.h"
29531
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
23 #include "osx_common.h"
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
24 #include "video_out.h"
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
25 #include "osdep/keycodes.h"
29535
b2f841a1905e Fix implicit declaration of mp_input_.. functions.
reimar
parents: 29534
diff changeset
26 #include "input/input.h"
29531
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
27
29712
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
28 /*
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
29 * Define keycodes only found in OSX >= 10.5 for older versions
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
30 */
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
31 #if MAC_OS_X_VERSION_MAX_ALLOWED <= 1040
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
32 #define kVK_ANSI_Keypad0 0x52
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
33 #define kVK_ANSI_Keypad1 0x53
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
34 #define kVK_ANSI_Keypad2 0x54
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
35 #define kVK_ANSI_Keypad3 0x55
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
36 #define kVK_ANSI_Keypad4 0x56
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
37 #define kVK_ANSI_Keypad5 0x57
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
38 #define kVK_ANSI_Keypad6 0x58
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
39 #define kVK_ANSI_Keypad7 0x59
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
40 #define kVK_ANSI_Keypad8 0x5b
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
41 #define kVK_ANSI_Keypad9 0x5c
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
42 #define kVK_ANSI_KeypadDecimal 0x41
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
43 #define kVK_ANSI_KeypadDivide 0x4b
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
44 #define kVK_ANSI_KeypadEnter 0x4c
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
45 #define kVK_ANSI_KeypadMinus 0x4e
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
46 #define kVK_ANSI_KeypadMultiply 0x43
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
47 #define kVK_ANSI_KeypadPlus 0x45
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
48 #define kVK_Control 0x3b
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
49 #define kVK_Delete 0x33
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
50 #define kVK_DownArrow 0x7d
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
51 #define kVK_End 0x77
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
52 #define kVK_Escape 0x35
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
53 #define kVK_F1 0x7a
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
54 #define kVK_F10 0x6d
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
55 #define kVK_F11 0x67
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
56 #define kVK_F12 0x6f
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
57 #define kVK_F2 0x78
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
58 #define kVK_F3 0x63
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
59 #define kVK_F4 0x76
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
60 #define kVK_F5 0x60
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
61 #define kVK_F6 0x61
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
62 #define kVK_F7 0x62
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
63 #define kVK_F8 0x64
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
64 #define kVK_F9 0x65
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
65 #define kVK_ForwardDelete 0x75
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
66 #define kVK_Help 0x72
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
67 #define kVK_Home 0x73
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
68 #define kVK_LeftArrow 0x7b
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
69 #define kVK_Option 0x3a
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
70 #define kVK_PageDown 0x79
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
71 #define kVK_PageUp 0x74
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
72 #define kVK_Return 0x24
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
73 #define kVK_RightArrow 0x7c
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
74 #define kVK_Shift 0x38
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
75 #define kVK_Tab 0x30
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
76 #define kVK_UpArrow 0x7e
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
77 #endif /* MAC_OS_X_VERSION_MAX_ALLOWED <= 1040 */
dd8e0a69dfc4 Add keycode definitions for older versions of OSX. Fixes compilation on 10.4.
adrian
parents: 29707
diff changeset
78
31017
fca6cfc4d5ca rename 'struct keymap' -> 'struct mp_keymap'
siretart
parents: 30922
diff changeset
79 static const struct mp_keymap keymap[] = {
29531
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
80 // special keys
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
81 {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
82 {kVK_Return, KEY_ENTER},
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
83 {kVK_Escape, KEY_ESC},
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
84 {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
85 {kVK_Tab, KEY_TAB},
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
86
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
87 // cursor keys
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
88 {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
89
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
90 // navigation block
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
91 {kVK_Help, KEY_INSERT}, {kVK_ForwardDelete, KEY_DELETE}, {kVK_Home, KEY_HOME},
29707
4a6ec8b958c4 Fix definition of KEY_PAGE_DOWN.
cehoyos
parents: 29607
diff changeset
92 {kVK_End, KEY_END}, {kVK_PageUp, KEY_PAGE_UP}, {kVK_PageDown, KEY_PAGE_DOWN},
29531
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
93
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
94 // F-keys
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
95 {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
96 {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
97 {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
98
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
99 // numpad
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
100 {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
101 {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
102 {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
103 {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
104 {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
105
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
106 {0, 0}
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
107 };
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
108
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
109 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
110 {
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
111 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
112 if (mpkey)
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
113 return mpkey;
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
114 return charcode;
6bd4c0c77eab Add osx_common.c and move the keycode conversion (OSX to MPlayer) there.
reimar
parents:
diff changeset
115 }
29532
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
116
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
117 static int our_aspect_change;
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
118 static float old_movie_aspect;
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
119
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
120 /**
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
121 * 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
122 * @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
123 */
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
124 void change_movie_aspect(float new_aspect)
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
125 {
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
126 char cmd_str[64];
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
127 if (new_aspect < 0)
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
128 new_aspect = old_movie_aspect;
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
129 our_aspect_change = 1;
29536
1e432b300e57 Make aspect switching work again (used the wrong variable and always
reimar
parents: 29535
diff changeset
130 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
131 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
132 }
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
133
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
134 /**
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
135 * 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
136 * 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
137 */
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
138 void config_movie_aspect(float config_aspect)
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
139 {
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
140 if (!our_aspect_change)
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
141 old_movie_aspect = config_aspect;
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
142 our_aspect_change = 0;
99b8d8d5c2d4 Move aspect change handling from vo_quartz to osx_common.
reimar
parents: 29531
diff changeset
143 }
30922
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
144
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
145 /** This chunk of code is heavily based off SDL_macosx.m from SDL.
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
146 * The CPSEnableForegroundOperation that was here before is private
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
147 * and should not be used.
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
148 * Replaced by a call to the 10.3+ TransformProcessType.
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
149 */
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
150 void osx_foreground_hack(void)
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
151 {
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
152 #if !defined (CONFIG_MACOSX_FINDER) || !defined (CONFIG_SDL)
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
153 ProcessSerialNumber myProc, frProc;
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
154 Boolean sameProc;
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
155
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
156 if (GetFrontProcess(&frProc) == noErr &&
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
157 GetCurrentProcess(&myProc) == noErr) {
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
158 if (SameProcess(&frProc, &myProc, &sameProc) == noErr && !sameProc) {
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
159 TransformProcessType(&myProc,
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
160 kProcessTransformToForegroundApplication);
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
161 }
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
162 SetFrontProcess(&myProc);
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
163 }
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
164 #endif
7e3b047c51e7 Refactor OS X foreground process setting into a separate function.
diego
parents: 29712
diff changeset
165 }