Added focus support. Rotation functinonal.

This commit is contained in:
Guillaume Beraudo 2010-11-22 17:20:11 +01:00
parent ef01a009d5
commit b23207e728
2 changed files with 30 additions and 5 deletions

View file

@ -20,6 +20,7 @@ package org.linphone.core;
import android.hardware.Camera;
import android.hardware.Camera.ErrorCallback;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback;
import android.os.Build;
import android.os.Handler;
@ -46,7 +47,7 @@ public abstract class AndroidCameraRecord {
private static AndroidCameraRecord instance;
private static Handler handler;
private static boolean previewStarted;
private static int orientationCode;
protected static int orientationCode;
public AndroidCameraRecord() {
// TODO check if another instance is loaded and kill it.
@ -99,11 +100,21 @@ public abstract class AndroidCameraRecord {
parameters.setPreviewSize(width, height);
parameters.setPreviewFrameRate(fps);
// parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_EDOF);
camera.setParameters(parameters);
camera.setDisplayOrientation(90 * orientationCode);
// parameters.setRotation()
if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
Log.w("Linphone", "Auto Focus supported by camera device");
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
} else {
Log.w("Linphone", "Auto Focus not supported by camera device");
if (parameters.getSupportedFocusModes().contains(Camera.Parameters.FOCUS_MODE_INFINITY)) {
Log.w("Linphone", "Infinity Focus supported by camera device");
parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_INFINITY);
} else {
Log.w("Linphone", "Infinity Focus not supported by camera device");
}
}
onSettingParameters(parameters);
camera.setParameters(parameters);
@ -144,6 +155,10 @@ public abstract class AndroidCameraRecord {
protected void onSettingParameters(Parameters parameters) {
}
/**
* Hook.
* @param camera

View file

@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
package org.linphone.core;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.hardware.Camera.PreviewCallback;
import android.hardware.Camera.Size;
import android.util.Log;
@ -61,4 +62,13 @@ public class AndroidCameraRecordBufferedImpl extends AndroidCameraRecordImpl {
super.onPreviewFrame(data, camera);
camera.addCallbackBuffer(data);
}
@Override
protected void onSettingParameters(Parameters parameters) {
super.onSettingParameters(parameters);
// Only on v8 hardware
camera.setDisplayOrientation(90 * orientationCode);
}
}