• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.xtremelabs.robolectric.shadows;
2 
3 import android.hardware.Camera;
4 import android.media.MediaRecorder;
5 import android.view.Surface;
6 import com.xtremelabs.robolectric.internal.Implementation;
7 import com.xtremelabs.robolectric.internal.Implements;
8 
9 /**
10  * Shadows the {@code MediaRecorder} class.
11  */
12 @Implements(MediaRecorder.class)
13 public class ShadowMediaRecorder {
14 
15     // Recording machine state, as per:
16     // http://developer.android.com/reference/android/media/MediaRecorder.html
17     public static final int STATE_ERROR = -1;
18     public static final int STATE_INITIAL = 1;
19     public static final int STATE_INITIALIZED = 2;
20     public static final int STATE_DATA_SOURCE_CONFIGURED = 3;
21     public static final int STATE_PREPARED = 4;
22     public static final int STATE_RECORDING = 5;
23     public static final int STATE_RELEASED = 6;
24 
25     private int state;
26 
27     private Camera camera;
28     private int audioChannels;
29     private int audioEncoder;
30     private int audioBitRate;
31     private int audioSamplingRate;
32     private int audioSource;
33     private int maxDuration;
34     private long maxFileSize;
35     private String outputPath;
36     private int outputFormat;
37     private int videoEncoder;
38     private int videoBitRate;
39     private int videoFrameRate;
40     private int videoWidth;
41     private int videoHeight;
42     private int videoSource;
43 
44     private Surface previewDisplay;
45     private MediaRecorder.OnErrorListener errorListener;
46     private MediaRecorder.OnInfoListener infoListener;
47 
__constructor__()48     public void __constructor__() {
49         state = STATE_INITIAL;
50     }
51 
52     @Implementation
setAudioChannels(int numChannels)53     public void setAudioChannels(int numChannels) {
54         audioChannels = numChannels;
55     }
56 
57     @Implementation
setAudioEncoder(int audio_encoder)58     public void setAudioEncoder(int audio_encoder) {
59         audioEncoder = audio_encoder;
60         state = STATE_DATA_SOURCE_CONFIGURED;
61     }
62 
63     @Implementation
setAudioEncodingBitRate(int bitRate)64     public void setAudioEncodingBitRate(int bitRate) {
65         audioBitRate = bitRate;
66     }
67 
68     @Implementation
setAudioSamplingRate(int samplingRate)69     public void setAudioSamplingRate(int samplingRate) {
70         audioSamplingRate = samplingRate;
71     }
72 
73     @Implementation
setAudioSource(int audio_source)74     public void setAudioSource(int audio_source) {
75         audioSource = audio_source;
76         state = STATE_INITIALIZED;
77     }
78 
79     @Implementation
setCamera(Camera c)80     public void setCamera(Camera c) {
81         camera = c;
82     }
83 
84     @Implementation
setMaxDuration(int max_duration_ms)85     public void setMaxDuration(int max_duration_ms) {
86         maxDuration = max_duration_ms;
87     }
88 
89     @Implementation
setMaxFileSize(long max_filesize_bytes)90     public void setMaxFileSize(long max_filesize_bytes) {
91         maxFileSize = max_filesize_bytes;
92     }
93 
94     @Implementation
setOnErrorListener(MediaRecorder.OnErrorListener l)95     public void setOnErrorListener(MediaRecorder.OnErrorListener l) {
96         errorListener = l;
97     }
98 
99     @Implementation
setOnInfoListener(MediaRecorder.OnInfoListener listener)100     public void setOnInfoListener(MediaRecorder.OnInfoListener listener) {
101         infoListener = listener;
102     }
103 
104     @Implementation
setOutputFile(String path)105     public void setOutputFile(String path) {
106         outputPath = path;
107         state = STATE_DATA_SOURCE_CONFIGURED;
108     }
109 
110     @Implementation
setOutputFormat(int output_format)111     public void setOutputFormat(int output_format) {
112         outputFormat = output_format;
113         state = STATE_DATA_SOURCE_CONFIGURED;
114     }
115 
116     @Implementation
setPreviewDisplay(Surface sv)117     public void setPreviewDisplay(Surface sv) {
118         previewDisplay = sv;
119         state = STATE_DATA_SOURCE_CONFIGURED;
120     }
121 
122     @Implementation
setVideoEncoder(int video_encoder)123     public void setVideoEncoder(int video_encoder) {
124         videoEncoder = video_encoder;
125         state = STATE_DATA_SOURCE_CONFIGURED;
126     }
127 
128     @Implementation
setVideoEncodingBitRate(int bitRate)129     public void setVideoEncodingBitRate(int bitRate) {
130         videoBitRate = bitRate;
131     }
132 
133     @Implementation
setVideoFrameRate(int rate)134     public void setVideoFrameRate(int rate) {
135         videoFrameRate = rate;
136         state = STATE_DATA_SOURCE_CONFIGURED;
137     }
138 
139     @Implementation
setVideoSize(int width, int height)140     public void setVideoSize(int width, int height) {
141         videoWidth = width;
142         videoHeight = height;
143         state = STATE_DATA_SOURCE_CONFIGURED;
144     }
145 
146     @Implementation
setVideoSource(int video_source)147     public void setVideoSource(int video_source) {
148         videoSource = video_source;
149         state = STATE_INITIALIZED;
150     }
151 
152     @Implementation
prepare()153     public void prepare() {
154         state = STATE_PREPARED;
155     }
156 
157     @Implementation
start()158     public void start() {
159         state = STATE_RECORDING;
160     }
161 
162     @Implementation
stop()163     public void stop() {
164         state = STATE_INITIAL;
165     }
166 
167     @Implementation
reset()168     public void reset() {
169         state = STATE_INITIAL;
170     }
171 
172     @Implementation
release()173     public void release() {
174         state = STATE_RELEASED;
175     }
176 
getCamera()177     public Camera getCamera() {
178         return camera;
179     }
180 
getAudioChannels()181     public int getAudioChannels() {
182         return audioChannels;
183     }
184 
getAudioEncoder()185     public int getAudioEncoder() {
186         return audioEncoder;
187     }
188 
getAudioEncodingBitRate()189     public int getAudioEncodingBitRate() {
190         return audioBitRate;
191     }
192 
getAudioSamplingRate()193     public int getAudioSamplingRate() {
194         return audioSamplingRate;
195     }
196 
getAudioSource()197     public int getAudioSource() {
198         return audioSource;
199     }
200 
getMaxDuration()201     public int getMaxDuration() {
202         return maxDuration;
203     }
204 
getMaxFileSize()205     public long getMaxFileSize() {
206         return maxFileSize;
207     }
208 
getOutputPath()209     public String getOutputPath() {
210         return outputPath;
211     }
212 
getOutputFormat()213     public int getOutputFormat() {
214         return outputFormat;
215     }
216 
getVideoEncoder()217     public int getVideoEncoder() {
218         return videoEncoder;
219     }
220 
getVideoEncodingBitRate()221     public int getVideoEncodingBitRate() {
222         return videoBitRate;
223     }
224 
getVideoFrameRate()225     public int getVideoFrameRate() {
226         return videoFrameRate;
227     }
228 
getVideoWidth()229     public int getVideoWidth() {
230         return videoWidth;
231     }
232 
getVideoHeight()233     public int getVideoHeight() {
234         return videoHeight;
235     }
236 
getVideoSource()237     public int getVideoSource() {
238         return videoSource;
239     }
240 
getPreviewDisplay()241     public Surface getPreviewDisplay() {
242         return previewDisplay;
243     }
244 
getErrorListener()245     public MediaRecorder.OnErrorListener getErrorListener() {
246         return errorListener;
247     }
248 
getInfoListener()249     public MediaRecorder.OnInfoListener getInfoListener() {
250         return infoListener;
251     }
252 
getState()253     public int getState() {
254         return state;
255     }
256 }
257