summaryrefslogtreecommitdiffstats
path: root/libvo
diff options
context:
space:
mode:
authorreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-08-28 13:25:30 +0000
committerreimar <reimar@b3059339-0415-0410-9bf9-f77b7e298cf2>2009-08-28 13:25:30 +0000
commit4ce7a487480cd5dc9effc531b9846b7bee83e766 (patch)
tree5462d16af5d7d879e8ec3efb2de8968b5af0a7cf /libvo
parent0dadcc7bf0f6cd7b1b020ebcd70a87c196b769f6 (diff)
downloadmpv-4ce7a487480cd5dc9effc531b9846b7bee83e766.tar.bz2
mpv-4ce7a487480cd5dc9effc531b9846b7bee83e766.tar.xz
Move aspect change handling from vo_quartz to osx_common.
This could probably be even moved to video_out, though the names should be improved. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@29574 b3059339-0415-0410-9bf9-f77b7e298cf2
Diffstat (limited to 'libvo')
-rw-r--r--libvo/osx_common.c28
-rw-r--r--libvo/osx_common.h2
-rw-r--r--libvo/vo_quartz.c16
3 files changed, 34 insertions, 12 deletions
diff --git a/libvo/osx_common.c b/libvo/osx_common.c
index da340438fc..aa1de118f0 100644
--- a/libvo/osx_common.c
+++ b/libvo/osx_common.c
@@ -43,3 +43,31 @@ int convert_key(unsigned key, unsigned charcode)
return mpkey;
return charcode;
}
+
+static int our_aspect_change;
+static float old_movie_aspect;
+
+/**
+ * Sends MPlayer a command to change aspect to the requested value.
+ * @param new_aspect desired new aspect, < 0 means restore original.
+ */
+void change_movie_aspect(float new_aspect)
+{
+ char cmd_str[64];
+ if (new_aspect < 0)
+ new_aspect = old_movie_aspect;
+ our_aspect_change = 1;
+ snprintf(cmd_str, 64, "switch_ratio %f", old_movie_aspect);
+ mp_input_queue_cmd(mp_input_parse_cmd(cmd_str));
+}
+
+/**
+ * Call in config to save the original movie aspect.
+ * This will ignore config calls caused by change_movie_aspect.
+ */
+void config_movie_aspect(float config_aspect)
+{
+ if (!our_aspect_change)
+ old_movie_aspect = config_aspect;
+ our_aspect_change = 0;
+}
diff --git a/libvo/osx_common.h b/libvo/osx_common.h
index 2f3a13b77b..ce598240c2 100644
--- a/libvo/osx_common.h
+++ b/libvo/osx_common.h
@@ -1 +1,3 @@
int convert_key(unsigned key, unsigned charcode);
+void change_movie_aspect(float new_aspect);
+void config_movie_aspect(float config_aspect);
diff --git a/libvo/vo_quartz.c b/libvo/vo_quartz.c
index c9fc1d2851..3ca371be9f 100644
--- a/libvo/vo_quartz.c
+++ b/libvo/vo_quartz.c
@@ -87,8 +87,6 @@ static int EnterMoviesDone = 0;
static int get_image_done = 0;
static int vo_quartz_fs; // we are in fullscreen
-static int our_aspect_change;
-static float old_movie_aspect;
static int winLevel = 1;
int levelList[] =
@@ -420,19 +418,15 @@ static OSStatus WindowEventHandler(EventHandlerCallRef nextHandler, EventRef eve
break;
case kAspectOrgCmd:
- our_aspect_change = 1;
- sprintf(cmd_str, "switch_ratio %f", old_movie_aspect);
- mp_input_queue_cmd(mp_input_parse_cmd(cmd_str));
+ change_movie_aspect(-1);
break;
case kAspectFullCmd:
- our_aspect_change = 1;
- mp_input_queue_cmd(mp_input_parse_cmd("switch_ratio 1.6667"));
+ change_movie_aspect(4.0 / 3.0);
break;
case kAspectWideCmd:
- our_aspect_change = 1;
- mp_input_queue_cmd(mp_input_parse_cmd("switch_ratio 1.7778"));
+ change_movie_aspect(16.0 / 9.0);
break;
case kPanScanCmd:
@@ -615,9 +609,7 @@ static int config(uint32_t width, uint32_t height, uint32_t d_width, uint32_t d_
OSErr qterr;
CGRect tmpBounds;
- if (!our_aspect_change)
- old_movie_aspect = (float)d_width / d_height;
- our_aspect_change = 0;
+ config_movie_aspect((float)d_width / d_height);
// misc mplayer setup/////////////////////////////////////////////////////
SetRect(&imgRect, 0, 0, width, height);