# HG changeset patch # User gpoirier # Date 1232301916 0 # Node ID 19cf626f188a84cb4378d109336c123a7045b71f # Parent 6f11a53632425ff3c71e7b72f2066dc54efd3e2e fix device_id option after r28165 patch by Adrian Stutz %adrian A sttz P ch% Original thread: date Fri, Jan 9, 2009 at 4:03 PM subject [MPlayer-dev-eng] [PATCH] vo_macosx: fix device_id option after r28165 diff -r 6f11a5363242 -r 19cf626f188a DOCS/man/en/mplayer.1 --- a/DOCS/man/en/mplayer.1 Sat Jan 17 21:33:30 2009 +0000 +++ b/DOCS/man/en/mplayer.1 Sun Jan 18 18:05:16 2009 +0000 @@ -3560,7 +3560,8 @@ .PD 0 .RSs .IPs device_id= -Choose the display device to use in fullscreen. +Choose the display device to use for fullscreen or set it to \-1 to +always use the same screen the video window is on (default: \-1 \- auto). .IPs shared_buffer Write output to a shared memory buffer instead of displaying it and try to open an existing NSConnection for communication with a GUI. diff -r 6f11a5363242 -r 19cf626f188a libvo/vo_macosx.m --- a/libvo/vo_macosx.m Sat Jan 17 21:33:30 2009 +0000 +++ b/libvo/vo_macosx.m Sun Jan 18 18:05:16 2009 +0000 @@ -49,8 +49,7 @@ static char *buffer_name; //Screen -int screen_id; -BOOL screen_force; +int screen_id = -1; NSRect screen_frame; NSScreen *screen_handle; NSArray *screen_array; @@ -111,13 +110,13 @@ screen_array = [NSScreen screens]; if(screen_id < [screen_array count]) { - screen_handle = [screen_array objectAtIndex:screen_id]; + screen_handle = [screen_array objectAtIndex:(screen_id < 0 ? 0 : screen_id)]; } else { mp_msg(MSGT_VO, MSGL_FATAL, "Get device error: Device ID %d do not exist, falling back to main device.\n", screen_id); screen_handle = [screen_array objectAtIndex:0]; - screen_id = 0; + screen_id = -1; } screen_frame = [screen_handle frame]; vo_screenwidth = screen_frame.size.width; @@ -325,7 +324,7 @@ } static opt_t subopts[] = { -{"device_id", OPT_ARG_INT, &screen_id, (opt_test_f)int_non_neg}, +{"device_id", OPT_ARG_INT, &screen_id, NULL}, {"shared_buffer", OPT_ARG_BOOL, &shared_buffer, NULL}, {"buffer_name", OPT_ARG_MSTRZ,&buffer_name, NULL}, {NULL} @@ -335,7 +334,7 @@ { // set defaults - screen_id = 0; + screen_id = -1; shared_buffer = false; buffer_name = NULL; @@ -859,7 +858,7 @@ } old_frame = [window frame]; //save main window size & position - if(screen_force) + if(screen_id >= 0) screen_frame = [screen_handle frame]; else { screen_frame = [[window screen] frame];