ShadowMediaRecorder.java revision 31af8607e2c7da6ba8708f57c4b67b6b4aaad921
131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesipackage com.xtremelabs.robolectric.shadows;
231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport com.xtremelabs.robolectric.util.Implementation;
431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport com.xtremelabs.robolectric.util.Implements;
531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.hardware.Camera;
731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.media.MediaRecorder;
831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesiimport android.view.Surface;
931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
1031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi/**
1131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi * Shadows the {@code MediaRecorder} class.
1231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi *
1331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi */
1431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi@Implements( MediaRecorder.class )
1531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesipublic class ShadowMediaRecorder {
1631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
1731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	// Recording machine state, as per:
1831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	// http://developer.android.com/reference/android/media/MediaRecorder.html
1931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_ERROR = -1;
2031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_INITIAL = 1;
2131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_INITIALIZED = 2;
2231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_DATA_SOURCE_CONFIGURED = 3;
2331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_PREPARED = 4;
2431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_RECORDING = 5;
2531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public static final int STATE_RELEASED = 6;
2631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
2731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int state;
2831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
2931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private Camera camera;
3031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int audioChannels;
3131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int audioEncoder;
3231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int audioBitRate;
3331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int audioSamplingRate;
3431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int audioSource;
3531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int maxDuration;
3631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private long maxFileSize;
3731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private String outputPath;
3831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int outputFormat;
3931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoEncoder;
4031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoBitRate;
4131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoFrameRate;
4231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoWidth;
4331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoHeight;
4431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private int videoSource;
4531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
4631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private Surface previewDisplay;
4731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private MediaRecorder.OnErrorListener errorListener;
4831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	private MediaRecorder.OnInfoListener infoListener;
4931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
5031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void __constructor__() {
5131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_INITIAL;
5231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
5331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
5431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
5531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setAudioChannels(int numChannels) {
5631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		audioChannels = numChannels;
5731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
5831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
5931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
6031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setAudioEncoder(int audio_encoder) {
6131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		audioEncoder = audio_encoder;
6231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
6331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
6431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
6531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
6631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setAudioEncodingBitRate(int bitRate) {
6731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		audioBitRate = bitRate;
6831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
6931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
7031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
7131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setAudioSamplingRate(int samplingRate) {
7231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		audioSamplingRate = samplingRate;
7331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
7431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
7531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
7631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setAudioSource(int audio_source) {
7731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		audioSource = audio_source;
7831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_INITIALIZED;
7931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
8031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
8131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
8231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setCamera( Camera c ) {
8331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		camera = c;
8431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
8531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
8631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
8731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setMaxDuration(int max_duration_ms) {
8831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		maxDuration = max_duration_ms;
8931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
9031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
9131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
9231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setMaxFileSize(long max_filesize_bytes) {
9331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		maxFileSize = max_filesize_bytes;
9431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
9531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
9631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
9731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setOnErrorListener(MediaRecorder.OnErrorListener l) {
9831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		errorListener = l;
9931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
10031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
10131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
10231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setOnInfoListener(MediaRecorder.OnInfoListener listener) {
10331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		infoListener = listener;
10431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
10531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
10631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
10731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setOutputFile(String path) {
10831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		outputPath = path;
10931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
11031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
11131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
11231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
11331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setOutputFormat(int output_format) {
11431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		outputFormat = output_format;
11531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
11631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
11731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
11831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
11931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setPreviewDisplay(Surface sv) {
12031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		previewDisplay = sv;
12131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
12231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
12331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
12431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
12531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setVideoEncoder(int video_encoder) {
12631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoEncoder = video_encoder;
12731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
12831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
12931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
13031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
13131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setVideoEncodingBitRate(int bitRate) {
13231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoBitRate = bitRate;
13331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
13431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
13531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
13631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setVideoFrameRate(int rate) {
13731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoFrameRate = rate;
13831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
13931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
14031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
14131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
14231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setVideoSize(int width, int height) {
14331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoWidth = width;
14431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoHeight = height;
14531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_DATA_SOURCE_CONFIGURED;
14631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
14731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
14831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
14931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void setVideoSource(int video_source) {
15031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		videoSource = video_source;
15131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_INITIALIZED;
15231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
15331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
15431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
15531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void prepare() {
15631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_PREPARED;
15731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
15831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
15931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
16031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void start() {
16131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_RECORDING;
16231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
16331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
16431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
16531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void stop() {
16631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_INITIAL;
16731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
16831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
16931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
17031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void reset() {
17131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_INITIAL;
17231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
17331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
17431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	@Implementation
17531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public void release() {
17631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		state = STATE_RELEASED;
17731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
17831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
17931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
18031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public Camera getCamera() {
18131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return camera;
18231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
18331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
18431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getAudioChannels() {
18531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return audioChannels;
18631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
18731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
18831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getAudioEncoder() {
18931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return audioEncoder;
19031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
19131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
19231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getAudioBitRate() {
19331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return audioBitRate;
19431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
19531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
19631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getAudioSamplingRate() {
19731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return audioSamplingRate;
19831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
19931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
20031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getAudioSource() {
20131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return audioSource;
20231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
20331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
20431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getMaxDuration() {
20531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return maxDuration;
20631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
20731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
20831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public long getMaxFileSize() {
20931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return maxFileSize;
21031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
21131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
21231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public String getOutputPath() {
21331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return outputPath;
21431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
21531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
21631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getOutputFormat() {
21731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return outputFormat;
21831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
21931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
22031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoEncoder() {
22131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoEncoder;
22231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
22331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
22431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoBitRate() {
22531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoBitRate;
22631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
22731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
22831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoFrameRate() {
22931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoFrameRate;
23031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
23131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
23231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoWidth() {
23331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoWidth;
23431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
23531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
23631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoHeight() {
23731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoHeight;
23831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
23931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
24031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getVideoSource() {
24131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return videoSource;
24231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
24331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
24431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public Surface getPreviewDisplay() {
24531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return previewDisplay;
24631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
24731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
24831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public MediaRecorder.OnErrorListener getErrorListener() {
24931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return errorListener;
25031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
25131af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
25231af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public MediaRecorder.OnInfoListener getInfoListener() {
25331af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return infoListener;
25431af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
25531af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
25631af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	public int getState() {
25731af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi		return state;
25831af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi	}
25931af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi
26031af8607e2c7da6ba8708f57c4b67b6b4aaad921Michael Portuesi}
261