1e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown/* 2e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * Copyright (C) 2012 The Android Open Source Project 3e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * 4e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * Licensed under the Apache License, Version 2.0 (the "License"); 5e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * you may not use this file except in compliance with the License. 6e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * You may obtain a copy of the License at 7e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * 8e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * http://www.apache.org/licenses/LICENSE-2.0 9e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * 10e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * Unless required by applicable law or agreed to in writing, software 11e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * distributed under the License is distributed on an "AS IS" BASIS, 12e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * See the License for the specific language governing permissions and 14e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * limitations under the License. 15e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown */ 16e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 17e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#ifndef ANDROID_IREMOTEDISPLAY_H 18e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#define ANDROID_IREMOTEDISPLAY_H 19e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 20e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#include <stdint.h> 21e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#include <sys/types.h> 22e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 23e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#include <utils/RefBase.h> 24e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#include <binder/IInterface.h> 25e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#include <binder/Parcel.h> 26e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 27e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brownnamespace android { 28e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 29e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown/* 30e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * Represents a remote display, such as a Wifi display. 31e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * 32e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * When the remote display is created, it may not yet be connected to the 33e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * display. The remote display asynchronously reports events such as successful 34e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * connection, disconnection and errors to an IRemoteDisplayClient interface provided by 35e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown * the client. 36e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown */ 37e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brownclass IRemoteDisplay : public IInterface 38e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown{ 39e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brownpublic: 40e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown DECLARE_META_INTERFACE(RemoteDisplay); 41e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 42455d02eca342d8159637af317a5d83219d267812Jeff Brown // Disconnects the remote display and stops listening for new connections. 43455d02eca342d8159637af317a5d83219d267812Jeff Brown virtual status_t dispose() = 0; 44e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown}; 45e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 46e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 47e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown// ---------------------------------------------------------------------------- 48e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 49e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brownclass BnRemoteDisplay : public BnInterface<IRemoteDisplay> 50e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown{ 51e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brownpublic: 52e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown virtual status_t onTransact( uint32_t code, 53e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown const Parcel& data, 54e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown Parcel* reply, 55e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown uint32_t flags = 0); 56e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown}; 57e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 58e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown}; // namespace android 59e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown 60e104596061b219e9bce6d4db49a9d15242f8d2e5Jeff Brown#endif // ANDROID_IREMOTEDISPLAY_H 61