11173118eace0e9e347cb007f0da817cee87579edGlenn Kasten/* 21173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * Copyright (C) 2011 The Android Open Source Project 31173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * 41173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * Licensed under the Apache License, Version 2.0 (the "License"); 51173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * you may not use this file except in compliance with the License. 61173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * You may obtain a copy of the License at 71173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * 81173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * http://www.apache.org/licenses/LICENSE-2.0 91173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * 101173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * Unless required by applicable law or agreed to in writing, software 111173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * distributed under the License is distributed on an "AS IS" BASIS, 121173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 131173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * See the License for the specific language governing permissions and 141173118eace0e9e347cb007f0da817cee87579edGlenn Kasten * limitations under the License. 151173118eace0e9e347cb007f0da817cee87579edGlenn Kasten */ 161173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 171173118eace0e9e347cb007f0da817cee87579edGlenn Kasten#ifndef NATIVE_WINDOW_WRAPPER_H_ 181173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 191173118eace0e9e347cb007f0da817cee87579edGlenn Kasten#define NATIVE_WINDOW_WRAPPER_H_ 201173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 211173118eace0e9e347cb007f0da817cee87579edGlenn Kasten#include <gui/SurfaceTextureClient.h> 221173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 231173118eace0e9e347cb007f0da817cee87579edGlenn Kastennamespace android { 241173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 255778822d86b0337407514b9372562b86edfa91cdAndreas Huber// SurfaceTextureClient derives from ANativeWindow which derives from multiple 265778822d86b0337407514b9372562b86edfa91cdAndreas Huber// base classes, in order to carry it in AMessages, we'll temporarily wrap it 275778822d86b0337407514b9372562b86edfa91cdAndreas Huber// into a NativeWindowWrapper. 281173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 291173118eace0e9e347cb007f0da817cee87579edGlenn Kastenstruct NativeWindowWrapper : RefBase { 301173118eace0e9e347cb007f0da817cee87579edGlenn Kasten NativeWindowWrapper( 311173118eace0e9e347cb007f0da817cee87579edGlenn Kasten const sp<SurfaceTextureClient> &surfaceTextureClient) : 321173118eace0e9e347cb007f0da817cee87579edGlenn Kasten mSurfaceTextureClient(surfaceTextureClient) { } 331173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 341173118eace0e9e347cb007f0da817cee87579edGlenn Kasten sp<ANativeWindow> getNativeWindow() const { 355778822d86b0337407514b9372562b86edfa91cdAndreas Huber return mSurfaceTextureClient; 361173118eace0e9e347cb007f0da817cee87579edGlenn Kasten } 371173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 385778822d86b0337407514b9372562b86edfa91cdAndreas Huber sp<SurfaceTextureClient> getSurfaceTextureClient() const { 395778822d86b0337407514b9372562b86edfa91cdAndreas Huber return mSurfaceTextureClient; 405778822d86b0337407514b9372562b86edfa91cdAndreas Huber } 411173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 421173118eace0e9e347cb007f0da817cee87579edGlenn Kastenprivate: 431173118eace0e9e347cb007f0da817cee87579edGlenn Kasten const sp<SurfaceTextureClient> mSurfaceTextureClient; 441173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 451173118eace0e9e347cb007f0da817cee87579edGlenn Kasten DISALLOW_EVIL_CONSTRUCTORS(NativeWindowWrapper); 461173118eace0e9e347cb007f0da817cee87579edGlenn Kasten}; 471173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 481173118eace0e9e347cb007f0da817cee87579edGlenn Kasten} // namespace android 491173118eace0e9e347cb007f0da817cee87579edGlenn Kasten 501173118eace0e9e347cb007f0da817cee87579edGlenn Kasten#endif // NATIVE_WINDOW_WRAPPER_H_ 51