public void Open(int sizeId) { if (this._handle == 0) { Error.ThrowNativeException(ObjectDisposed); } if (sizeId < 0 || this._cameraInfo.SupportedPreviewSizes.Count < sizeId) { Error.ThrowNativeException(ArgumentOutOfRange); } int errorCode = Camera.OpenNative(this._handle, this._cameraInfo.SupportedPreviewSizes[sizeId]); if (errorCode < 0) { this.Close(); } else { CameraSize currentPreviewSize; errorCode = Camera.GetPreviewSizeNative(this._handle, out currentPreviewSize); if (errorCode < 0) { this.Close(); } else { this._currentPreviewSize = currentPreviewSize; CameraImageFormat currentPreviewImageFormat; errorCode = Camera.GetPreviewImageFormatNative(this._handle, out currentPreviewImageFormat); if (errorCode < 0) { this.Close(); } else { this._currentPreviewImageFormat = currentPreviewImageFormat; } } } }
private static extern int TakePictureNative(int handle, CameraSize size);
private static extern int GetPreviewSizeNative(int handle, out CameraSize size);
private static extern int OpenNative(int handle, CameraSize size);
private static extern int GetSupportedPictureSizeNative(int cameraId, int sizeId, out CameraSize size);