libbluray | branch: master | hpi1 <[email protected]> | Mon Apr 6 17:25:10 2015 +0300| [4d2703ad17e7a76e9a9b1551f3bf5fc7f76669b6] | committer: hpi1
Fix SubtitlingControl events > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=4d2703ad17e7a76e9a9b1551f3bf5fc7f76669b6 --- .../videolan/media/content/playlist/Handler.java | 7 +++++++ .../content/playlist/SubtitlingControlImpl.java | 19 ++++++++++++++++++- 2 files changed, 25 insertions(+), 1 deletion(-) diff --git a/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java b/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java index 87e6085..8bbee93 100644 --- a/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java +++ b/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java @@ -222,6 +222,13 @@ public class Handler extends BDHandler { } catch (Exception e) { System.err.println("" + e + "\n" + Logger.dumpStack(e)); } + + if (pi != null) { + TIClip[] clips = pi.getClips(); + if (clips != null && param >= 0 && param < clips.length) { + ((SubtitlingControlImpl)controls[15]).onSubtitleAvailable(clips[param].getPgStreamCount() > 0); + } + } } protected void doAngleChanged(int param) { diff --git a/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java b/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java index f9ca37d..3d5f1d5 100644 --- a/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java +++ b/src/libbluray/bdj/java/org/videolan/media/content/playlist/SubtitlingControlImpl.java @@ -26,7 +26,11 @@ import org.bluray.media.SubtitleStyleNotAvailableException; import org.bluray.media.SubtitlingControl; import org.bluray.media.TextSubtitleNotAvailableException; import org.bluray.ti.CodingType; +import org.dvb.media.SubtitleAvailableEvent; import org.dvb.media.SubtitleListener; +import org.dvb.media.SubtitleNotAvailableEvent; +import org.dvb.media.SubtitleNotSelectedEvent; +import org.dvb.media.SubtitleSelectedEvent; import org.videolan.BDJListeners; import org.videolan.Libbluray; import org.videolan.StreamInfo; @@ -118,8 +122,21 @@ public class SubtitlingControlImpl extends StreamControl implements SubtitlingCo } protected void onSubtitleChange(int param) { - listeners.putCallback(new EventObject(this)); + if ((param & 0x80000000) != 0) { + listeners.putCallback(new SubtitleSelectedEvent(this)); + } else { + listeners.putCallback(new SubtitleNotSelectedEvent(this)); + } } + protected void onSubtitleAvailable(boolean param) { + if (param) { + listeners.putCallback(new SubtitleAvailableEvent(this)); + } else { + listeners.putCallback(new SubtitleNotAvailableEvent(this)); + } + } + + private BDJListeners listeners = new BDJListeners(); } _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
