71 lines
2.4 KiB
C++
Executable File
71 lines
2.4 KiB
C++
Executable File
/*
|
|
* Copyright 2019 Rockchip Electronics Co. LTD
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
*/
|
|
|
|
#ifndef ROCKIT_DIRECT_RTSURFACECALLBACK_H_
|
|
#define ROCKIT_DIRECT_RTSURFACECALLBACK_H_
|
|
|
|
#include <utils/RefBase.h>
|
|
#include <gui/Surface.h>
|
|
|
|
#include "RTSurfaceInterface.h"
|
|
|
|
namespace android {
|
|
|
|
class RTSidebandWindow;
|
|
|
|
class RTSurfaceCallback : public RTSurfaceInterface {
|
|
public:
|
|
RTSurfaceCallback(const sp<IGraphicBufferProducer> &bufferProducer);
|
|
virtual ~RTSurfaceCallback();
|
|
|
|
virtual INT32 connect(INT32 mode);
|
|
virtual INT32 disconnect(INT32 mode);
|
|
|
|
virtual INT32 allocateBuffer(RTNativeWindowBufferInfo *info);
|
|
virtual INT32 freeBuffer(void *buf, INT32 fence);
|
|
virtual INT32 remainBuffer(void *buf, INT32 fence);
|
|
virtual INT32 queueBuffer(void *buf, INT32 fence);
|
|
virtual INT32 dequeueBuffer(void **buf);
|
|
virtual INT32 dequeueBufferAndWait(RTNativeWindowBufferInfo *info);
|
|
virtual INT32 mmapBuffer(RTNativeWindowBufferInfo *info, void **ptr);
|
|
virtual INT32 munmapBuffer(void **ptr, INT32 size, void *buf);
|
|
|
|
virtual INT32 setCrop(INT32 left, INT32 top, INT32 right, INT32 bottom);
|
|
virtual INT32 setUsage(INT32 usage);
|
|
virtual INT32 setScalingMode(INT32 mode);
|
|
virtual INT32 setDataSpace(INT32 dataSpace);
|
|
virtual INT32 setTransform(INT32 transform);
|
|
virtual INT32 setSwapInterval(INT32 interval);
|
|
virtual INT32 setBufferCount(INT32 bufferCount);
|
|
virtual INT32 setBufferGeometry(INT32 width, INT32 height, INT32 format);
|
|
virtual INT32 setSidebandStream(RTSidebandInfo info);
|
|
|
|
virtual INT32 query(INT32 cmd, INT32 *param);
|
|
virtual void* getNativeWindow();
|
|
virtual INT32 setNativeWindow(const sp<IGraphicBufferProducer> &bufferProducer);
|
|
|
|
private:
|
|
buffer_handle_t buf2hnl(void *buf);
|
|
|
|
private:
|
|
buffer_handle_t mSidebandHandle;
|
|
void *mSidebandWin;
|
|
sp<ANativeWindow> mNativeWindow;
|
|
};
|
|
}
|
|
#endif // ROCKIT_DIRECT_RTSURFACECALLBACK_H_
|