1edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project/* 2edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Copyright (C) 2017 The Android Open Source Project 3edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 4edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Licensed under the Apache License, Version 2.0 (the "License"); 5edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * you may not use this file except in compliance with the License. 6edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * You may obtain a copy of the License at 7edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 8edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 9edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * 10edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * Unless required by applicable law or agreed to in writing, software 11edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 12edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * See the License for the specific language governing permissions and 14edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project * limitations under the License. 15edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project */ 16edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 17edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#ifndef ANDROID_VR_MANAGER_H 18edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#define ANDROID_VR_MANAGER_H 19edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 20edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project#include <binder/IInterface.h> 21edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 22edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectnamespace android { 23921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian 243f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian// Must be kept in sync with interface defined in IVrStateCallbacks.aidl. 253f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 263f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianclass IVrStateCallbacks : public IInterface { 273f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianpublic: 28921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian DECLARE_META_INTERFACE(VrStateCallbacks) 2999ed22412db547c59d3da08114d9d5a586442b30Glenn Kasten 3099ed22412db547c59d3da08114d9d5a586442b30Glenn Kasten virtual void onVrStateChanged(bool enabled) = 0; 31edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; 32edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 3399b49840d309727678b77403d6cc9f920111623fMathias Agopianenum VrStateCallbacksTransaction { 34076b1cc3a9b90aa5b381a1ed268ca0b548444c9bMathias Agopian ON_VR_STATE_CHANGED = IBinder::FIRST_CALL_TRANSACTION, 3599b49840d309727678b77403d6cc9f920111623fMathias Agopian}; 3699b49840d309727678b77403d6cc9f920111623fMathias Agopian 37edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectclass BnVrStateCallbacks : public BnInterface<IVrStateCallbacks> { 3899b49840d309727678b77403d6cc9f920111623fMathias Agopianpublic: 39375f56363a8737119ce2222dcfaacbe1cf733fc0Mathias Agopian status_t onTransact(uint32_t code, const Parcel& data, 40edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project Parcel* reply, uint32_t flags = 0) override; 419c5a3335110769993d3fe997bdf1d594954d4304Alan Viverette}; 42921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian 4390ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian 4490ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian// Must be kept in sync with interface defined in 45edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project// IPersistentVrStateCallbacks.aidl. 468630320433bd15aca239522e54e711ef6372ab07Mathias Agopian 478630320433bd15aca239522e54e711ef6372ab07Mathias Agopianclass IPersistentVrStateCallbacks : public IInterface { 48921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopianpublic: 49edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project DECLARE_META_INTERFACE(PersistentVrStateCallbacks) 50921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian 5192a979a92c34b7de609ce2b1662c73bb8a2728b9Mathias Agopian virtual void onPersistentVrStateChanged(bool enabled) = 0; 52faf77cce9d9ec0238d6999b3bd0d40c71ff403c5Jamie Gennis}; 534b0eba949cc026ffb2c75313042d8a7bcb3fcf86Jamie Gennis 544b0eba949cc026ffb2c75313042d8a7bcb3fcf86Jamie Gennisenum PersistentVrStateCallbacksTransaction { 55f1d8e87b09abf963cd5b6a026194c1940fadb7b4Mathias Agopian ON_PERSISTENT_VR_STATE_CHANGED = IBinder::FIRST_CALL_TRANSACTION, 568630320433bd15aca239522e54e711ef6372ab07Mathias Agopian}; 57ff2ed70fa30f04b90dd1a2c06ec2319e157152d7Mathias Agopian 588630320433bd15aca239522e54e711ef6372ab07Mathias Agopianclass BnPersistentVrStateCallbacks 59edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project : public BnInterface<IPersistentVrStateCallbacks> { 60edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectpublic: 61edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project status_t onTransact(uint32_t code, const Parcel& data, 62edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project Parcel* reply, uint32_t flags = 0) override; 63edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project}; 64d0566bc26fcf6ca396118701fa11900b627f2c09Mathias Agopian 65d0566bc26fcf6ca396118701fa11900b627f2c09Mathias Agopian 66f33e4b6f13bc3ee2d2a4e1abd1ada171c70d3492Mathias Agopian// Must be kept in sync with interface defined in IVrManager.aidl. 67edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 68b7e930db175c192464cebdeb49eb56cf6dd60114Mathias Agopianclass IVrManager : public IInterface { 69e3c697fb929c856b59fa56a8e05a2a7eba187c3dMathias Agopianpublic: 70875d8e1323536e16dcfc90c9674d7ad32116a69aMathias Agopian DECLARE_META_INTERFACE(VrManager) 71d1700756ec9520c3fba22f9a14fd064a6e288810Jamie Gennis 72edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project virtual void registerListener(const sp<IVrStateCallbacks>& cb) = 0; 73edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project virtual void unregisterListener(const sp<IVrStateCallbacks>& cb) = 0; 74edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project virtual void registerPersistentVrStateListener( 75edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project const sp<IPersistentVrStateCallbacks>& cb) = 0; 76e57f292595bec48f65c8088b00ff6beea01217e9Mathias Agopian virtual void unregisterPersistentVrStateListener( 77e57f292595bec48f65c8088b00ff6beea01217e9Mathias Agopian const sp<IPersistentVrStateCallbacks>& cb) = 0; 78e57f292595bec48f65c8088b00ff6beea01217e9Mathias Agopian virtual bool getVrModeState() = 0; 79e57f292595bec48f65c8088b00ff6beea01217e9Mathias Agopian}; 80edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project 81edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Projectenum VrManagerTransaction { 824f4f0943489d9113c66ac22b58cfba8c21dfa879Mathias Agopian REGISTER_LISTENER = IBinder::FIRST_CALL_TRANSACTION, 83921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian UNREGISTER_LISTENER, 848630320433bd15aca239522e54e711ef6372ab07Mathias Agopian REGISTER_PERSISTENT_VR_STATE_LISTENER, 85edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project UNREGISTER_PERSISTENT_VR_STATE_LISTENER, 86edbf3b6af777b721cd2a1ef461947e51e88241e1The Android Open Source Project GET_VR_MODE_STATE, 87b6df7d0e4c2117ca476662bd52b6745b3d8a305fMathias Agopian}; 88921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian 89921e6ac4b7610a178285898d191eb0e3afe906c0Mathias Agopian}; // namespace android 90118d0245ee0a3b107055782aa8b555404b6f0280Mathias Agopian 91b6df7d0e4c2117ca476662bd52b6745b3d8a305fMathias Agopian#endif // ANDROID_VR_MANAGER_H 9299ce5cdeb383216dee95af4d90e47406b0948ea1Mathias Agopian