92 lines
3.5 KiB
C++
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
|