libbluray | branch: master | hpi1 <h...@anonymous.org> | Mon May 16 15:02:53 2016 +0300| [eefd7c6a192b5243ec9b25676944fcb87cfa3c2e] | committer: hpi1
Add BDJ_EVENT_MOUSE > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=eefd7c6a192b5243ec9b25676944fcb87cfa3c2e --- src/libbluray/bdj/bdj.c | 3 ++- src/libbluray/bdj/bdj.h | 3 ++- src/libbluray/bdj/java/java/awt/BDJHelper.java | 8 ++++++++ src/libbluray/bdj/java/org/videolan/Libbluray.java | 8 ++++++++ src/libbluray/bluray.c | 7 ++++++- 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/libbluray/bdj/bdj.c b/src/libbluray/bdj/bdj.c index 3a4446d..9ee1aa8 100644 --- a/src/libbluray/bdj/bdj.c +++ b/src/libbluray/bdj/bdj.c @@ -703,6 +703,7 @@ int bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param) /* 16 */ "VK_KEY", /* 17 */ "UO_MASKED", + /* 18 */ "MOUSE", }; JNIEnv* env; @@ -715,7 +716,7 @@ int bdj_process_event(BDJAVA *bdjava, unsigned ev, unsigned param) return -1; } - if (ev > BD_EVENT_LAST) { + if (ev > BDJ_EVENT_LAST) { BD_DEBUG(DBG_BDJ | DBG_CRIT, "bdj_process_event(%d,%d): unknown event\n", ev, param); } // Disable too verbose logging (PTS) diff --git a/src/libbluray/bdj/bdj.h b/src/libbluray/bdj/bdj.h index 4258470..ee6355e 100644 --- a/src/libbluray/bdj/bdj.h +++ b/src/libbluray/bdj/bdj.h @@ -54,8 +54,9 @@ typedef enum { BDJ_EVENT_VK_KEY = 16, BDJ_EVENT_UO_MASKED = 17, + BDJ_EVENT_MOUSE = 18, - BDJ_EVENT_LAST = 17, + BDJ_EVENT_LAST = 18, } BDJ_EVENT; diff --git a/src/libbluray/bdj/java/java/awt/BDJHelper.java b/src/libbluray/bdj/java/java/awt/BDJHelper.java index 6d8c4af..59ed300 100644 --- a/src/libbluray/bdj/java/java/awt/BDJHelper.java +++ b/src/libbluray/bdj/java/java/awt/BDJHelper.java @@ -68,6 +68,14 @@ public class BDJHelper { } } + public static boolean postMouseEvent(int x, int y) { + return false; + } + + public static boolean postMouseEvent(int button) { + return false; + } + public static boolean postKeyEvent(int id, int modifiers, int keyCode) { Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getGlobalFocusOwner(); if (focusOwner != null) { diff --git a/src/libbluray/bdj/java/org/videolan/Libbluray.java b/src/libbluray/bdj/java/org/videolan/Libbluray.java index 93e8f31..f2d26dd 100644 --- a/src/libbluray/bdj/java/org/videolan/Libbluray.java +++ b/src/libbluray/bdj/java/org/videolan/Libbluray.java @@ -578,6 +578,10 @@ public class Libbluray { case 404: key = HRcEvent.VK_COLORED_KEY_1; break; case 405: key = HRcEvent.VK_COLORED_KEY_2; break; case 406: key = HRcEvent.VK_COLORED_KEY_3; break; + case 17: + result = java.awt.BDJHelper.postMouseEvent(0); + key = -1; + break; default: key = -1; result = false; @@ -590,6 +594,9 @@ public class Libbluray { result = r1 || r2 || r3; } break; + case BDJ_EVENT_MOUSE: + result = java.awt.BDJHelper.postMouseEvent(param >> 16, param & 0xffff); + break; default: System.err.println("Unknown event " + event + "." + param); result = false; @@ -628,6 +635,7 @@ public class Libbluray { private static final int BDJ_EVENT_VK_KEY = 16; public static final int BDJ_EVENT_UO_MASKED = 17; + private static final int BDJ_EVENT_MOUSE = 18; /* TODO: use org/bluray/system/RegisterAccess instead */ public static final int PSR_IG_STREAM_ID = 0; diff --git a/src/libbluray/bluray.c b/src/libbluray/bluray.c index 0e60b68..eadcf71 100644 --- a/src/libbluray/bluray.c +++ b/src/libbluray/bluray.c @@ -3510,6 +3510,7 @@ void bd_set_scr(BLURAY *bd, int64_t pts) int bd_mouse_select(BLURAY *bd, int64_t pts, uint16_t x, uint16_t y) { + uint32_t param = (x << 16) | y; int result = -1; bd_mutex_lock(&bd->mutex); @@ -3517,7 +3518,11 @@ int bd_mouse_select(BLURAY *bd, int64_t pts, uint16_t x, uint16_t y) _set_scr(bd, pts); if (bd->title_type == title_hdmv) { - result = _run_gc(bd, GC_CTRL_MOUSE_MOVE, (x << 16) | y); + result = _run_gc(bd, GC_CTRL_MOUSE_MOVE, param); +#ifdef USING_BDJAVA + } else if (bd->title_type == title_bdj) { + result = _bdj_event(bd, BDJ_EVENT_MOUSE, param); +#endif } bd_mutex_unlock(&bd->mutex); _______________________________________________ libbluray-devel mailing list libbluray-devel@videolan.org https://mailman.videolan.org/listinfo/libbluray-devel