/*
The contents of this file are subject to the Mozilla Public License
Version 1.1 (the "License"); you may not use this file except in
compliance with the License. You may obtain a copy of the License at
http://www.mozilla.org/MPL/
Software distributed under the License is distributed on an "AS IS"
basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
License for the specific language governing rights and limitations
under the License.
The Original Code is collection of files collectively known as Open Camera.
The Initial Developer of the Original Code is Almalence Inc.
Portions created by Initial Developer are Copyright (C) 2013
by Almalence Inc. All Rights Reserved.
*/
/* <!-- +++
package com.almalence.opencam_plus;
import com.almalence.opencam_plus.cameracontroller.CameraController;
+++ --> */
// <!-- -+-
package com.almalence.opencam;
import com.almalence.opencam.cameracontroller.CameraController;
//-+- -->
import java.util.Date;
public abstract class PluginCapture extends Plugin
{
protected boolean inCapture;
protected boolean aboutToTakePicture = false;
protected int imagesTaken = 0;
protected int imagesTakenRAW = 0;
protected int resultCompleted = 0;
protected boolean isAllImagesTaken = false;
protected boolean isAllCaptureResultsCompleted = true; //Used only for camera2 mode when we wait all captureResult before send signal CAPTURE_FINISHED
//In camera1 mode always must be true!
public boolean getInCapture()
{
return inCapture;
}
public PluginCapture(String ID, int preferenceID, int advancedPreferenceID, int quickControlID,
String quickControlInitTitle)
{
super(ID, preferenceID, advancedPreferenceID, quickControlID, quickControlInitTitle);
}
public boolean muteSound()
{
return false;
}
@Override
public void addToSharedMemExifTags(byte[] frameData)
{
// frameData is jpeg array or null.
if (imagesTaken == 0)
{
if (frameData != null)
ApplicationScreen.getPluginManager().addToSharedMemExifTagsFromJPEG(frameData, SessionID, -1);
else
ApplicationScreen.getPluginManager().addToSharedMemExifTagsFromCamera(SessionID);
}
}
@Override
public void onResume()
{
inCapture = false;
aboutToTakePicture = false;
isAllImagesTaken = false;
isAllCaptureResultsCompleted = true;
}
@Override
public void onShutterClick()
{
if (!inCapture)
{
inCapture = true;
ApplicationScreen.getGUIManager().lockControls = true;
Date curDate = new Date();
SessionID = curDate.getTime();
ApplicationScreen.instance.muteShutter(true);
if (CameraController.isAutoFocusPerform())
aboutToTakePicture = true;
else
takePicture();
}
}
@Override
public void onExportFinished()
{
}
public void takePicture()
{
}
@Override
public void onAutoFocus(boolean paramBoolean)
{
if (inCapture)
{
if (aboutToTakePicture)
takePicture();
aboutToTakePicture = false;
}
}
@Override
public abstract void onImageTaken(int frame, byte[] frameData, int frame_len, int format);
@Override
public abstract void onPreviewFrame(byte[] data);
public boolean shouldPreviewToGPU()
{
return false;
}
public void onFrameAvailable()
{
}
}