Commit 4e4171f1 authored by Filippo Carone's avatar Filippo Carone

Use playlist loop libvlc facility

parent 62e9fa55
/***************************************************************************** /*****************************************************************************
* PlaylistIntf.java: The playlist interface * Playlist.java: PlaylistIntf implementation class
***************************************************************************** *****************************************************************************
* *
* Copyright (C) 1998-2006 the VideoLAN team * Copyright (C) 1998-2006 the VideoLAN team
...@@ -49,7 +49,7 @@ public class Playlist implements PlaylistIntf { ...@@ -49,7 +49,7 @@ public class Playlist implements PlaylistIntf {
native private int _itemsCount(); native private int _itemsCount();
native private int _isRunning(); native private int _isRunning();
native private void _setLoop(boolean loop);
public synchronized void play(int id, String[] options) throws VLCException { public synchronized void play(int id, String[] options) throws VLCException {
...@@ -66,7 +66,13 @@ public class Playlist implements PlaylistIntf { ...@@ -66,7 +66,13 @@ public class Playlist implements PlaylistIntf {
public synchronized void stop() throws VLCException { public synchronized void stop() throws VLCException {
_stop(); _stop();
// do {
// try {
// Thread.sleep(50);
// } catch (InterruptedException e) {
// e.printStackTrace();
// }
// } while (isRunning());
} }
public boolean isRunning() throws VLCException { public boolean isRunning() throws VLCException {
...@@ -108,7 +114,16 @@ public class Playlist implements PlaylistIntf { ...@@ -108,7 +114,16 @@ public class Playlist implements PlaylistIntf {
_deleteItem(itemID); _deleteItem(itemID);
} }
public synchronized void setLoop(boolean loop) {
_setLoop(loop);
}
public long getInstance() throws VLCException { public long getInstance() throws VLCException {
return libvlcInstance; return libvlcInstance;
} }
public void setPause(boolean pause) throws VLCException {
// TODO Auto-generated method stub
}
} }
...@@ -30,14 +30,17 @@ ...@@ -30,14 +30,17 @@
package org.videolan.jvlc; package org.videolan.jvlc;
public interface PlaylistIntf { public interface PlaylistIntf {
/**
/**
* Plays the item specified in id, with options. At the moment options
* has no effect and can be safely set to null.
* @param id The ID to play * @param id The ID to play
* @param options Options to play the item withs * @param options Options to play the item with
*/ */
void play(int id, String[] options) throws VLCException; void play(int id, String[] options) throws VLCException;
/** /**
* Plays the current item * Plays the current item in the playlist.
*/ */
void play() throws VLCException; void play() throws VLCException;
...@@ -46,38 +49,59 @@ public interface PlaylistIntf { ...@@ -46,38 +49,59 @@ public interface PlaylistIntf {
*/ */
void togglePause() throws VLCException; void togglePause() throws VLCException;
/** /**
* Stops the playlist. * Pauses the currently playing item if pause value is true. Plays it
* otherwise. If you set pause to true and the current item is already
* playing, this has no effect.
*
* @param pause
* @throws VLCException
*/
void setPause(boolean pause) throws VLCException;
/**
* Stops the currently playing item. Differently from pause, stopping
* an item destroys any information related to the item.
*/ */
void stop() throws VLCException; void stop() throws VLCException;
/** /**
* @return True if playlist is not stopped * This function returns true if the current item has not been stopped.
* @return True if the current item has not been stopped
*/ */
boolean isRunning() throws VLCException; boolean isRunning() throws VLCException;
/** /**
* TODO: this should return the number of items added with add, with no
* respect to videolan internal playlist.
*
* Returns the number of items in the playlist. Beware that this number
* could be bigger than the number of times add() has been called.
*
* @return Current number of items in the playlist * @return Current number of items in the playlist
*/ */
int itemsCount() throws VLCException; int itemsCount() throws VLCException;
/** /**
* Move to next item * Move to next item in the playlist and play it.
*/ */
void next() throws VLCException; void next() throws VLCException;
/** /**
* Move to previous item * Move to previous item in the playlist and play it.
*/ */
void prev() throws VLCException; void prev() throws VLCException;
/** /**
* Clear the playlist * Clear the playlist which becomes empty after this call.
*/ */
void clear() throws VLCException; void clear() throws VLCException;
/** /**
* Add a new item in the playlist * TODO: document the kind of items that can be added.
* Add a new item in the playlist.
*
* @param uri Location of the item * @param uri Location of the item
* @param name Name of the item * @param name Name of the item
* @return The item ID * @return The item ID
...@@ -89,5 +113,8 @@ public interface PlaylistIntf { ...@@ -89,5 +113,8 @@ public interface PlaylistIntf {
*/ */
void addExtended(); void addExtended();
/**
* @param loop
*/
void setLoop(boolean loop);
} }
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment