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