Skip to content

Commit

Permalink
Pass the native media resource handle and the associated MRL with the
Browse files Browse the repository at this point in the history
media changed event notification.
  • Loading branch information
caprica committed May 14, 2012
1 parent d224a7a commit 3564ad0
Show file tree
Hide file tree
Showing 9 changed files with 33 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -195,7 +195,7 @@ protected void onAfterRelease() {
// === MediaPlayerEventListener =============================================

@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -326,7 +326,7 @@ protected void onAfterRelease() {
// === MediaPlayerEventListener =============================================

@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -1792,8 +1792,8 @@ public void run() {
private final class NewMediaEventHandler extends MediaPlayerEventAdapter {

@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
Logger.debug("mediaChanged(mediaPlayer={})", mediaPlayer);
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
Logger.debug("mediaChanged(mediaPlayer={},media={},mrl={})", mediaPlayer, media, mrl);
// If this is not a sub-item...
if(subItemIndex() == -1) {
// Raise a semantic event to announce the media was changed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ public class MediaPlayerEventAdapter implements MediaPlayerEventListener {
// === Events relating to the media player ==================================

@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,10 @@ public interface MediaPlayerEventListener {
* The media changed.
*
* @param mediaPlayer media player that raised the event
* @param media new media instance
* @param mrl media resource locator
*/
void mediaChanged(MediaPlayer mediaPlayer);
void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl);

/**
* Opening the media.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,11 +21,13 @@

import uk.co.caprica.vlcj.binding.internal.libvlc_event_e;
import uk.co.caprica.vlcj.binding.internal.libvlc_event_t;
import uk.co.caprica.vlcj.binding.internal.libvlc_media_t;
import uk.co.caprica.vlcj.binding.internal.media_duration_changed;
import uk.co.caprica.vlcj.binding.internal.media_meta_changed;
import uk.co.caprica.vlcj.binding.internal.media_parsed_changed;
import uk.co.caprica.vlcj.binding.internal.media_player_buffering;
import uk.co.caprica.vlcj.binding.internal.media_player_length_changed;
import uk.co.caprica.vlcj.binding.internal.media_player_media_changed;
import uk.co.caprica.vlcj.binding.internal.media_player_pausable_changed;
import uk.co.caprica.vlcj.binding.internal.media_player_position_changed;
import uk.co.caprica.vlcj.binding.internal.media_player_seekable_changed;
Expand Down Expand Up @@ -77,7 +79,8 @@ public MediaPlayerEvent createEvent(libvlc_event_t event, int eventMask) {

case libvlc_MediaPlayerMediaChanged:
if(MediaPlayerEventType.set(eventMask, MediaPlayerEventType.MEDIA_CHANGED)) {
result = new MediaPlayerMediaChangedEvent(mediaPlayer);
libvlc_media_t mediaInstance = ((media_player_media_changed)event.u.getTypedValue(media_player_media_changed.class)).md;
result = new MediaPlayerMediaChangedEvent(mediaPlayer, mediaInstance, mediaPlayer.mrl(mediaInstance));
}
break;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@

package uk.co.caprica.vlcj.player.events;

import uk.co.caprica.vlcj.binding.internal.libvlc_media_t;
import uk.co.caprica.vlcj.player.MediaPlayer;
import uk.co.caprica.vlcj.player.MediaPlayerEventListener;

Expand All @@ -27,17 +28,31 @@
*/
class MediaPlayerMediaChangedEvent extends AbstractMediaPlayerEvent {

/**
*
*/
private final libvlc_media_t newMedia;

/**
*
*/
private final String mrl;

/**
* Create a media player event.
*
* @param mediaPlayer media player the event relates to
* @param newMedia native media instance
* @param mrl media resource locator
*/
MediaPlayerMediaChangedEvent(MediaPlayer mediaPlayer) {
MediaPlayerMediaChangedEvent(MediaPlayer mediaPlayer, libvlc_media_t newMedia, String mrl) {
super(mediaPlayer);
this.newMedia = newMedia;
this.mrl = mrl;
}

@Override
public void notify(MediaPlayerEventListener listener) {
listener.mediaChanged(mediaPlayer);
listener.mediaChanged(mediaPlayer, newMedia, mrl);
}
}
4 changes: 2 additions & 2 deletions src/test/java/uk/co/caprica/vlcj/test/basic/TestPlayer.java
Original file line number Diff line number Diff line change
Expand Up @@ -381,8 +381,8 @@ private JMenuBar buildMenuBar() {

private final class TestPlayerMediaPlayerEventListener extends MediaPlayerEventAdapter {
@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
Logger.debug("mediaChanged(mediaPlayer={})", mediaPlayer);
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
Logger.debug("mediaChanged(mediaPlayer={},media={},mrl={})", mediaPlayer, media, mrl);
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
import java.awt.Canvas;
import java.awt.Color;

import uk.co.caprica.vlcj.binding.internal.libvlc_media_t;
import uk.co.caprica.vlcj.player.MediaPlayer;
import uk.co.caprica.vlcj.player.MediaPlayerEventAdapter;
import uk.co.caprica.vlcj.player.embedded.EmbeddedMediaPlayer;
Expand Down Expand Up @@ -52,7 +53,7 @@ public Canvas videoSurface() {
}

@Override
public void mediaChanged(MediaPlayer mediaPlayer) {
public void mediaChanged(MediaPlayer mediaPlayer, libvlc_media_t media, String mrl) {
System.out.println("mediaChanged");
}

Expand Down

0 comments on commit 3564ad0

Please sign in to comment.