- printf("set mode %dx%d@%d\n", w, h, bpp);
- return vout_fbdev_resize(fbdev, w, h, bpp, 0, 0, 0, 0, 3);
+ void *ret;
+
+ if (w == pl_fbdev_w && h == pl_fbdev_h && bpp == pl_fbdev_bpp)
+ return 0;
+
+ pl_fbdev_w = w;
+ pl_fbdev_h = h;
+ pl_fbdev_bpp = bpp;
+
+ vout_fbdev_clear(layer_fb);
+ ret = vout_fbdev_resize(layer_fb, w, h, bpp, 0, 0, 0, 0, 3);
+ if (ret == NULL)
+ fprintf(stderr, "failed to set mode\n");
+ else
+ pl_fbdev_buf = ret;
+
+ menu_notify_mode_change(w, h, bpp);
+
+ return (ret != NULL) ? 0 : -1;
+}
+
+void pl_fbdev_flip(void)
+{
+ flip_cnt++;
+ if (g_opts & OPT_SHOWFPS)
+ print_fps();
+ if (g_opts & OPT_SHOWCPU)
+ print_cpu_usage();
+
+ // let's flip now
+ pl_fbdev_buf = vout_fbdev_flip(layer_fb);
+}
+
+int pl_fbdev_open(void)
+{
+ pl_fbdev_buf = vout_fbdev_flip(layer_fb);
+ omap_enable_layer(1);
+ return 0;
+}
+
+void pl_fbdev_close(void)
+{
+ omap_enable_layer(0);