[Android] libvlc/Media: implements Parcelable
Thomas Guillem
git at videolan.org
Mon Jan 5 17:58:39 CET 2015
vlc-ports/android | branch: master | Thomas Guillem <thomas at gllm.fr> | Mon Jan 5 15:05:11 2015 +0100| [420daba6931454a12cf0742c874348124f81d65e] | committer: Thomas Guillem
libvlc/Media: implements Parcelable
> http://git.videolan.org/gitweb.cgi/vlc-ports/android.git/?a=commit;h=420daba6931454a12cf0742c874348124f81d65e
---
libvlc/src/org/videolan/libvlc/Media.aidl | 23 +++++++++
libvlc/src/org/videolan/libvlc/Media.java | 72 +++++++++++++++++++++++++++--
2 files changed, 90 insertions(+), 5 deletions(-)
diff --git a/libvlc/src/org/videolan/libvlc/Media.aidl b/libvlc/src/org/videolan/libvlc/Media.aidl
new file mode 100644
index 0000000..9b30419
--- /dev/null
+++ b/libvlc/src/org/videolan/libvlc/Media.aidl
@@ -0,0 +1,23 @@
+/*****************************************************************************
+ * Media.aidl
+ *****************************************************************************
+ * Copyright © 2015 VLC authors and VideoLAN
+ *
+ * This program 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 program 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 program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ *****************************************************************************/
+
+package org.videolan.libvlc;
+
+parcelable Media;
diff --git a/libvlc/src/org/videolan/libvlc/Media.java b/libvlc/src/org/videolan/libvlc/Media.java
index 2db08db..e4cf411 100644
--- a/libvlc/src/org/videolan/libvlc/Media.java
+++ b/libvlc/src/org/videolan/libvlc/Media.java
@@ -24,10 +24,12 @@ import java.util.HashSet;
import java.util.Locale;
import android.graphics.Bitmap;
+import android.os.Parcel;
+import android.os.Parcelable;
import android.text.TextUtils;
import android.util.Log;
-public class Media {
+public class Media implements Parcelable {
public final static String TAG = "VLC/LibVLC/Media";
public final static HashSet<String> VIDEO_EXTENSIONS;
@@ -192,10 +194,9 @@ public class Media {
}
}
- public Media(String location, long time, long length, int type,
- Bitmap picture, String title, String artist, String genre, String album, String albumArtist,
- int width, int height, String artworkURL, int audio, int spu, int trackNumber) {
- mLocation = location;
+ private void init(long time, long length, int type,
+ Bitmap picture, String title, String artist, String genre, String album, String albumArtist,
+ int width, int height, String artworkURL, int audio, int spu, int trackNumber) {
mFilename = null;
mTime = time;
mAudioTrack = audio;
@@ -215,6 +216,33 @@ public class Media {
mTrackNumber = trackNumber;
}
+ public Media(String location, long time, long length, int type,
+ Bitmap picture, String title, String artist, String genre, String album, String albumArtist,
+ int width, int height, String artworkURL, int audio, int spu, int trackNumber) {
+ mLocation = location;
+ init(time, length, type, picture, title, artist, genre, album, albumArtist,
+ width, height, artworkURL, audio, spu, trackNumber);
+ }
+
+ public Media(Parcel in) {
+ mLocation = in.readString();
+ init(in.readLong(),
+ in.readLong(),
+ in.readInt(),
+ (Bitmap) in.readParcelable(Bitmap.class.getClassLoader()),
+ in.readString(),
+ in.readString(),
+ in.readString(),
+ in.readString(),
+ in.readString(),
+ in.readInt(),
+ in.readInt(),
+ in.readString(),
+ in.readInt(),
+ in.readInt(),
+ in.readInt());
+ }
+
public String getLocation() {
return mLocation;
}
@@ -407,4 +435,38 @@ public class Media {
public int getFlags() {
return mFlags;
}
+
+ @Override
+ public int describeContents() {
+ return 0;
+ }
+
+ @Override
+ public void writeToParcel(Parcel dest, int flags) {
+ dest.writeValue(getLocation());
+ dest.writeLong(getTime());
+ dest.writeLong(getLength());
+ dest.writeInt(getType());
+ dest.writeParcelable(getPicture(), flags);
+ dest.writeValue(getTitle());
+ dest.writeValue(getArtist());
+ dest.writeValue(getGenre());
+ dest.writeValue(getAlbum());
+ dest.writeValue(getAlbumArtist());
+ dest.writeInt(getWidth());
+ dest.writeInt(getHeight());
+ dest.writeValue(getArtworkURL());
+ dest.writeInt(getAudioTrack());
+ dest.writeInt(getSpuTrack());
+ dest.writeInt(getTrackNumber());
+ }
+
+ public static final Parcelable.Creator<Media> CREATOR = new Parcelable.Creator<Media>() {
+ public Media createFromParcel(Parcel in) {
+ return new Media(in);
+ }
+ public Media[] newArray(int size) {
+ return new Media[size];
+ }
+ };
}
More information about the Android
mailing list