Home | History | Annotate | Download | only in default
      1 /*
      2  * Copyright 2019 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 #ifdef LAZY_SERVICE
     18 #define LOG_TAG "android.hardware.camera.provider (at) 2.5-service-lazy"
     19 #else
     20 #define LOG_TAG "android.hardware.camera.provider (at) 2.5-service"
     21 #endif
     22 
     23 #include <android/hardware/camera/provider/2.5/ICameraProvider.h>
     24 #include <binder/ProcessState.h>
     25 #include <hidl/HidlLazyUtils.h>
     26 #include <hidl/HidlTransportSupport.h>
     27 
     28 #include "CameraProvider_2_5.h"
     29 #include "LegacyCameraProviderImpl_2_5.h"
     30 
     31 using android::status_t;
     32 using android::hardware::camera::provider::V2_5::ICameraProvider;
     33 
     34 #ifdef LAZY_SERVICE
     35 const bool kLazyService = true;
     36 #else
     37 const bool kLazyService = false;
     38 #endif
     39 
     40 int main()
     41 {
     42     using namespace android::hardware::camera::provider::V2_5::implementation;
     43 
     44     ALOGI("CameraProvider (at) 2.5 legacy service is starting.");
     45 
     46     ::android::hardware::configureRpcThreadpool(/*threads*/ HWBINDER_THREAD_COUNT, /*willJoin*/ true);
     47 
     48     ::android::sp<ICameraProvider> provider = new CameraProvider<LegacyCameraProviderImpl_2_5>();
     49 
     50     status_t status;
     51     if (kLazyService) {
     52         auto serviceRegistrar = std::make_shared<::android::hardware::LazyServiceRegistrar>();
     53         status = serviceRegistrar->registerService(provider, "legacy/0");
     54     } else {
     55         status = provider->registerAsService("legacy/0");
     56     }
     57     LOG_ALWAYS_FATAL_IF(status != android::OK, "Error while registering provider service: %d",
     58             status);
     59 
     60     ::android::hardware::joinRpcThreadpool();
     61 
     62     return 0;
     63 }
     64