aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
diff options
context:
space:
mode:
authorDavid Walter Seikel2012-01-23 23:30:42 +1000
committerDavid Walter Seikel2012-01-23 23:30:42 +1000
commit825a3d837a33f226c879cd02ad15c3fba57e8b2c (patch)
tree75f57bd9c4253508d338dc79ba8e57a7abc42255 /libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
parentAdd ability to disable the test harness, or the Lua compile test. (diff)
downloadSledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.zip
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.gz
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.bz2
SledjHamr-825a3d837a33f226c879cd02ad15c3fba57e8b2c.tar.xz
Update the EFL to what I'm actually using, coz I'm using some stuff not yet released.
Diffstat (limited to 'libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c')
-rw-r--r--libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c111
1 files changed, 83 insertions, 28 deletions
diff --git a/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c b/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
index 64cef9f..16487ad 100644
--- a/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
+++ b/libraries/ecore/src/lib/ecore_psl1ght/ecore_psl1ght.c
@@ -31,6 +31,7 @@ EAPI int ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0;
31EAPI int ECORE_PSL1GHT_EVENT_GOT_FOCUS = 0; 31EAPI int ECORE_PSL1GHT_EVENT_GOT_FOCUS = 0;
32EAPI int ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0; 32EAPI int ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0;
33EAPI int ECORE_PSL1GHT_EVENT_EXPOSE = 0; 33EAPI int ECORE_PSL1GHT_EVENT_EXPOSE = 0;
34EAPI int ECORE_PSL1GHT_EVENT_QUIT = 0;
34 35
35static int _ecore_psl1ght_init_count = 0; 36static int _ecore_psl1ght_init_count = 0;
36static int window_width = 0; 37static int window_width = 0;
@@ -47,6 +48,7 @@ static KbMkey keyboard_mods = {{0}};
47static u16 keyboard_old_key = 0; 48static u16 keyboard_old_key = 0;
48/* Pad support */ 49/* Pad support */
49static padData pad_data; 50static padData pad_data;
51static padData old_pad_data = {0};
50static int pad_old_x = 0; 52static int pad_old_x = 0;
51static int pad_old_o = 0; 53static int pad_old_o = 0;
52/* Move support */ 54/* Move support */
@@ -148,6 +150,7 @@ ecore_psl1ght_init(const char *name __UNUSED__)
148 ECORE_PSL1GHT_EVENT_LOST_FOCUS = ecore_event_type_new(); 150 ECORE_PSL1GHT_EVENT_LOST_FOCUS = ecore_event_type_new();
149 ECORE_PSL1GHT_EVENT_EXPOSE = ecore_event_type_new(); 151 ECORE_PSL1GHT_EVENT_EXPOSE = ecore_event_type_new();
150 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = ecore_event_type_new(); 152 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = ecore_event_type_new();
153 ECORE_PSL1GHT_EVENT_QUIT = ecore_event_type_new();
151 154
152 mouse_x = 0; 155 mouse_x = 0;
153 mouse_y = 0; 156 mouse_y = 0;
@@ -175,6 +178,7 @@ ecore_psl1ght_shutdown(void)
175 ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0; 178 ECORE_PSL1GHT_EVENT_LOST_FOCUS = 0;
176 ECORE_PSL1GHT_EVENT_EXPOSE = 0; 179 ECORE_PSL1GHT_EVENT_EXPOSE = 0;
177 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0; 180 ECORE_PSL1GHT_EVENT_KEY_MODIFIERS = 0;
181 ECORE_PSL1GHT_EVENT_QUIT = 0;
178 182
179 ioPadEnd(); 183 ioPadEnd();
180 ioMouseEnd(); 184 ioMouseEnd();
@@ -354,7 +358,6 @@ _ecore_psl1ght_event_key(u16 key)
354 ev->event_window = 0; 358 ev->event_window = 0;
355 ev->modifiers = _ecore_psl1ght_get_modifiers(); 359 ev->modifiers = _ecore_psl1ght_get_modifiers();
356 360
357 printf ("Key is %X\n", key);
358 key &= ~KB_KEYPAD; 361 key &= ~KB_KEYPAD;
359 for (i = 0; i < sizeof(keystable) / sizeof(struct _ecore_psl1ght_keys_s); ++i) 362 for (i = 0; i < sizeof(keystable) / sizeof(struct _ecore_psl1ght_keys_s); ++i)
360 if (keystable[i].code == key) 363 if (keystable[i].code == key)
@@ -364,13 +367,11 @@ _ecore_psl1ght_event_key(u16 key)
364 ev->string = keystable[i].compose; 367 ev->string = keystable[i].compose;
365 ev->compose = keystable[i].compose; 368 ev->compose = keystable[i].compose;
366 369
367 printf ("Found key '%s' in the table\n", ev->keyname);
368 return ev; 370 return ev;
369 } 371 }
370 372
371 utf16 = ioKbCnvRawCode (KB_MAPPING_101, keyboard_mods, keyboard_leds, key); 373 utf16 = ioKbCnvRawCode (KB_MAPPING_101, keyboard_mods, keyboard_leds, key);
372 unicodeToUtf8(utf16, utf8); 374 unicodeToUtf8(utf16, utf8);
373 printf ("Converting to utf16 : %X - utf8 : %s\n", utf16, utf8);
374 ev->keyname = ev->key = ev->string = ev->compose = strdup (utf8); 375 ev->keyname = ev->key = ev->string = ev->compose = strdup (utf8);
375 376
376 return ev; 377 return ev;
@@ -460,6 +461,30 @@ _ecore_psl1ght_mouse_wheel(s8 wheel, s8 tilt)
460 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL); 461 ecore_event_add(ECORE_EVENT_MOUSE_WHEEL, ev, NULL, NULL);
461} 462}
462 463
464static void
465_ecore_psl1ght_pad_button (const char *name, int pressed)
466{
467 Ecore_Event_Key *ev = NULL;
468
469 ev = malloc(sizeof(Ecore_Event_Key));
470 if (!ev) return;
471
472 ev->timestamp = _ecore_psl1ght_get_time ();
473 ev->window = 0;
474 ev->event_window = 0;
475 ev->modifiers = 0;
476
477 ev->keyname = name;
478 ev->key = name;
479 ev->string = "";
480 ev->compose = "";
481
482 if (pressed)
483 ecore_event_add(ECORE_EVENT_KEY_DOWN, ev, NULL, NULL);
484 else
485 ecore_event_add(ECORE_EVENT_KEY_UP, ev, NULL, NULL);
486}
487
463#define PAD_STICK_DEADZONE 0x20 488#define PAD_STICK_DEADZONE 0x20
464 489
465static void 490static void
@@ -502,15 +527,44 @@ _ecore_psl1ght_poll_joypad(void)
502 if (analog_h != 0 || analog_v != 0) 527 if (analog_h != 0 || analog_v != 0)
503 _ecore_psl1ght_mouse_move (analog_h, analog_v); 528 _ecore_psl1ght_mouse_move (analog_h, analog_v);
504 529
505 if (pad_old_x != pad_data.BTN_CROSS) 530 if (old_pad_data.BTN_CROSS ^ pad_data.BTN_CROSS) {
531 _ecore_psl1ght_pad_button ("Cross", pad_data.BTN_CROSS);
506 _ecore_psl1ght_mouse_button (1, pad_data.BTN_CROSS); 532 _ecore_psl1ght_mouse_button (1, pad_data.BTN_CROSS);
507 if (pad_old_o != pad_data.BTN_CIRCLE) 533 }
534 if (old_pad_data.BTN_CIRCLE ^ pad_data.BTN_CIRCLE) {
535 _ecore_psl1ght_pad_button ("Circle", pad_data.BTN_CIRCLE);
508 _ecore_psl1ght_mouse_button (3, pad_data.BTN_CIRCLE); 536 _ecore_psl1ght_mouse_button (3, pad_data.BTN_CIRCLE);
509 537 }
510 pad_old_x = pad_data.BTN_CROSS; 538 if (old_pad_data.BTN_SQUARE ^ pad_data.BTN_SQUARE)
511 pad_old_o = pad_data.BTN_CIRCLE; 539 _ecore_psl1ght_pad_button ("Square", pad_data.BTN_SQUARE);
512 540 if (old_pad_data.BTN_TRIANGLE ^ pad_data.BTN_TRIANGLE)
513 //pad_buttons = paddata.buttons; 541 _ecore_psl1ght_pad_button ("Triangle", pad_data.BTN_TRIANGLE);
542 if (old_pad_data.BTN_UP ^ pad_data.BTN_UP)
543 _ecore_psl1ght_pad_button ("Up", pad_data.BTN_UP);
544 if (old_pad_data.BTN_DOWN ^ pad_data.BTN_DOWN)
545 _ecore_psl1ght_pad_button ("Down", pad_data.BTN_DOWN);
546 if (old_pad_data.BTN_LEFT ^ pad_data.BTN_LEFT)
547 _ecore_psl1ght_pad_button ("Left", pad_data.BTN_LEFT);
548 if (old_pad_data.BTN_RIGHT ^ pad_data.BTN_RIGHT)
549 _ecore_psl1ght_pad_button ("Right", pad_data.BTN_RIGHT);
550 if (old_pad_data.BTN_L1 ^ pad_data.BTN_L1)
551 _ecore_psl1ght_pad_button ("L1", pad_data.BTN_L1);
552 if (old_pad_data.BTN_L2 ^ pad_data.BTN_L2)
553 _ecore_psl1ght_pad_button ("L2", pad_data.BTN_L2);
554 if (old_pad_data.BTN_L3 ^ pad_data.BTN_L3)
555 _ecore_psl1ght_pad_button ("L3", pad_data.BTN_L3);
556 if (old_pad_data.BTN_R1 ^ pad_data.BTN_R1)
557 _ecore_psl1ght_pad_button ("R1", pad_data.BTN_R1);
558 if (old_pad_data.BTN_R2 ^ pad_data.BTN_R2)
559 _ecore_psl1ght_pad_button ("R2", pad_data.BTN_R2);
560 if (old_pad_data.BTN_R3 ^ pad_data.BTN_R3)
561 _ecore_psl1ght_pad_button ("R3", pad_data.BTN_R3);
562 if (old_pad_data.BTN_START ^ pad_data.BTN_START)
563 _ecore_psl1ght_pad_button ("Start", pad_data.BTN_START);
564 if (old_pad_data.BTN_SELECT ^ pad_data.BTN_SELECT)
565 _ecore_psl1ght_pad_button ("Select", pad_data.BTN_SELECT);
566
567 old_pad_data = pad_data;
514 } 568 }
515 } 569 }
516} 570}
@@ -602,7 +656,7 @@ _ecore_psl1ght_poll_move(void)
602 656
603 case 4: 657 case 4:
604 // Move button 658 // Move button
605 printf ("Calibrating\n"); 659 //printf ("Calibrating\n");
606 gemCalibrate (0); 660 gemCalibrate (0);
607 calibrated = 1; 661 calibrated = 1;
608 break; 662 break;
@@ -717,23 +771,24 @@ _ecore_psl1ght_poll_keyboard(void)
717static void 771static void
718xmb_event_handler(u64 status, u64 param, void *user_data) 772xmb_event_handler(u64 status, u64 param, void *user_data)
719{ 773{
720 printf ("Received event %lX\n", status); 774 //printf ("Received event %lX\n", status);
721 if (status == SYSUTIL_EXIT_GAME) 775 switch (status) {
722 { 776 case SYSUTIL_EXIT_GAME:
723 ecore_main_loop_quit(); 777 ecore_event_add(ECORE_PSL1GHT_EVENT_QUIT, NULL, NULL, NULL);
724 } 778 break;
725 else if (status == SYSUTIL_MENU_OPEN) 779 case SYSUTIL_DRAW_BEGIN:
726 { 780 ecore_event_add(ECORE_PSL1GHT_EVENT_EXPOSE, NULL, NULL, NULL);
727 } 781 case SYSUTIL_MENU_OPEN:
728 else if (status == SYSUTIL_MENU_CLOSE) 782 ecore_event_add(ECORE_PSL1GHT_EVENT_LOST_FOCUS, NULL, NULL, NULL);
729 { 783 break;
730 } 784 case SYSUTIL_DRAW_END:
731 else if (status == SYSUTIL_DRAW_BEGIN) 785 ecore_event_add(ECORE_PSL1GHT_EVENT_EXPOSE, NULL, NULL, NULL);
732 { 786 case SYSUTIL_MENU_CLOSE:
733 } 787 ecore_event_add(ECORE_PSL1GHT_EVENT_GOT_FOCUS, NULL, NULL, NULL);
734 else if (status == SYSUTIL_DRAW_END) 788 break;
735 { 789 default:
736 } 790 break;
791 }
737} 792}
738 793
739EAPI void 794EAPI void