[libbluray-devel] Added BDRootWindow
hpi1
git at videolan.org
Sun Sep 23 22:05:13 CEST 2012
libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Sun Sep 23 22:28:16 2012 +0300| [5013cd2dfe0d215472c4c9ba16be17bc7f10a7a9] | committer: hpi1
Added BDRootWindow
(merge from dslibbluray)
> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=5013cd2dfe0d215472c4c9ba16be17bc7f10a7a9
---
src/libbluray/bdj/java/java/awt/BDRootWindow.java | 109 +++++++++++++++++++++
1 file changed, 109 insertions(+)
diff --git a/src/libbluray/bdj/java/java/awt/BDRootWindow.java b/src/libbluray/bdj/java/java/awt/BDRootWindow.java
new file mode 100644
index 0000000..c3eedd6
--- /dev/null
+++ b/src/libbluray/bdj/java/java/awt/BDRootWindow.java
@@ -0,0 +1,109 @@
+/*
+ * This file is part of libbluray
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library. If not, see
+ * <http://www.gnu.org/licenses/>.
+ */
+
+package java.awt;
+
+import java.awt.event.KeyEvent;
+import java.util.Arrays;
+import java.util.Timer;
+import java.util.TimerTask;
+
+import org.videolan.Libbluray;
+
+public class BDRootWindow extends Frame {
+ public BDRootWindow () {
+ super();
+ setBackground(new Color(0, 0, 0, 0));
+ }
+ /*
+ public void setBounds(int x, int y, int width, int height) {
+ if (!isVisible()) {
+ if ((width > 0) && (height > 0)) {
+ if ((backBuffer == null) || (this.width * this.height < width * height)) {
+ backBuffer = new int[width * height];
+ Arrays.fill(backBuffer, 0);
+ }
+ }
+ super.setBounds(x, y, width, height);
+ }
+ }
+
+ public int[] getBackBuffer() {
+ return backBuffer;
+ }
+ */
+ public void postKeyEvent(int id, int modifiers, int keyCode) {
+ Component focusOwner = KeyboardFocusManager.getCurrentKeyboardFocusManager().getGlobalFocusOwner();
+ if (focusOwner != null) {
+ long when = System.currentTimeMillis();
+ KeyEvent event;
+ if (id == KeyEvent.KEY_TYPED)
+ event = new KeyEvent(focusOwner, id, when, modifiers, KeyEvent.VK_UNDEFINED, (char)keyCode);
+ else
+ event = new KeyEvent(focusOwner, id, when, modifiers, keyCode, KeyEvent.CHAR_UNDEFINED);
+ Toolkit.getEventQueue().postEvent(event);
+ }
+ }
+ /*
+ public void notifyChanged() {
+ synchronized (this) {
+ changeCount++;
+ if (timerTask == null) {
+ timerTask = new RefreshTimerTask(this);
+ timer.schedule(timerTask, 50, 50);
+ }
+ }
+ }
+
+ public void sync() {
+ synchronized (this) {
+ if (timerTask != null) {
+ timerTask.cancel();
+ timerTask = null;
+ }
+ changeCount = 0;
+ Libbluray.updateGraphic(width, height, backBuffer);
+ }
+ }
+
+ private class RefreshTimerTask extends TimerTask {
+ public RefreshTimerTask(BDRootWindow window) {
+ this.window = window;
+ this.changeCount = window.changeCount;
+ }
+
+ public void run() {
+ synchronized (window) {
+ if (this.changeCount == window.changeCount)
+ window.sync();
+ else
+ this.changeCount = window.changeCount;
+ }
+ }
+
+ private BDRootWindow window;
+ private int changeCount;
+ }
+
+ private int[] backBuffer = null;
+ private int changeCount = 0;
+ private Timer timer = new Timer();
+ private TimerTask timerTask = null;
+ */
+ private static final long serialVersionUID = -8325961861529007953L;
+}
More information about the libbluray-devel
mailing list