private void ExtractFile(ZipFile zipFile, ZipEntry zipEntry, string tempFileName) { InputStream s = zipFile.getInputStream(zipEntry); try { FileOutputStream dest = new FileOutputStream(tempFileName); try { int len = 0; sbyte[] buffer = new sbyte[7168]; while ((len = s.read(buffer)) >= 0) { dest.write(buffer, 0, len); } } finally { dest.close(); } } finally { s.close(); } }
private void saveBytecode(String className, byte[] bytecode) { var generatedPath = PathHelper.combine(System.getProperty("user.dir"), "Tests/resources/TypeBuilderTest/stab"); var generatedDir = new File(generatedPath); if (!generatedDir.exists()) { generatedDir.mkdir(); } var stream = new FileOutputStream(PathHelper.combine(generatedPath, className + ".class")); stream.write(bytecode); stream.close(); }
public static File InternalTakePicture(int num = 0) { var DIRECTORY_DCIM = global::android.os.Environment.DIRECTORY_DCIM; var path = global::android.os.Environment.getExternalStoragePublicDirectory(DIRECTORY_DCIM).getAbsolutePath(); path += "/Camera"; //var SAVE_PATH = android.os.Environment.getExternalStoragePublicDirectory( // android.os.Environment.DIRECTORY_PICTURES //) + "/"; var n = DateTime.Now; var f = new File(path + "/shot" + n.Ticks + ".jpg"); //I/System.Console(31472): enter TakePicture //W/CameraService( 128): CameraService::connect X (pid 31472) rejected (existing client). //I/System.Console(31472): error takePicture { Message = Fail to connect to camera service, StackTrace = java.lang.RuntimeException: Fail to connect to camera service //I/System.Console(31472): at android.hardware.Camera.native_setup(Native Method) //I/System.Console(31472): at android.hardware.Camera.<init>(Camera.java:340) //I/System.Console(31472): at android.hardware.Camera.open(Camera.java:302) var camera = android.hardware.Camera.open(num); // W/CameraService( 128): CameraService::connect X (pid 2499) rejected (existing client). //D/dalvikvm( 2499): GC_CONCURRENT freed 873K, 12% free 7525K/8544K, paused 4ms+4ms, total 59ms //D/dalvikvm( 2499): WAIT_FOR_CONCURRENT_GC blocked 14ms //I/System.Console( 2499): error takePicture { Message = Fail to connect to camera service, StackTrace = java.lang.RuntimeException: Fail to connect to camera service //I/System.Console( 2499): at android.hardware.Camera.native_setup(Native Method) //I/System.Console( 2499): at android.hardware.Camera.<init>(Camera.java:340) //I/System.Console( 2499): at android.hardware.Camera.open(Camera.java:302) //I/System.Console( 2499): at CameraExperiment.foo.InternalTakePicture(foo.java:65) var p = camera.getParameters(); p.setRotation(0); //camera.stopFaceDetection(); var s = p.getSupportedPictureSizes(); var min = default(android.hardware.Camera.Size); for (int i = 0; i < s.size(); i++) { var size = (android.hardware.Camera.Size)s.get(i); // I/System.Console( 6058): before takePicture { f = /mnt/sdcard/Pictures/shot.jpg } //I/System.Console( 6058): { size = android.hardware.Camera$Size@4fde180 } System.Console.WriteLine(new { size.width, size.height }); if (min == null) min = size; else if (min.width > size.width) min = size; } System.Console.WriteLine("before setPictureSize "); p.setPictureSize(min.width, min.height); //E/CameraHardwareSec( 84): android::status_t android::CameraHardwareSec::setSceneModeParameter(const android::CameraParameters&): unmatched focus_mode(continuous-picture) //E/CameraHardwareSec( 84): virtual android::status_t android::CameraHardwareSec::setParameters(const android::CameraParameters&): Failed to setting scene mode var focusModes = p.getSupportedFocusModes(); var NextFocus = android.hardware.Camera.Parameters.FOCUS_MODE_FIXED; for (int i = 0; i < focusModes.size(); i++) { var focusMode = (string)focusModes.get(i); if (focusMode == android.hardware.Camera.Parameters.FOCUS_MODE_INFINITY) NextFocus = android.hardware.Camera.Parameters.FOCUS_MODE_INFINITY; System.Console.WriteLine(new { focusMode }); } // I/System.Console(31232): before setPictureSize //I/System.Console(31232): { focusMode = fixed } //I/System.Console(31232): before setFocusMode //E/NvOmxCameraSettingsParser( 128): Failed substring capabilities check, unsupported parameter: 'infinity', original: fixed //E/NvOmxCameraSettingsParser( 128): extractChanges: Invalid parameter! //E/NvOmxCamera( 128): setParameters: Invalid parameters //I/System.Console(31232): error takePicture { Message = setParameters failed, StackTrace = java.lang.RuntimeException: setParameters failed // { focusMode = auto } // { focusMode = infinity } // { focusMode = macro } // before setFocusMode //9): android::status_t android::CameraHardwareSec::setSceneModeParameter(const android::CameraParameters&): unmatched focus_mode(fixed) //9): virtual android::status_t android::CameraHardwareSec::setParameters(const android::CameraParameters&): Failed to setting scene mode // error takePicture { Message = setParameters failed, StackTrace = java.lang.RuntimeException: setParameters failed // at android.hardware.Camera.native_setParameters(Native Method) // at android.hardware.Camera.setParameters(Camera.java:950) // at CameraExperiment.foo.InternalTakePicture(foo.java:105) // E/SecCamera( 84): ERR(int android::fimc_v4l2_s_ctrl(int, unsigned int, unsigned int)):VIDIOC_S_CTRL(id = 0x800005b (91), value = 0) failed ret = -1 //E/SecCamera( 84): ERR(int android::SecCamera::setFaceDetect(int)):Fail on V4L2_CID_CAMERA_FACE_DETECTION //E/SecCamera( 84): ERR(int android::fimc_v4l2_s_ctrl(int, unsigned int, unsigned int)):VIDIOC_S_CTRL(id = 0x8000063 (99), value = 6) failed ret = -1 //E/SecCamera( 84): ERR(int android::SecCamera::setFocusMode(int)):Fail on V4L2_CID_CAMERA_FOCUS_MODE //E/CameraHardwareSec( 84): android::status_t android::CameraHardwareSec::setSceneModeParameter(const android::CameraParameters&): mSecCamera->setFocusMode(6) fail //E/CameraHardwareSec( 84): virtual android::status_t android::CameraHardwareSec::setParameters(const android::CameraParameters&): Failed to setting scene mode //E/SecCamera( 84): ERR(int android::fimc_v4l2_s_ctrl(int, unsigned int, unsigned int)):VIDIOC_S_CTRL(id = 0x800006c (108), value = 1) failed ret = -1 //E/SecCamera( 84): ERR(int android::SecCamera::setBatchReflection()):Fail on V4L2_CID_CAMERA_BATCH_REFLECTION //E/CameraHardwareSec( 84): ERR(virtual android::status_t android::CameraHardwareSec::setParameters(const android::CameraParameters&)):Fail on mSecCamera->setBatchCmd System.Console.WriteLine("before setFocusMode " + new { NextFocus }); //p.setFocusMode(android.hardware.Camera.Parameters.FOCUS_MODE_INFINITY); p.setFocusMode(NextFocus); // E/SecCamera( 84): ERR(int android::fimc_poll(pollfd*)):No data in 10 secs.. //I/ShotSingle( 84): CAMERA_MSG_COMPRESSED_IMAGE camera.setParameters(p); // http://stackoverflow.com/questions/9744790/android-possible-to-camera-capture-without-a-preview var b = new EventWaitHandle(false, EventResetMode.ManualReset); System.Console.WriteLine("before startPreview "); Action done = delegate { }; try { // #5 java.lang.RuntimeException: Can't create handler inside thread that has not called Looper.prepare() (ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext as Activity).With( aa => { aa.runOnUiThread( new f { y = delegate { try { // D/Camera ( 2464): app passed NULL surface System.Console.WriteLine("before getHolder "); // the nexus 7 and droid x both don't support the passing of a dummy surfaceview to a camera object. Your response that all camera things must created in the activity is false. I was able to instantiate a camera within a thread by passing it a view just fine. // here, the unused surface view and holder var dummy = new SurfaceView(ScriptCoreLib.Android.ThreadLocalContextReference.CurrentContext); // missing for android 2.2 //dummy.setScaleX(0f); //dummy.setScaleY(0f); var h = dummy.getHolder(); // http://developer.android.com/reference/android/view/SurfaceHolder.html#SURFACE_TYPE_PUSH_BUFFERS var SURFACE_TYPE_PUSH_BUFFERS = 0x00000003; h.setType(SURFACE_TYPE_PUSH_BUFFERS); h.addCallback( new XSurfaceHolder_Callback { yield_surfaceCreated = delegate { System.Console.WriteLine("at yield_surfaceCreated "); try { camera.setPreviewDisplay(h); camera.startPreview(); System.Console.WriteLine("after startPreview "); b.Set(); } catch { throw; } } } ); //h.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); aa.addContentView(dummy, new android.widget.LinearLayout.LayoutParams( android.widget.LinearLayout.LayoutParams.WRAP_CONTENT, android.widget.LinearLayout.LayoutParams.WRAP_CONTENT ) ); done = delegate { aa.runOnUiThread( new f { y = delegate { // https://groups.google.com/forum/?fromgroups#!topic/android-developers/liph4z9LnFA // how to Orphanize?? dummy.setVisibility(View.GONE); } } ); }; } catch { throw; } } } ); } ); } catch { throw; } b.WaitOne(); //camera.@lock(); var a = new EventWaitHandle(false, EventResetMode.ManualReset); //var b = new EventWaitHandle(false, EventResetMode.ManualReset); // E/SecCamera( 84): ERR(int android::fimc_v4l2_s_ctrl(int, unsigned int, unsigned int)):VIDIOC_S_CTRL(id = 0x800005d (93), value = 1) failed ret = -1 //E/SecCamera( 84): ERR(int android::SecCamera::setAutofocus()):Fail on V4L2_CID_CAMERA_SET_AUTO_FOCUS //E/CameraHardwareSec( 84): ERR(int android::CameraHardwareSec::autoFocusThread()):Fail on mSecCamera->setAutofocus() //System.Console.WriteLine("before autoFocus " + new { f }); //// //camera.autoFocus( // new XAutoFocus // { // yield = delegate // { // System.Console.WriteLine("at autoFocus " + new { f }); // https://github.com/mozilla-b2g/android-device-crespo/blob/master/libcamera/SecCamera.cpp // E/SecCamera( 84): ERR(int android::fimc_poll(pollfd*)):No data in 10 secs.. //I/ShotSingle( 84): CAMERA_MSG_COMPRESSED_IMAGE //D/dalvikvm( 6608): GC_FOR_MALLOC freed 607K, 58% free 2856K/6727K, external 2013K/2108K, paused 18ms //I/dalvikvm-heap( 6608): Grow heap (frag case) to 7.847MB for 614416-byte allocation //D/dalvikvm( 6608): GC_FOR_MALLOC freed 46K, 54% free 3410K/7367K, external 2013K/2108K, paused 13ms //I/System.Console( 6608): enter XCameraPictureCallback { Length = 0 } //I/System.Console( 6608): exit XCameraPictureCallback //for (int i = 0; i < 11; i++) //{ // System.Console.WriteLine("warming up camera machine... " + i); // Thread.Sleep(1000); //} // http://stackoverflow.com/questions/15279911/using-camera-without-preview-or-surface-in-android // http://handycodeworks.com/?p=19 // you are required to call startPreview() first before calling takePicture() System.Console.WriteLine("before takePicture " + new { f }); camera.setErrorCallback( new XErrorCallback { yield = (err, c) => { System.Console.WriteLine(new { err }); } } ); // preview ready? var at_setPreviewCallback = new EventWaitHandle(false, EventResetMode.ManualReset); System.Console.WriteLine("before setPreviewCallback "); // is this of any use? camera.setOneShotPreviewCallback( new XCameraPreviewCallback { yield = delegate { at_setPreviewCallback.Set(); } } ); at_setPreviewCallback.WaitOne(); System.Console.WriteLine("after setPreviewCallback "); Thread.Sleep(150); camera.takePicture( null, null, new XCameraPictureCallback { yield = (data, c) => { System.Console.WriteLine("enter XCameraPictureCallback " + new { data.Length }); if (data.Length > 0) { var bmp = BitmapFactory.decodeByteArray(data, 0, data.Length); File directory = new File(path); directory.mkdirs(); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.JPEG, 100, bytes); try { f.createNewFile(); FileOutputStream fo = new FileOutputStream(f); fo.write(bytes.toByteArray()); } catch { throw; } } System.Console.WriteLine("exit XCameraPictureCallback"); camera.release(); done(); //[javac] V:\src\CameraExperiment\ApplicationWebService___c__DisplayClass2.java:54: cannot find symbol //[javac] symbol : method Set() //[javac] location: class ScriptCoreLibJava.BCLImplementation.System.Threading.__AutoResetEvent //[javac] this.a.Set(); //[javac] ^ a.Set(); } } ); // I/System.Console( 6264): before takePicture { f = /mnt/sdcard/Pictures/shot.jpg } //I/System.Console( 6264): { width = 2560, height = 1920 } //I/System.Console( 6264): { width = 2560, height = 1536 } //I/System.Console( 6264): { width = 2048, height = 1536 } //I/System.Console( 6264): { width = 2048, height = 1232 } //I/System.Console( 6264): { width = 1600, height = 1200 } //I/System.Console( 6264): { width = 1600, height = 960 } //I/System.Console( 6264): { width = 800, height = 480 } //I/System.Console( 6264): { width = 640, height = 480 } //I/ShotSingle( 84): ShotSingle::takePicture start //I/ShotSingle( 84): ShotSingle::takePicture end //I/System.Console( 6264): after takePicture // } // } //); System.Console.WriteLine("will wait for takePicture to complete ... " + new { f }); a.WaitOne(); return f; }
protected override void onCreate(Bundle savedInstanceState) { base.onCreate(savedInstanceState); var sv = new ScrollView(this); var ll = new LinearLayout(this); //ll.setOrientation(LinearLayout.VERTICAL); sv.addView(ll); var b = new Button(this); ll.addView(b); var p = new Preview(this); b.WithText("take a picture"); p.oncamera = camera => b.AtClick( v => { camera.takePicture(null, null, new takePicture_handler { handler = data => { b.WithText("at click"); try { // http://stackoverflow.com/questions/11874273/android-nexus-7-jelly-bean-startpreview-takepicture-calling-getcamerastereomode //E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoMode(NvxComponent*, NvOmxCameraUserStereoMode&): Error: invalid NVX mode 0. //E/NvOmxCamera( 126): OMX_ERRORTYPE android::NvOmxCamera::getCameraStereoModeAndCaptureInfo(NvxComponent*, NvOmxCameraUserStereoMode&, NVX_STEREOCAPTUREINFO&): getCameraStereoMode failed with 0x00000000 //D/NvOsDebugPrintf( 126): NvMMLiteJPEGEncSetAttribute: Incorrect value 0 for stereo capture type //E/NvOmxCameraSettings( 126): OMX_ERRORTYPE android::programStereoInfo(OMX_HANDLETYPE, const NVX_STEREOCAPTUREINFO&, android::NvxWrappers*): pNvxWrappers->OMX_SetConfigIL failed with 0x80001005 //D/NvOsDebugPrintf( 126): Tryproc: INBuffer-Values of Width and Height 1280 960 //D/dalvikvm(29535): GC_FOR_ALLOC freed 6686K, 52% free 7716K/15943K, paused 25ms, total 27ms var SAVE_PATH = android.os.Environment.getExternalStoragePublicDirectory( android.os.Environment.DIRECTORY_PICTURES ); SAVE_PATH.mkdirs(); var bmp = android.graphics.BitmapFactory.decodeByteArray(data, 0, data.Length); ByteArrayOutputStream bytes = new ByteArrayOutputStream(); bmp.compress(android.graphics.Bitmap.CompressFormat.JPEG, 100, bytes); File f = new File(SAVE_PATH.ToString() + "/hello2.jpg"); f.createNewFile(); FileOutputStream fo = new FileOutputStream(f); fo.write(bytes.toByteArray()); Intent intent = new Intent(); intent.setAction(android.content.Intent.ACTION_VIEW); var imgUri = android.net.Uri.fromFile(f); intent.setDataAndType(imgUri, "image/*"); b.WithText("done!"); startActivity(intent); } // Error 1 The type caught or thrown must be derived from System.Exception y:\jsc.svn\examples\java\android\AndroidCameraActivity\AndroidCameraActivity\ApplicationActivity.cs 154 52 AndroidCameraActivity catch (Exception ex) { b.WithText("saving.. error! " + ex.Message); //throw; } } } ); } ); this.setContentView(p); this.addContentView(sv, new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)); }
public static File extractResource(Class cls, string name, File directory, string prefix, string suffix) { InputStream resourceAsStream = cls.getResourceAsStream(name); if (resourceAsStream == null) return (File) null; File file = (File) null; int num1 = 0; IOException ioException1; try { if (prefix == null && suffix == null) { File.__\u003Cclinit\u003E(); file = new File(directory, new File(name).getName()); num1 = file.exists() ? 1 : 0; } else file = File.createTempFile(prefix, suffix, directory); FileOutputStream fileOutputStream = new FileOutputStream(file); byte[] numArray = new byte[resourceAsStream.available()]; int num2; while ((num2 = resourceAsStream.read(numArray)) > 0) fileOutputStream.write(numArray, 0, num2); resourceAsStream.close(); fileOutputStream.close(); goto label_14; } catch (IOException ex) { int num2 = 1; ioException1 = (IOException) ByteCodeHelper.MapException<IOException>((Exception) ex, (ByteCodeHelper.MapFlags) num2); } IOException ioException2 = ioException1; if (file != null && num1 == 0) file.delete(); throw Throwable.__\u003Cunmap\u003E((Exception) ioException2); label_14: return file; }
public int run(String[] arguments) { sourceFiles.clear(); if (!handleArguments(arguments)) { return 1; } var t0 = System.nanoTime(); try { var results = new Compiler().compileFromFiles(parameters, sourceFiles.toArray(new File[sourceFiles.size()])); var hasErrors = false; foreach (var error in results.Errors) { var filename = error.Filename; if (filename != null) { System.out.print(new File(error.Filename).getAbsolutePath()); } else { System.out.print("Unknown source"); } if (error.Line > 0) { System.out.print(" ("); System.out.print(error.Line); if (error.Column > 0) { System.out.print(", "); System.out.print(error.Column); } System.out.print(")"); } if (error.Level == 0) { hasErrors = true; System.out.print(" error "); } else { System.out.print(" warning "); } System.out.print(error.Id); System.out.print(": "); System.out.println(error.Message); } if (!hasErrors) { var outputFile = new File(outputPath); if (outputFile.isDirectory() || outputPath.endsWith("\\") || outputPath.endsWith("/")) { foreach (var e in results.ClassFiles.entrySet()) { var file = new File(outputFile, e.Key.replace('.', '/') + ".class"); var dir = file.getParentFile(); if (!dir.exists()) { dir.mkdirs(); } using (var s = new FileOutputStream(file)) { s.write(e.Value); } } } else { var destination = outputPath; if (PathHelper.getExtension(destination).length() == 0) { destination += ".jar"; } using (var zipStream = new ZipOutputStream(new FileOutputStream(destination))) { if (manifestPath != null) { var zipEntry = new ZipEntry("META-INF/MANIFEST.MF"); zipStream.putNextEntry(zipEntry); var buffer = new byte[4096]; var inputStream = new FileInputStream(manifestPath); int read; while ((read = inputStream.read(buffer)) != -1) { zipStream.write(buffer, 0, read); } inputStream.close(); } if (resourcesPath != null) { var rootDir = new File(resourcesPath); foreach (var content in rootDir.list()) { var file = new File(rootDir, content); if (file.isDirectory()) { exploreDirectory(zipStream, "", file); } else { addEntry(zipStream, "", file); } } } foreach (var e in results.ClassFiles.entrySet()) { var zipEntry = new ZipEntry(e.Key.replace('.', '/') + ".class"); zipStream.putNextEntry(zipEntry); zipStream.write(e.Value); } } } System.out.println(); System.out.println(String.format("%d class(es) successfully generated in %.2fs", results.classFiles.size(), (System.nanoTime() - t0) / 1e9)); return 0; } else { System.out.println(); System.out.println("Compilation failed"); return 1; } } catch (TypeLoadException e) { System.out.println("Cannot find type " + e.TypeName + ". The class is missing from the classpath."); System.out.println("Compilation failed"); return 1; } }