init.cc revision b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8
1e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie/*
2e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * Copyright (C) 2016 The Android Open Source Project
3e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie *
4e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * Licensed under the Apache License, Version 2.0 (the "License");
5e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * you may not use this file except in compliance with the License.
6e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * You may obtain a copy of the License at
7e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie *
8e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie *      http://www.apache.org/licenses/LICENSE-2.0
9e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie *
10e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * Unless required by applicable law or agreed to in writing, software
11e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * distributed under the License is distributed on an "AS IS" BASIS,
12e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * See the License for the specific language governing permissions and
14e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie * limitations under the License.
15e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie */
16e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie
17e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie#include "chre/core/init.h"
18e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie
19569958550a629c55cba3d38cb309af2ad278e336Meng-hsuan Chung#include "ash/ash.h"
20b1c45b9446bd6bf2e95b0768353165e8009594f6Andrew Rossignol#include "chre/core/event_loop_manager.h"
210d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignol#include "chre/platform/platform_sensor.h"
22e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie#include "chre/platform/system_time.h"
23b1c45b9446bd6bf2e95b0768353165e8009594f6Andrew Rossignol#include "chre/util/singleton.h"
24e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie
25b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol#ifndef CHRE_VERSION_STRING
26b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol#define CHRE_VERSION_STRING "undefined"
27b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol#endif  // CHRE_VERSION_STRING
28b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol
29b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol//! The CHRE version string. Placed in a variable in the global namespace for
30b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol//! easy access with debugging tools.
31b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignolstatic const char kChreVersionString[] = CHRE_VERSION_STRING;
32b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol
33e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddienamespace chre {
34e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie
35e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddievoid init() {
36b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol  LOGI("CHRE init, version: %s", kChreVersionString);
37b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol
38e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie  SystemTime::init();
390d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignol  PlatformSensor::init();
40569958550a629c55cba3d38cb309af2ad278e336Meng-hsuan Chung  ashInit();
41b1c45b9446bd6bf2e95b0768353165e8009594f6Andrew Rossignol  EventLoopManagerSingleton::init();
42e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie}
43e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie
44b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignolvoid deinit() {
451c0fa3625f48fee1f1442a948737f8a4562e9e8fAndrew Rossignol  EventLoopManagerSingleton::deinit();
46569958550a629c55cba3d38cb309af2ad278e336Meng-hsuan Chung  ashDeinit();
470d94eb2fcf599754d9a1087c3292ab6ac6495de6Andrew Rossignol  PlatformSensor::deinit();
48b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol
49b8ba15efb67b70862c4b8ee0089d8f42b5da8bc8Andrew Rossignol  LOGI("CHRE deinit");
50b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol}
51b5ef2cebc2d8b17e1dd4fa026d3842f97c79d8fbAndrew Rossignol
52e64f180233e64c40b56993cfea3696c5b4b16395Brian Duddie}  // namespace chre
53