1ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian/*
2ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * Copyright (C) 2013 The Android Open Source Project
3ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian *
4ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * Licensed under the Apache License, Version 2.0 (the "License");
5ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * you may not use this file except in compliance with the License.
6ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * You may obtain a copy of the License at
7ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian *
8ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian *      http://www.apache.org/licenses/LICENSE-2.0
9ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian *
10ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * Unless required by applicable law or agreed to in writing, software
11ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * distributed under the License is distributed on an "AS IS" BASIS,
12ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * See the License for the specific language governing permissions and
14ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian * limitations under the License.
15ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian */
16ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
17ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian#ifndef ANDROID_GUI_SYNC_FEATURES_H
18ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian#define ANDROID_GUI_SYNC_FEATURES_H
19ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
20ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian#include <utils/Singleton.h>
21ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian#include <utils/String8.h>
22ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
23ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
24ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopiannamespace android {
25ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian// ----------------------------------------------------------------------------
26ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
27ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopianclass SyncFeatures : public Singleton<SyncFeatures> {
28ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    friend class Singleton<SyncFeatures>;
29ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool mHasNativeFenceSync;
30ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool mHasFenceSync;
31ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool mHasWaitSync;
32ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    String8 mString;
33ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    SyncFeatures();
34ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
35ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopianpublic:
36ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool useNativeFenceSync() const;
37ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool useFenceSync() const;
38ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    bool useWaitSync() const;
39ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian    String8 toString() const;
40ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian};
41ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
42ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian// ----------------------------------------------------------------------------
43ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian}; // namespace android
44ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian
45ca08833d5ea99130797e10ad68a651b50e99da74Mathias Agopian#endif // ANDROID_GUI_SYNC_FEATURES_H
46