Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package bguproject.vlc;
- import android.app.Activity;
- import android.content.Intent;
- import android.content.pm.PackageManager;
- import android.hardware.Camera;
- import android.net.Uri;
- import android.os.Bundle;
- import android.os.SystemClock;
- import android.view.View;
- import android.widget.FrameLayout;
- import android.widget.ScrollView;
- public class MainActivity extends Activity implements View.OnClickListener{
- private Camera mCamera = null;
- private CameraView mCameraView = null;
- private int fpsRate[] = new int[2];
- private boolean work = true,receiving = false;
- private boolean send = false;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- Logger l = Logger.getInstance(this); //create the logger instance
- Logger.Log("Starting VLC app...");
- try{
- bguproject.vlc.Logger.Log("\tAccessing camera...");
- mCamera = Camera.open();//you can use open(int) to use different cameras
- } catch (Exception e){
- bguproject.vlc.Logger.LogError("\tFailed to get camera: " + e.getMessage());
- }
- bguproject.vlc.Logger.Log("\tDone!\n\tCreating camera preview...");
- if(mCamera != null) {
- mCameraView = new CameraView(this, mCamera);//create a SurfaceView to show camera data
- FrameLayout camera_view = (FrameLayout)findViewById(R.id.camera_view);
- camera_view.addView(mCameraView);//add the SurfaceView to the layout
- }
- bguproject.vlc.Logger.Log("\tDone!");
- bguproject.vlc.Logger.Log("Accessing flashlight...");
- if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)) {
- bguproject.vlc.Logger.Log("\tDone!");
- }else Logger.Log("No flashlight access!");
- android.hardware.Camera.Parameters p = mCamera.getParameters();
- Camera.Size previewSize = p.getPreviewSize();
- p.setPreviewFpsRange(14000, 14000); // Camera frame rate (in thousands)
- mCamera.setParameters(p);
- p.getPreviewFpsRange(fpsRate);
- // Disable camera auto adjustments
- if(p.isAutoWhiteBalanceLockSupported()) {
- p.setAutoWhiteBalanceLock(true);
- bguproject.vlc.Logger.Log("Auto white balance is set to: off");
- }
- if(p.isAutoExposureLockSupported()) {
- p.setAutoExposureLock(true);
- bguproject.vlc.Logger.Log("Auto exposure is set to: off");
- }
- bguproject.vlc.Logger.Log("VLC app has started successfully!");
- bguproject.vlc.Logger.Log("Fps range: " + fpsRate[0] / 1000 + " to " + fpsRate[1] / 1000);
- bguproject.vlc.Logger.Log("Frame size: " + previewSize.width + " x " + previewSize.height);
- findViewById(R.id.btnCalibrate).setOnClickListener(this);
- findViewById(R.id.btnLog).setOnClickListener(this);
- findViewById(R.id.btnStop).setOnClickListener(this);
- findViewById(R.id.btnSend).setOnClickListener(this);
- Runnable r = new Runnable() {
- @Override
- public void run() {
- while (work) { // Thread running constantly waiting for received frames
- receiving = mCameraView.list.finishedFrame;
- if (receiving) {
- //mCameraView.firstLightSearch=true;
- receiving=false;
- openWeb(mCameraView.list.url);
- //View.OnFocusChangeListener(); mCameraView.firstLightSearch=true;
- }
- }
- }
- };
- Thread runThread = new Thread(r);
- runThread.start();
- }
- @Override
- public void onClick(View view) {
- switch (view.getId()){
- case R.id.btnCalibrate:
- mCameraView.Calibrate();
- break;
- case R.id.btnLog:
- View scr = findViewById(R.id.scrLogger);
- View btn = findViewById(R.id.btnSend);
- ScrollView scroll = (ScrollView) findViewById(R.id.scrLogger);
- if(scr.getVisibility()==view.VISIBLE) {
- btn.setVisibility(view.GONE);
- scr.setVisibility(view.GONE);
- }
- else {
- btn.setVisibility(view.VISIBLE);
- scroll.fullScroll(View.FOCUS_DOWN);
- scr.setVisibility(view.VISIBLE);
- }
- break;
- case R.id.btnStop:
- android.os.Process.killProcess(android.os.Process.myPid());
- //this.finishAffinity();
- //System.exit(0);
- break;
- case R.id.btnSend:
- Camera.Parameters p =mCamera.getParameters();
- if(this.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH)){
- light(p);
- /*if (send == true) {
- //work=true;
- light(p,send);
- send = false;
- }
- else {
- //work = false;
- light(p,send);
- send = true;
- }*/
- } else Logger.Log("Access to LED is not available");
- break;
- }
- }
- public void openWeb(String url) {
- String fullUrl = "http://bit.do/"+url;
- Uri webpage = Uri.parse(fullUrl);
- Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
- if (intent.resolveActivity(getPackageManager()) != null)
- startActivity(intent);
- }
- public void light(final Camera.Parameters p){
- Runnable r = new Runnable() {
- @Override
- public void run() {
- // Thread running constantly waiting for received frames
- for(int i=0;i<500;i++) {
- p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- mCamera.setParameters(p); //0
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
- mCamera.setParameters(p); //1
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- mCamera.setParameters(p); //0
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
- mCamera.setParameters(p); //1
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
- mCamera.setParameters(p); //1
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- mCamera.setParameters(p); //0
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_TORCH);
- mCamera.setParameters(p); //1
- SystemClock.sleep(143);
- p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- mCamera.setParameters(p); //0
- SystemClock.sleep(143);
- }
- }
- };
- Thread lightThread = new Thread(r);
- lightThread.start();
- /*else{
- Logger.Log("Off");
- p.setFlashMode(Camera.Parameters.FLASH_MODE_OFF);
- mCamera.setParameters(p);
- }*/
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement