123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- // Copyright 2017 The Chromium Authors. All rights reserved.
- // Use of this source code is governed by a BSD-style license that can be
- // found in the LICENSE file.
- #include "services/shape_detection/shape_detection_service.h"
- #include <string>
- #include <utility>
- #include "base/bind.h"
- #include "build/branding_buildflags.h"
- #include "build/build_config.h"
- #include "services/shape_detection/text_detection_impl.h"
- #if BUILDFLAG(IS_ANDROID)
- #include "base/android/jni_android.h"
- #include "services/shape_detection/shape_detection_jni_headers/InterfaceRegistrar_jni.h"
- #endif
- #if BUILDFLAG(IS_MAC)
- #include "services/shape_detection/barcode_detection_provider_mac.h"
- #elif BUILDFLAG(IS_ANDROID)
- // No C++ code, barcode detection comes from Java.
- #elif BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS)
- #include "services/shape_detection/barcode_detection_provider_barhopper.h"
- #else
- #include "services/shape_detection/barcode_detection_provider_impl.h"
- #endif
- #if BUILDFLAG(IS_WIN)
- #include "services/shape_detection/face_detection_provider_win.h"
- #elif BUILDFLAG(IS_MAC)
- #include "services/shape_detection/face_detection_provider_mac.h"
- #elif BUILDFLAG(IS_ANDROID)
- // No C++ code, face detection comes from Java.
- #else
- #include "services/shape_detection/face_detection_provider_impl.h"
- #endif
- namespace shape_detection {
- ShapeDetectionService::ShapeDetectionService(
- mojo::PendingReceiver<mojom::ShapeDetectionService> receiver)
- : receiver_(this, std::move(receiver)) {
- }
- ShapeDetectionService::~ShapeDetectionService() = default;
- void ShapeDetectionService::BindBarcodeDetectionProvider(
- mojo::PendingReceiver<mojom::BarcodeDetectionProvider> receiver) {
- #if BUILDFLAG(IS_ANDROID)
- Java_InterfaceRegistrar_bindBarcodeDetectionProvider(
- base::android::AttachCurrentThread(),
- receiver.PassPipe().release().value());
- #elif BUILDFLAG(IS_MAC)
- BarcodeDetectionProviderMac::Create(std::move(receiver));
- #elif BUILDFLAG(GOOGLE_CHROME_BRANDING) && BUILDFLAG(IS_CHROMEOS)
- BarcodeDetectionProviderBarhopper::Create(std::move(receiver));
- #else
- BarcodeDetectionProviderImpl::Create(std::move(receiver));
- #endif
- }
- void ShapeDetectionService::BindFaceDetectionProvider(
- mojo::PendingReceiver<mojom::FaceDetectionProvider> receiver) {
- #if BUILDFLAG(IS_ANDROID)
- Java_InterfaceRegistrar_bindFaceDetectionProvider(
- base::android::AttachCurrentThread(),
- receiver.PassPipe().release().value());
- #elif BUILDFLAG(IS_MAC)
- FaceDetectionProviderMac::Create(std::move(receiver));
- #elif BUILDFLAG(IS_WIN)
- FaceDetectionProviderWin::Create(std::move(receiver));
- #else
- FaceDetectionProviderImpl::Create(std::move(receiver));
- #endif
- }
- void ShapeDetectionService::BindTextDetection(
- mojo::PendingReceiver<mojom::TextDetection> receiver) {
- #if BUILDFLAG(IS_ANDROID)
- Java_InterfaceRegistrar_bindTextDetection(
- base::android::AttachCurrentThread(),
- receiver.PassPipe().release().value());
- #else
- TextDetectionImpl::Create(std::move(receiver));
- #endif
- }
- } // namespace shape_detection
|