1 package com.intel.realsense.multicam;
3 import android.Manifest;
4 import android.content.Context;
5 import android.content.pm.PackageManager;
6 import android.os.Bundle;
7 import android.os.Handler;
8 import androidx.core.app.ActivityCompat;
9 import androidx.core.content.ContextCompat;
10 import androidx.appcompat.app.AppCompatActivity;
11 import android.util.Log;
12 import android.view.View;
26 import java.util.ArrayList;
29 private static final String TAG =
"librs multicam example";
36 private final Handler
mHandler =
new Handler();
44 protected void onCreate(Bundle savedInstanceState) {
45 super.onCreate(savedInstanceState);
46 setContentView(
R.layout.activity_main);
48 mAppContext = getApplicationContext();
49 mGLSurfaceView = findViewById(
R.id.glSurfaceView);
50 mGLSurfaceView.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LOW_PROFILE
51 | View.SYSTEM_UI_FLAG_FULLSCREEN
52 | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
53 | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
54 | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
55 | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);
58 if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.O &&
59 ContextCompat.checkSelfPermission(
this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
64 mPermissionsGranted =
true;
70 mGLSurfaceView.
close();
75 if (ContextCompat.checkSelfPermission(
this, Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
79 mPermissionsGranted =
true;
85 if(mPermissionsGranted)
88 Log.e(TAG,
"missing permissions");
95 if(mRsContext != null)
108 mPipelines =
new ArrayList<>();
109 mColorizers =
new ArrayList<>();
116 public void onDeviceAttach() {
121 public void onDeviceDetach() {
126 Runnable mStreaming =
new Runnable() {
130 for(
int i = 0;
i < mPipelines.size();
i++) {
133 mGLSurfaceView.
upload(processed);
137 if (mPipelines.size() > 0)
138 mHandler.post(mStreaming);
140 catch (Exception
e) {
141 Log.e(TAG,
"streaming, error: " + e.getMessage());
147 for(
int i = 0;
i < mPipelines.size();
i++) {
167 for (
int i = 0;
i < devCount;
i++)
175 Log.d(TAG,
"try start streaming");
177 mHandler.post(mStreaming);
178 mGLSurfaceView.
clear();
179 Log.d(TAG,
"streaming started successfully");
180 }
catch (Exception
e) {
181 Log.d(TAG,
"failed to start streaming");
182 mGLSurfaceView.
clear();
186 private synchronized void stop() {
188 Log.d(TAG,
"try stop streaming");
190 mHandler.removeCallbacks(mStreaming);
206 mGLSurfaceView.
clear();
207 Log.d(TAG,
"streaming stopped successfully");
210 Log.d(TAG,
"closed devices list successfully");
211 }
catch (Exception
e) {
212 Log.d(TAG,
"failed to stop streaming");
String getInfo(CameraInfo info)
static final int PERMISSIONS_REQUEST_CAMERA
::rosgraph_msgs::Log_< std::allocator< void > > Log
uvc_xu_option< int > super
synchronized void setDevicesChangedCallback(DeviceListener listener)
void onRequestPermissionsResult(int requestCode, String permissions[], int[] grantResults)
boolean mPermissionsGranted
synchronized void start()
::std_msgs::String_< std::allocator< void > > String
static void init(Context context)
void onCreate(Bundle savedInstanceState)
synchronized void restart()
ArrayList< Colorizer > mColorizers
def run(include_folder_path, addon_folder_path)
ArrayList< Pipeline > mPipelines
GLRsSurfaceView mGLSurfaceView
DeviceList queryDevices()
Device createDevice(int index)