Skip to content

Commit

Permalink
[VisionGlass] Migrated to AliceIMU v2.0
Browse files Browse the repository at this point in the history
  • Loading branch information
svillar committed Dec 13, 2023
1 parent 8e01fe6 commit 16fd760
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 17 deletions.
29 changes: 13 additions & 16 deletions app/src/visionglass/java/com/igalia/wolvic/PlatformActivity.java
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,10 @@

import androidx.annotation.Keep;

import com.huawei.tool.Glass;
import com.huawei.usblib.GlassDisplayMode;
import com.huawei.usblib.IMUDevice;
import com.huawei.usblib.DisplayMode;
import com.huawei.usblib.DisplayModeCallback;
import com.huawei.usblib.VisionGlass;

import com.igalia.wolvic.utils.SystemUtils;

import java.util.ArrayList;
Expand All @@ -32,8 +33,6 @@
import javax.microedition.khronos.egl.EGLConfig;
import javax.microedition.khronos.opengles.GL10;

import com.huawei.usblib.IMUManager;

public class PlatformActivity extends ComponentActivity {
static String LOGTAG = SystemUtils.createLogtag(PlatformActivity.class);

Expand Down Expand Up @@ -86,39 +85,37 @@ protected void onCreate(Bundle savedInstanceState) {
Log.d(LOGTAG, "PlatformActivity onCreate");
super.onCreate(savedInstanceState);

IMUManager.init(getApplication());
HashMap<String, UsbDevice> a = IMUManager.getManager().getImuDevice().getUsbManager().getDeviceList();
a.forEach((key, value) -> Log.d(LOGTAG, "Found device " + key));
IMUDevice imuDevice = IMUManager.getManager().getImuDevice();
VisionGlass.getInstance().init(getApplication());

boolean wasImuStarted = false;
boolean isAskingForPermission = false;
do {
if (imuDevice.isConnected()) {
if (VisionGlass.getInstance().isConnected()) {
if (isAskingForPermission) {
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (imuDevice.hasUsbPermission()) {
if (VisionGlass.getInstance().hasUsbPermission()) {
Log.d(LOGTAG, "Device has USB permission -> registering callback for startImu");
wasImuStarted = true;
Glass.getInstance().startImu((w, x, y, z) -> queueRunnable(() -> setHead(x, y, z, w)));
VisionGlass.getInstance().startImu((w, x, y, z) -> queueRunnable(() -> setHead(x, y, z, w)));
} else {
Log.w(LOGTAG, "Device does not have USB permission -> asking");
imuDevice.requestUsbPermission();
VisionGlass.getInstance().requestUsbPermission();
isAskingForPermission = true;
}
} else {
// TODO: show a dialog asking the user to put on the glasses
Log.e(LOGTAG, "Device not connected" + (imuDevice.hasUsbPermission() ? " and does NOT have USB permissions" : ""));
Log.e(LOGTAG, "Device not connected" + (VisionGlass.getInstance().hasUsbPermission() ? " and does NOT have USB permissions" : ""));
}
} while (!wasImuStarted);

IMUManager.getManager().switchDisplayMode(GlassDisplayMode.Vr2d, new IMUManager.SwitchModeCallback() {
VisionGlass.getInstance().setDisplayMode(DisplayMode.vr2d, new DisplayModeCallback() {
@Override
public void switchSuccess() { Log.d(LOGTAG, "Successfully switched to 2D mode"); }
public void onSuccess(DisplayMode displayMode) { Log.d(LOGTAG, "Successfully switched to 2D mode"); }

@Override
public void onError(String s, int i) { Log.d(LOGTAG, "Error " + i + " failed to switch to 2D mode " + s); }
Expand Down
2 changes: 1 addition & 1 deletion third_party_hash
Original file line number Diff line number Diff line change
@@ -1 +1 @@
097ffc813946d2a16d2c513325db1e68a2621b35
7385a9db8c33ee5aeacdce0855c92205f0b37c90

0 comments on commit 16fd760

Please sign in to comment.