summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--frontend_local.c9
-rw-r--r--xine_fbfe_frontend.c24
-rw-r--r--xine_frontend.h10
-rw-r--r--xine_frontend_main.c4
-rw-r--r--xine_sxfe_frontend.c13
5 files changed, 37 insertions, 23 deletions
diff --git a/frontend_local.c b/frontend_local.c
index 354e9b25..e46d6b88 100644
--- a/frontend_local.c
+++ b/frontend_local.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: frontend_local.c,v 1.39 2009-05-03 20:11:39 phintuka Exp $
+ * $Id: frontend_local.c,v 1.40 2009-05-31 16:51:26 phintuka Exp $
*
*/
@@ -201,8 +201,9 @@ void cXinelibLocal::ConfigureWindow(int fullscreen, int width, int height,
{
LOCK_FE;
if(fe)
- fe->fe_display_config(fe, width, height, fullscreen, modeswitch, modeline,
- aspect, scale_video, field_order);
+ fe->fe_display_config(fe, -1, -1, width, height,
+ fullscreen, modeswitch, modeline,
+ aspect, scale_video, field_order);
}
void cXinelibLocal::ConfigureDecoder(int pes_buffers)
@@ -344,7 +345,7 @@ void cXinelibLocal::Action(void)
SetStopSignal();
} else {
LOGDBG("cXinelibLocal::Action - fe created");
- if(!curr_fe->fe_display_open(curr_fe, xc.width, xc.height, xc.fullscreen, xc.hud_osd,
+ if(!curr_fe->fe_display_open(curr_fe, 0, 0, xc.width, xc.height, xc.fullscreen, xc.hud_osd,
xc.modeswitch, xc.modeline, xc.display_aspect,
keypress_handler, 0/*no_x_kbd*/, 0/*gui_hotkeys*/,
xc.video_port,
diff --git a/xine_fbfe_frontend.c b/xine_fbfe_frontend.c
index 811154d8..b1394dec 100644
--- a/xine_fbfe_frontend.c
+++ b/xine_fbfe_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_fbfe_frontend.c,v 1.44 2009-02-21 11:55:37 phintuka Exp $
+ * $Id: xine_fbfe_frontend.c,v 1.45 2009-05-31 16:51:26 phintuka Exp $
*
*/
@@ -116,7 +116,9 @@ static void update_DFBARGS(const char *fb_dev)
/*
* fbfe_display_open
*/
-static int fbfe_display_open(frontend_t *this_gen, int width, int height, int fullscreen, int hud,
+static int fbfe_display_open(frontend_t *this_gen,
+ int xpos, int ypos,
+ int width, int height, int fullscreen, int hud,
int modeswitch, const char *modeline, int aspect,
fe_keypress_f keyfunc, int no_x_kbd, int gui_hotkeys,
const char *video_port, int scale_video, int field_order,
@@ -138,8 +140,8 @@ static int fbfe_display_open(frontend_t *this_gen, int width, int height, int fu
LOGDBG("fbfe_display_open(width=%d, height=%d, fullscreen=%d, display=%s)",
width, height, fullscreen, video_port);
- this->x.xpos = 0;
- this->x.ypos = 0;
+ this->x.xpos = xpos;
+ this->x.ypos = ypos;
this->x.width = width;
this->x.height = height;
this->x.aspect = aspect;
@@ -189,17 +191,21 @@ static int fbfe_display_open(frontend_t *this_gen, int width, int height, int fu
*
* configure windows
*/
-static int fbfe_display_config(frontend_t *this_gen, int width, int height, int fullscreen,
- int modeswitch, const char *modeline, int aspect,
- int scale_video, int field_order)
+static int fbfe_display_config(frontend_t *this_gen,
+ int xpos, int ypos,
+ int width, int height, int fullscreen,
+ int modeswitch, const char *modeline,
+ int aspect, int scale_video, int field_order)
{
fbfe_t *this = (fbfe_t*)this_gen;
if(!this)
return 0;
- this->x.width = width;
- this->x.height = height;
+ this->x.xpos = xpos >= 0 ? xpos : this->x.xpos;
+ this->x.ypos = ypos >= 0 ? ypos : this->x.ypos;
+ this->x.width = width >= 0 ? width : this->x.width;
+ this->x.height = height >= 0 ? height : this->x.height;
this->x.aspect = aspect;
this->x.scale_video = scale_video;
this->x.field_order = field_order;
diff --git a/xine_frontend.h b/xine_frontend.h
index c6cbe5eb..f588dc04 100644
--- a/xine_frontend.h
+++ b/xine_frontend.h
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_frontend.h,v 1.18 2009-02-21 11:55:37 phintuka Exp $
+ * $Id: xine_frontend.h,v 1.19 2009-05-31 16:51:25 phintuka Exp $
*
*/
@@ -61,14 +61,18 @@ struct frontend_config_s {
struct frontend_s {
/* Display */
- int (*fe_display_open)(frontend_t*, int winwidth, int winheight,
+ int (*fe_display_open)(frontend_t*,
+ int xpos, int ypos,
+ int winwidth, int winheight,
int fullscreen, int hud, int modeswitch, const char *modeline,
int aspect, fe_keypress_f keypresshandler,
int no_x_kbd, int gui_hotkeys,
const char *video_port,
int scale_video, int field_order,
const char *aspect_controller, int window_id);
- int (*fe_display_config)(frontend_t *, int width, int height,
+ int (*fe_display_config)(frontend_t *,
+ int xpos, int ypos,
+ int width, int height,
int fullscreen,
int modeswitch, const char *modeline,
int aspect, int scale_video, int field_order);
diff --git a/xine_frontend_main.c b/xine_frontend_main.c
index b45cb357..03143a07 100644
--- a/xine_frontend_main.c
+++ b/xine_frontend_main.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_frontend_main.c,v 1.74 2009-02-21 11:55:37 phintuka Exp $
+ * $Id: xine_frontend_main.c,v 1.75 2009-05-31 16:51:26 phintuka Exp $
*
*/
@@ -702,7 +702,7 @@ int main(int argc, char *argv[])
}
/* Initialize display */
- if (!fe->fe_display_open(fe, width, height, fullscreen, hud, 0,
+ if (!fe->fe_display_open(fe, 0, 0, width, height, fullscreen, hud, 0,
"", aspect, NULL, noxkbd, gui_hotkeys,
video_port, scale_video, 0,
aspect_controller, window_id)) {
diff --git a/xine_sxfe_frontend.c b/xine_sxfe_frontend.c
index f3625ec0..e4aba486 100644
--- a/xine_sxfe_frontend.c
+++ b/xine_sxfe_frontend.c
@@ -4,7 +4,7 @@
* See the main source file 'xineliboutput.c' for copyright information and
* how to reach the author.
*
- * $Id: xine_sxfe_frontend.c,v 1.110 2009-02-21 11:55:37 phintuka Exp $
+ * $Id: xine_sxfe_frontend.c,v 1.111 2009-05-31 16:51:26 phintuka Exp $
*
*/
@@ -1098,7 +1098,9 @@ static void create_windows(sxfe_t *this)
*
* connect to X server, create windows
*/
-static int sxfe_display_open(frontend_t *this_gen, int width, int height, int fullscreen, int hud,
+static int sxfe_display_open(frontend_t *this_gen,
+ int xpos, int ypos,
+ int width, int height, int fullscreen, int hud,
int modeswitch, const char *modeline, int aspect,
fe_keypress_f keyfunc, int no_x_kbd, int gui_hotkeys,
const char *video_port, int scale_video, int field_order,
@@ -1128,8 +1130,8 @@ static int sxfe_display_open(frontend_t *this_gen, int width, int height, int fu
#endif
}
- this->x.xpos = 0;
- this->x.ypos = 0;
+ this->x.xpos = xpos;
+ this->x.ypos = ypos;
this->x.width = width;
this->x.height = height;
this->x.aspect = aspect;
@@ -1265,6 +1267,7 @@ static int sxfe_display_open(frontend_t *this_gen, int width, int height, int fu
* configure windows
*/
static int sxfe_display_config(frontend_t *this_gen,
+ int xpos, int ypos,
int width, int height, int fullscreen,
int modeswitch, const char *modeline,
int aspect, int scale_video,
@@ -1358,7 +1361,7 @@ static void sxfe_toggle_fullscreen(fe_t *this_gen)
this->x.ypos = this->origypos;
}
- this->fe.fe_display_config((frontend_t*)this, this->origwidth, this->origheight,
+ this->fe.fe_display_config((frontend_t*)this, -1, -1, this->origwidth, this->origheight,
this->fullscreen ? 0 : 1,
0/*this->vmode_switch*/, NULL/*this->modeline*/,
this->x.aspect, this->x.scale_video, this->x.field_order);