service.cpp revision 27ef4d872d9f6bbbc62d03b807cae694a3c6e2e8
127ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent/* 227ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * Copyright (C) 2016 The Android Open Source Project 327ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * 427ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * Licensed under the Apache License, Version 2.0 (the "License"); 527ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * you may not use this file except in compliance with the License. 627ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * You may obtain a copy of the License at 727ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * 827ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * http://www.apache.org/licenses/LICENSE-2.0 927ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * 1027ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * Unless required by applicable law or agreed to in writing, software 1127ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * distributed under the License is distributed on an "AS IS" BASIS, 1227ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1327ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * See the License for the specific language governing permissions and 1427ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent * limitations under the License. 1527ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent */ 1627ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 1727ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#define LOG_TAG "soundtriggerhal" 1827ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 1927ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <hwbinder/IInterface.h> 2027ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <hwbinder/IPCThreadState.h> 2127ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <hwbinder/ProcessState.h> 2227ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <hidl/IServiceManager.h> 2327ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <utils/Errors.h> 2427ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <utils/Log.h> 2527ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <utils/Looper.h> 2627ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <utils/StrongPointer.h> 2727ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent#include <android/hardware/soundtrigger/2.0/ISoundTriggerHw.h> 2827ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 2927ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurentusing android::hardware::IPCThreadState; 3027ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurentusing android::hardware::ProcessState; 3127ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurentusing android::hardware::soundtrigger::V2_0::ISoundTriggerHw; 3227ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 3327ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurentint main(int /* argc */, char* /* argv */ []) { 3427ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent android::sp<ISoundTriggerHw> service = 3527ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent ISoundTriggerHw::getService("sound_trigger.primary", true /* getStub */); 3627ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 3727ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent service->registerAsService("sound_trigger.primary"); 3827ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent 3927ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent ProcessState::self()->setThreadPoolMaxThreadCount(0); 4027ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent ProcessState::self()->startThreadPool(); 4127ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent IPCThreadState::self()->joinThreadPool(); 4227ef4d872d9f6bbbc62d03b807cae694a3c6e2e8Eric Laurent} 43