19a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis/*
29a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Copyright (C) 2011 The Android Open Source Project
39a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis *
49a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Licensed under the Apache License, Version 2.0 (the "License");
59a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * you may not use this file except in compliance with the License.
69a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * You may obtain a copy of the License at
79a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis *
89a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis *      http://www.apache.org/licenses/LICENSE-2.0
99a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis *
109a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * Unless required by applicable law or agreed to in writing, software
119a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * distributed under the License is distributed on an "AS IS" BASIS,
129a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
139a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * See the License for the specific language governing permissions and
149a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis * limitations under the License.
159a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis */
169a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
1790ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#ifndef ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H
1890ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#define ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H
199a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
209a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <stdint.h>
219a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <sys/types.h>
229a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
239a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis#include <binder/IInterface.h>
2490ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#include <ui/PixelFormat.h>
2590ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#include <utils/RefBase.h>
269a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
279a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisnamespace android {
289a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ----------------------------------------------------------------------------
299a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
30a67932fe6864ac346e7f78b86df11cf6c5344137Mathias Agopianclass GraphicBuffer;
31a67932fe6864ac346e7f78b86df11cf6c5344137Mathias Agopian
329a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisclass IGraphicBufferAlloc : public IInterface
339a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis{
349a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennispublic:
359a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis    DECLARE_META_INTERFACE(GraphicBufferAlloc);
369a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
374cb18881b55b82a24873ccd8e298bc2d5a9c17e5Mathias Agopian    /* Create a new GraphicBuffer for the client to use.
389a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis     */
399a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis    virtual sp<GraphicBuffer> createGraphicBuffer(uint32_t w, uint32_t h,
40d9e8c64c3dce1612eb948a5c16ba4ff62202b423Mathias Agopian            PixelFormat format, uint32_t usage, status_t* error) = 0;
419a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis};
429a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
439a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ----------------------------------------------------------------------------
449a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
459a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennisclass BnGraphicBufferAlloc : public BnInterface<IGraphicBufferAlloc>
469a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis{
479a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennispublic:
489a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis    virtual status_t    onTransact( uint32_t code,
499a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis                                    const Parcel& data,
509a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis                                    Parcel* reply,
519a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis                                    uint32_t flags = 0);
529a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis};
539a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
549a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis// ----------------------------------------------------------------------------
559a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
569a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis}; // namespace android
579a78c90cd46b2a3bd637b056873149d3b94384b4Jamie Gennis
5890ac799241f077a7b7e6c1875fd933864c8dd2a7Mathias Agopian#endif // ANDROID_GUI_IGRAPHIC_BUFFER_ALLOC_H
59