libbluray | branch: master | hpi1 <[email protected]> | Thu Dec 19 10:07:43 2013 +0200| [94c05d07d4fc9c4a9e7a434cdc1685256f52b59e] | committer: hpi1
UserEventRepository: avoid duplicate entries > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=94c05d07d4fc9c4a9e7a434cdc1685256f52b59e --- .../java/org/dvb/event/UserEventRepository.java | 23 ++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java b/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java index d86b63d..f0432b4 100644 --- a/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java +++ b/src/libbluray/bdj/java/org/dvb/event/UserEventRepository.java @@ -34,6 +34,10 @@ public class UserEventRepository extends RepositoryDescriptor { public void addUserEvent(UserEvent event) { + if (contains(event)) { + return; + } + events.add(event); } @@ -53,10 +57,10 @@ public class UserEventRepository extends RepositoryDescriptor { public void addKey(int keycode) { - events.add(new UserEvent(this, UserEvent.UEF_KEY_EVENT, - KeyEvent.KEY_PRESSED, keycode, 0, 0)); - events.add(new UserEvent(this, UserEvent.UEF_KEY_EVENT, - KeyEvent.KEY_RELEASED, keycode, 0, 0)); + addUserEvent(new UserEvent(this, UserEvent.UEF_KEY_EVENT, + KeyEvent.KEY_PRESSED, keycode, 0, 0)); + addUserEvent(new UserEvent(this, UserEvent.UEF_KEY_EVENT, + KeyEvent.KEY_RELEASED, keycode, 0, 0)); } public void removeKey(int keycode) @@ -129,5 +133,16 @@ public class UserEventRepository extends RepositoryDescriptor { removeKey(HRcEvent.VK_DOWN); } + boolean contains(UserEvent event) + { + for(Iterator it = events.iterator(); it.hasNext() == true; ) { + UserEvent e = (UserEvent)it.next(); + if (e.getFamily() == event.getFamily() && e.getType() == event.getType() && e.getCode() == event.getCode()) { + return true; + } + } + return false; + } + private LinkedList events = new LinkedList(); } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
