blob: eedc3df00916fccd7bf9b09d1179e598e6f60ef3 [file] [log] [blame]
Pablo Gamito6ee484d2020-07-30 14:26:28 +00001/*
2 * Copyright 2020 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#include "gui/TransactionTracing.h"
18#include "gui/ISurfaceComposer.h"
19
20#include <private/gui/ComposerService.h>
21
22namespace android {
23
24sp<TransactionTraceListener> TransactionTraceListener::sInstance = nullptr;
25std::mutex TransactionTraceListener::sMutex;
26
27TransactionTraceListener::TransactionTraceListener() {}
28
29sp<TransactionTraceListener> TransactionTraceListener::getInstance() {
30 const std::lock_guard<std::mutex> lock(sMutex);
31
32 if (sInstance == nullptr) {
33 sInstance = new TransactionTraceListener;
34
35 sp<ISurfaceComposer> sf(ComposerService::getComposerService());
36 sf->addTransactionTraceListener(sInstance);
37 }
38
39 return sInstance;
40}
41
42binder::Status TransactionTraceListener::onToggled(bool enabled) {
43 ALOGD("TransactionTraceListener: onToggled listener called");
44 mTracingEnabled = enabled;
45
46 return binder::Status::ok();
47}
48
49bool TransactionTraceListener::isTracingEnabled() {
50 return mTracingEnabled;
51}
52
53} // namespace android