diff --git a/AndroidManifest.xml b/AndroidManifest.xml index d98335f..aeb2447 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -14,6 +14,7 @@ * See the License for the specific language governing permissions and * limitations under the License. --> + diff --git a/assets/data/gfx/gui/PBCrichton_Flat_Button.png b/assets/data/gfx/gui/PBCrichton_Flat_Button.png new file mode 100644 index 0000000..263c93e Binary files /dev/null and b/assets/data/gfx/gui/PBCrichton_Flat_Button.png differ diff --git a/project.properties b/project.properties index a5578ba..4a8b7a0 100644 --- a/project.properties +++ b/project.properties @@ -9,3 +9,4 @@ # Project target. target=android-19 +android.library.reference.1=../../../../../workspace/OpenCV Library - 2.4.7 diff --git a/res/values-es/strings.xml b/res/values-es/strings.xml new file mode 100644 index 0000000..a6b32aa --- /dev/null +++ b/res/values-es/strings.xml @@ -0,0 +1,21 @@ + + + + NxtAR + No se pudo inicializar OpenCV + OpenCV inicializado con exito + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 3766e58..a7c755b 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -16,4 +16,6 @@ --> NxtAR + Failed to initialize OpenCV + OpenCV initialized successfully \ No newline at end of file diff --git a/src/ve/ucv/ciens/ccg/nxtar/MainActivity.java b/src/ve/ucv/ciens/ccg/nxtar/MainActivity.java index bd100b0..2c74816 100644 --- a/src/ve/ucv/ciens/ccg/nxtar/MainActivity.java +++ b/src/ve/ucv/ciens/ccg/nxtar/MainActivity.java @@ -15,9 +15,16 @@ */ package ve.ucv.ciens.ccg.nxtar; +import org.opencv.android.BaseLoaderCallback; +import org.opencv.android.CameraBridgeViewBase.CvCameraViewListener; +import org.opencv.android.LoaderCallbackInterface; +import org.opencv.android.OpenCVLoader; +import org.opencv.core.Mat; + import ve.ucv.ciens.ccg.nxtar.interfaces.MulticastEnabler; import ve.ucv.ciens.ccg.nxtar.interfaces.Toaster; import android.content.Context; +import android.content.pm.ActivityInfo; import android.net.wifi.WifiManager; import android.net.wifi.WifiManager.MulticastLock; import android.os.Bundle; @@ -27,8 +34,9 @@ import android.widget.Toast; import com.badlogic.gdx.Gdx; import com.badlogic.gdx.backends.android.AndroidApplication; import com.badlogic.gdx.backends.android.AndroidApplicationConfiguration; +import com.badlogic.gdx.controllers.mappings.Ouya; -public class MainActivity extends AndroidApplication implements Toaster, MulticastEnabler{ +public class MainActivity extends AndroidApplication implements Toaster, MulticastEnabler, CvCameraViewListener{ private static final String TAG = "NXTAR_ANDROID_MAIN"; private static final String CLASS_NAME = MainActivity.class.getSimpleName(); @@ -36,11 +44,21 @@ public class MainActivity extends AndroidApplication implements Toaster, Multica private MulticastLock multicastLock; private Handler uiHandler; private Context uiContext; + private boolean ocvOn; + private BaseLoaderCallback loaderCallback; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); + ocvOn = false; + + if(!Ouya.runningOnOuya){ + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT); + }else{ + setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); + } + uiHandler = new Handler(); uiContext = this; wifiManager = (WifiManager)getSystemService(Context.WIFI_SERVICE); @@ -51,6 +69,23 @@ public class MainActivity extends AndroidApplication implements Toaster, Multica cfg.useCompass = false; cfg.useWakelock = true; + loaderCallback = new BaseLoaderCallback(this){ + @Override + public void onManagerConnected(int status){ + switch(status){ + case LoaderCallbackInterface.SUCCESS: + ocvOn = true; + Toast.makeText(uiContext, R.string.ocv_success, Toast.LENGTH_LONG).show(); + break; + default: + Toast.makeText(uiContext, R.string.ocv_failed, Toast.LENGTH_LONG).show(); + Gdx.app.exit(); + break; + } + } + }; + + OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_7, this, loaderCallback); initialize(new NxtARCore(this), cfg); } @@ -82,7 +117,7 @@ public class MainActivity extends AndroidApplication implements Toaster, Multica ///////////////////////////////////////// @Override public void enableMulticast(){ - Gdx.app.debug(TAG, CLASS_NAME + ".enableMulticast() :: Requesting multicast lock."); + Gdx.app.log(TAG, CLASS_NAME + ".enableMulticast() :: Requesting multicast lock."); multicastLock = wifiManager.createMulticastLock(TAG); multicastLock.setReferenceCounted(true); multicastLock.acquire(); @@ -90,10 +125,33 @@ public class MainActivity extends AndroidApplication implements Toaster, Multica @Override public void disableMulticast() { - Gdx.app.debug(TAG, CLASS_NAME + ".disableMulticast() :: Releasing multicast lock."); + Gdx.app.log(TAG, CLASS_NAME + ".disableMulticast() :: Releasing multicast lock."); if(multicastLock != null){ multicastLock.release(); multicastLock = null; } } + + ///////////////////////////////////////////// + // CvCameraViewListener interface methods. // + ///////////////////////////////////////////// + /** + *

This method does nothing. It is here because it must be implemented in order to use OpenCV.

+ */ + @Override + public void onCameraViewStarted(int width, int height){ } + + /** + *

This method does nothing. It is here because it must be implemented in order to use OpenCV.

+ */ + @Override + public void onCameraViewStopped(){ } + + /** + *

This method does nothing. It is here because it must be implemented in order to use OpenCV.

+ */ + @Override + public Mat onCameraFrame(Mat inputFrame){ + return null; + } } \ No newline at end of file