mirror of https://github.com/mpv-player/mpv
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
This commit is contained in:
parent
0dadcc7bf0
commit
4ce7a48748
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -1 +1,3 @@
|
|||
int convert_key(unsigned key, unsigned charcode);
|
||||
void change_movie_aspect(float new_aspect);
|
||||
void config_movie_aspect(float config_aspect);
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue