frontend: fix screenshot functionality for pollux
[pcsx_rearmed.git] / maemo / hildon.c
index df42a90..ba035d1 100644 (file)
@@ -5,6 +5,7 @@
 #include <unistd.h>
 #include <hildon/hildon.h>
 #include "plugin_lib.h"
+#include "main.h"
 #include "../libpcsxcore/psemu_plugin_defs.h"
 
 #define X_RES           800
 #define D_WIDTH                        640
 #define D_HEIGHT               480
 
+int g_layer_x = (X_RES - D_WIDTH) / 2;
+int g_layer_y = (Y_RES - D_HEIGHT) / 2;
+int g_layer_w = D_WIDTH, g_layer_h = D_HEIGHT;
+
 static GdkImage *image;
 static HildonAnimationActor *actor;
 static GtkWidget *window, *drawing;
 
-void *pl_fbdev_buf;
-int in_type = PSE_PAD_TYPE_STANDARD;
-int in_keystate, in_a1[2], in_a2[2];
-
 static int keymap[65536];
 
 // map psx4m compatible keymap to PSX keys
@@ -80,10 +81,12 @@ window_key_proxy(GtkWidget *widget,
                        psxkey2 = DKEY_RIGHT;
                        break;
                case 19:
-                       //SaveState(cfile);
+                       if (event->type == GDK_KEY_PRESS)
+                               emu_set_action(SACTION_SAVE_STATE);
                        return;
                case 20:
-                       //LoadState(cfile);
+                       if (event->type == GDK_KEY_PRESS)
+                               emu_set_action(SACTION_LOAD_STATE);
                        return;
        }
 
@@ -98,6 +101,8 @@ window_key_proxy(GtkWidget *widget,
                        in_keystate &= ~(1 << psxkey1);
                if (psxkey2 >= 0)
                        in_keystate &= ~(1 << psxkey2);
+
+               emu_set_action(SACTION_NONE);
        }
 }
 
@@ -148,15 +153,19 @@ void maemo_init(int *argc, char ***argv)
        gtk_widget_show_all (GTK_WIDGET (window));
 }
 
-void *pl_fbdev_set_mode(int w, int h, int bpp)
+void menu_loop(void)
+{
+}
+
+void *hildon_set_mode(int w, int h)
 {
        if (w <= 0 || h <= 0)
-               return pl_fbdev_buf;
+               return pl_vout_buf;
 
        if (image) gdk_image_destroy(image);
        image = gdk_image_new( GDK_IMAGE_FASTEST, gdk_visual_get_system(), w, h );
 
-       pl_fbdev_buf = (void *) image->mem;
+       pl_vout_buf = (void *) image->mem;
 
        gtk_image_set_from_image (GTK_IMAGE(drawing), image, NULL);
 
@@ -166,50 +175,26 @@ void *pl_fbdev_set_mode(int w, int h, int bpp)
                                (gdouble)D_HEIGHT / (gdouble)h
        );
 
-       return pl_fbdev_buf;
+       return pl_vout_buf;
 }
 
-void *pl_fbdev_flip(void)
+void *hildon_flip(void)
 {
        gtk_widget_queue_draw (drawing);
-       return pl_fbdev_buf;
-}
-
-void pl_frame_limit(void)
-{
-       extern void CheckFrameRate(void);
-       //CheckFrameRate();
 
        /* process GTK+ events */
        while (gtk_events_pending())
                gtk_main_iteration();
-}
 
-void pl_fbdev_close(void)
-{
+       return pl_vout_buf;
 }
 
-int pl_fbdev_open(void)
+int omap_enable_layer(int enabled)
 {
        return 0;
 }
 
-static void pl_get_layer_pos(int *x, int *y, int *w, int *h)
+void menu_notify_mode_change(int w, int h, int bpp)
 {
-       *x = 0;
-       *y = 0;
-       *w = 800;
-       *h = 640;
 }
 
-extern int UseFrameSkip; // hmh
-
-const struct rearmed_cbs pl_rearmed_cbs = {
-       pl_get_layer_pos,
-       pl_fbdev_open,
-       pl_fbdev_set_mode,
-       pl_fbdev_flip,
-       pl_fbdev_close,
-       &UseFrameSkip,
-};
-