Files
BPI-CM9-Linux/aml-comp/vendor/amlogic/meson_videoserver/vscfuse/BinderClient.h
T

92 lines
3.5 KiB
C++

/*
* Copyright (c) 2025 Amlogic, Inc. All rights reserved.
*
* This source code is subject to the terms and conditions defined in the
* file 'LICENSE' which is part of this source code package.
*
* Description:
*/
#ifndef BINDER_CLIENT_H
#define BINDER_CLIENT_H
#include <linux/videodev2.h>
#include <binder/Binder.h>
#include <binder/Parcel.h>
#include <linux/v4l2-ext-vsc.h>
#include "info.h"
#include "vsc_func.h"
using namespace android;
struct video_scaler_file;
class BinderClient : public BBinder {
public:
BinderClient(struct video_scaler_file *info);
int connectScaler(int displayId, int scalerId, int index);
int disconnectScaler(int displayId, int scalerId, int index);
int getHdrType(int displayId, enum v4l2_ext_vsc_hdr_type *type);
int setHdrType(int displayId, enum v4l2_ext_vsc_hdr_type type);
int getFreeze(int displayId, int sNum, int *freeze);
int setFreeze(int displayId, int sNum, int freeze);
int getFreezeFrameBuffer(int displayId, int sNum, int *freeze);
int setFreezeFrameBuffer(int displayId, int sNum, int freeze);
int getBgColor(int displayId, enum v4l2_ext_vsc_win_color *color);
int setBgColor(int displayId, int scalerId, enum v4l2_ext_vsc_win_color color);
int getHdmitxConnection(int displayId, int *value);
int getHdmitxHdrType(int displayId, int *value);
int getHdmitxHdcpVersion(int displayId, int *value);
int getHdmitxHdrPolicy(int displayId, int *value);
int setHdmitxHdrPolicy(int displayId, int value);
int setHdmitxAvMute(int displayId, int value);
int setHdmitxHdcpAuth(int displayId, int value);
int getHdmitxHdcpStatus(int displayId, int *value);
int getWinRegion(int displayId, int sNum,
struct v4l2_ext_vsc_win_region *win);
int setOriginalResolution(int displayId, int sNum,
struct v4l2_ext_vsc_win_region *win);
int getZorder(int displayId, int sNum, struct v4l2_ext_vsc_zorder *z);
int setZorder(int displayId, int sNum, struct v4l2_ext_vsc_zorder *z);
int getWinProp(int displayId, int sNum,
struct v4l2_ext_vsc_win_prop *prop);
int setWinProp(int displayId, int sNum,
struct v4l2_ext_vsc_win_prop *prop);
int getConnectInfo(int displayId, int sNum,
struct v4l2_ext_vsc_connect_info *info);
int setConnectInfo(int displayId, int sNum,
int index, struct v4l2_ext_vsc_connect_info *info);
int setAspectratio(int displayId, int scalerId,
struct v4l2_ext_vsc_aspectratio_policy *policy);
int getHdmitxTiming(int displayId,
struct v4l2_ext_hdmitx_timing_info *info);
int setHdmitxTiming(int displayId,
struct v4l2_ext_hdmitx_timing_info *info);
int getHdmitxColor(int displayId,
struct v4l2_ext_hdmitx_color_attr *attr);
int setHdmitxColor(int displayId,
struct v4l2_ext_hdmitx_color_attr *attr);
int getHdmitxRawEdid(int displayId, unsigned char *dat);
int setOrbitWindow(int displayId, int sNum,
struct v4l2_ext_vsc_orbit_window *orbitWindow);
int setOrbitMove(int displayId, int sNum,
struct v4l2_ext_vsc_orbit_move *orbitMove);
VSC_FUNC_H_LIST();
int setDrmLeaseFd(int displayId, int fd);
private:
virtual status_t onTransact(uint32_t code,
const Parcel& data, Parcel* reply,
uint32_t flags = 0);
void setEventToScaler(struct video_scaler_file *info, VscEventType event);
private:
sp<IBinder> mServicebinder;
struct video_scaler_file *mInfo;
};
#endif