/* HostDeviceRecorder.java Copyright (c) 2014 NTT DOCOMO,INC. Released under the MIT license http://opensource.org/licenses/mit-license.php */ package org.deviceconnect.android.deviceplugin.host.recorder; import android.os.Parcel; import android.os.Parcelable; import java.util.List; /** * Host Device Recorder. * * @author NTT DOCOMO, INC. */ public interface HostDeviceRecorder { void initialize(); void clean(); String getId(); String getName(); String getMimeType(); RecorderState getState(); PictureSize getPictureSize(); void setPictureSize(PictureSize size); PictureSize getPreviewSize(); void setPreviewSize(PictureSize size); double getMaxFrameRate(); void setMaxFrameRate(double frameRate); List<PictureSize> getSupportedPictureSizes(); List<PictureSize> getSupportedPreviewSizes(); List<String> getSupportedMimeTypes(); boolean isSupportedPictureSize(int width, int height); boolean isSupportedPreviewSize(int width, int height); enum RecorderState { INACTTIVE, PAUSED, RECORDING } class PictureSize implements Parcelable { private final int mWidth; private final int mHeight; public PictureSize(final int w, final int h) { mWidth = w; mHeight = h; } private PictureSize(final Parcel in) { this(in.readInt(), in.readInt()); } public int getWidth() { return mWidth; } public int getHeight() { return mHeight; } @Override public int describeContents() { return 0; } @Override public void writeToParcel(final Parcel out, final int flags) { out.writeInt(mWidth); out.writeInt(mHeight); } public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { @Override public PictureSize createFromParcel(Parcel in) { return new PictureSize(in); } @Override public PictureSize[] newArray(int size) { return new PictureSize[size]; } }; @Override public String toString() { return "(width = " + getWidth() + ", height = " + getHeight() + ")"; } } }