Merge ms2. Fix i18n in ms2. Activate 2.3 in Version.

This commit is contained in:
Guillaume Beraudo 2011-04-06 10:41:01 +02:00
parent 4dc43b827d
commit f9a1266bac
8 changed files with 132 additions and 74 deletions

View file

@ -17,6 +17,7 @@ APP_MODULES +=libmsilbc libavutil libavcore libavcodec libswscale libx264 l
endif
APP_BUILD_SCRIPT:=$(call my-dir)/Android.mk
APP_PLATFORM := android-8
APP_ABI := armeabi armeabi-v7a
APP_ABI := armeabi-v7a
#APP_ABI := armeabi armeabi-v7a
#APP_OPTIM := debug

View file

@ -26,8 +26,7 @@ import android.os.Build;
*/
public class Version {
private static final int buildVersion = Integer.parseInt(Build.VERSION.SDK) >= 9?
8 : Integer.parseInt(Build.VERSION.SDK); // Force versions above 9 to 8
private static final int buildVersion = Integer.parseInt(Build.VERSION.SDK);
// 7; // 2.1
public static final boolean sdkAboveOrEqual(int value) {

View file

@ -1,6 +1,6 @@
/*
AndroidCameraConf.java
Copyright (C) 2010 Belledonne Communications, Grenoble, France
Copyright (C) 2011 Belledonne Communications, Grenoble, France
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
@ -15,64 +15,31 @@ GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
*/
package org.linphone.core.video;
import org.linphone.core.Hacks;
import android.util.Log;
/**
* @author Guillaume Beraudo
*
*/
interface AndroidCameraConf {
class AndroidCameraConf {
private static final String tag = "Linphone";
AndroidCameras getFoundCameras();
public void findFrontAndRearCameraIds(int[] frontCameraId, int[] rearCameraId, int[] cameraId) {
Log.i(tag, "Detecting cameras");
if (Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : has 2 cameras front=2; rear=1");
frontCameraId[0] = 2;
rearCameraId[0] = 1;
cameraId[0] = rearCameraId[0];
return;
}
int getNumberOfCameras();
// default to 0/0
int getCameraOrientation(int cameraId);
boolean isFrontCamera(int cameraId);
class AndroidCameras {
Integer front;
Integer rear;
Integer defaultC;
boolean hasFrontCamera() { return front != null; }
boolean hasRearCamera() { return rear != null; }
boolean hasSeveralCameras() { return front != rear && front != null; }
}
public int getNumberOfCameras() {
Log.i(tag, "Detecting the number of cameras");
// Use hacks to guess the number of cameras
if (Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : has 2 cameras");
return 2;
} else
return 1;
}
public int getCameraOrientation(int cameraId) {
// Use hacks to guess orientation of the camera
if (cameraId == 2 && Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : rear camera id=2 ; mounted landscape");
// mounted in landscape for a portrait phone orientation
return 90;
}
return 0;
}
public boolean isFrontCamera(int cameraId) {
// Use hacks to guess facing of the camera
if (cameraId == 2 && Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : front camera has id=2");
return true;
}
return false;
}
}

View file

@ -0,0 +1,88 @@
/*
AndroidCameraConf.java
Copyright (C) 2010 Belledonne Communications, Grenoble, France
This program is free software; you can redistribute it and/or
modify it under the terms of the GNU General Public License
as published by the Free Software Foundation; either version 2
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 General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
package org.linphone.core.video;
import org.linphone.core.Hacks;
import android.util.Log;
class AndroidCameraConf5 implements AndroidCameraConf {
private static final String tag = "Linphone";
private AndroidCameras foundCameras;
public AndroidCameras getFoundCameras() {return foundCameras;}
public AndroidCameraConf5() {
Log.i(tag, "Detecting cameras");
// Defaults 0/0/0
foundCameras = new AndroidCameras();
if (Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : has 2 cameras front=2; rear=1");
foundCameras.front = 2;
foundCameras.rear = 1;
foundCameras.defaultC = foundCameras.rear;
}
}
public int getNumberOfCameras() {
Log.i(tag, "Detecting the number of cameras");
if (Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : has 2 cameras");
return 2;
} else
return 1;
}
public int getCameraOrientation(int cameraId) {
// Use hacks to guess orientation of the camera
if (Hacks.isGalaxySOrTab() && !isFrontCamera(cameraId)) {
Log.d(tag, "Hack Galaxy S : rear camera mounted landscape");
// mounted in landscape for a portrait phone orientation
// |^^^^^^^^|
// | ____ |
// | |____| |
// | |
// | |
// | Phone |
// |________|
return 90;
}
return 0;
}
public boolean isFrontCamera(int cameraId) {
// Use hacks to guess facing of the camera
if (cameraId == 2 && Hacks.isGalaxySOrTab()) {
Log.d(tag, "Hack Galaxy S : front camera has id=2");
return true;
}
return false;
}
}

View file

@ -20,14 +20,21 @@ package org.linphone.core.video;
import android.hardware.Camera;
class AndroidCameraConf9 extends AndroidCameraConf {
class AndroidCameraConf9 implements AndroidCameraConf {
private AndroidCameras foundCameras;
public AndroidCameras getFoundCameras() {return foundCameras;}
public AndroidCameraConf9() {
foundCameras = new AndroidCameras();
public void findFrontAndRearCameraIds9(Integer frontCameraId, Integer rearCameraId, Integer cameraId) {
for (int id=0; id < getNumberOfCameras(); id++) {
if (foundCameras.defaultC == null)
foundCameras.defaultC = id;
if (isFrontCamera(id)) {
frontCameraId = id;
foundCameras.front = id;
} else {
rearCameraId = id;
foundCameras.rear = id;
}
}
}
@ -39,7 +46,7 @@ class AndroidCameraConf9 extends AndroidCameraConf {
public int getCameraOrientation(int cameraId) {
android.hardware.Camera.CameraInfo info = new android.hardware.Camera.CameraInfo();
Camera.getCameraInfo(cameraId, info);
return info.orientation;
return (info.orientation - 90) %360;
}
public boolean isFrontCamera(int cameraId) {
@ -47,4 +54,5 @@ class AndroidCameraConf9 extends AndroidCameraConf {
Camera.getCameraInfo(cameraId, info);
return info.facing == android.hardware.Camera.CameraInfo.CAMERA_FACING_FRONT ? true : false;
}
}

View file

@ -63,23 +63,18 @@ public class AndroidCameraRecordManager {
public int getPhoneOrientation() {return phoneOrientation;}
public void setPhoneOrientation(int degrees) {this.phoneOrientation = degrees;}
private int frontCameraId;
private int rearCameraId;
// singleton
private AndroidCameraRecordManager() {
cc = Version.sdkAboveOrEqual(9) ? new AndroidCameraConf9() : new AndroidCameraConf();
int[] fId = {-1};int[] rId = {-1};int[] cId = {-1};
cc.findFrontAndRearCameraIds(fId, rId, cId);
frontCameraId=fId[0];rearCameraId=rId[0];cameraId=cId[0];
cc = Version.sdkAboveOrEqual(9) ? new AndroidCameraConf9() : new AndroidCameraConf5();
cameraId = cc.getFoundCameras().defaultC;
}
public boolean hasSeveralCameras() {
return frontCameraId != rearCameraId;
return cc.getFoundCameras().hasSeveralCameras();
}
@ -93,7 +88,7 @@ public class AndroidCameraRecordManager {
public boolean toggleUseFrontCamera() {
boolean previousUseFront = cc.isFrontCamera(cameraId);
cameraId = previousUseFront ? rearCameraId : frontCameraId;
cameraId = previousUseFront ? cc.getFoundCameras().rear : cc.getFoundCameras().front;
if (parameters != null) {
parameters.cameraId = cameraId;

@ -1 +1 @@
Subproject commit 1b5b4827539f56c24b250ebca744ffb886390c3d
Subproject commit ceb6cd501759164d34c56d142c38dfbefdc7ad73

@ -1 +1 @@
Subproject commit 52e11ce3436eab7a8a344d34bef564ff2a9d0a6e
Subproject commit 2e10820e9c32fe75f049308d69e4164b46bc0d1a