camera: add ELinuxCamera dartPluginClass (#81)

Fixed https://github.com/sony/flutter-elinux/issues/211

Signed-off-by: Hidenori Matsubayashi <[email protected]>
This commit is contained in:
Hidenori Matsubayashi
2023-08-28 12:37:20 +00:00
committed by GitHub
parent 96106f35e7
commit 57f3aa88bf
9 changed files with 800 additions and 5 deletions
+36 -2
View File
@@ -86,6 +86,12 @@ class CameraPlugin : public flutter::Plugin {
void HandleTakePictureCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void HandleGetMinExposureOffsetCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void HandleGetMaxExposureOffsetCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
void HandleStartImageStreamCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result);
@@ -169,9 +175,9 @@ void CameraPlugin::HandleMethodCall(
} else if (!method_name.compare(kCameraChannelApiSetExposurePoint)) {
result->NotImplemented();
} else if (!method_name.compare(kCameraChannelApiGetMinExposureOffset)) {
result->NotImplemented();
HandleGetMinExposureOffsetCall(method_call.arguments(), std::move(result));
} else if (!method_name.compare(kCameraChannelApiGetMaxExposureOffset)) {
result->NotImplemented();
HandleGetMaxExposureOffsetCall(method_call.arguments(), std::move(result));
} else if (!method_name.compare(kCameraChannelApiGetExposureOffsetStepSize)) {
result->NotImplemented();
} else if (!method_name.compare(kCameraChannelApiSetExposureOffset)) {
@@ -308,6 +314,34 @@ void CameraPlugin::HandleTakePictureCall(
});
}
void CameraPlugin::HandleGetMinExposureOffsetCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
if (!camera_) {
result->Error("Not found an active camera",
"Check for creating a camera device");
return;
}
// TODO: Implement exposure control support
double value = 0.0;
result->Success(flutter::EncodableValue(value));
}
void CameraPlugin::HandleGetMaxExposureOffsetCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
if (!camera_) {
result->Error("Not found an active camera",
"Check for creating a camera device");
return;
}
// TODO: Implement exposure control support
double value = 0.0;
result->Success(flutter::EncodableValue(value));
}
void CameraPlugin::HandleStartImageStreamCall(
const flutter::EncodableValue* message,
std::unique_ptr<flutter::MethodResult<flutter::EncodableValue>> result) {
@@ -8,7 +8,7 @@
#include <flutter/standard_method_codec.h>
namespace {
constexpr char kChannelName[] = "flutter.io/cameraPlugin/camera";
constexpr char kChannelName[] = "plugins.flutter.io/camera/camera";
constexpr char kChannelMethodInitialized[] = "initialized";
}; // namespace
@@ -8,7 +8,7 @@
#include <flutter/standard_method_codec.h>
namespace {
constexpr char kChannelName[] = "flutter.io/cameraPlugin/device";
constexpr char kChannelName[] = "plugins.flutter.io/camera/fromPlatform";
constexpr char kChannelMethodOrientationChanged[] = "orientation_changed";
constexpr char kOrientation[] = "orientation";