更新时间:2022-03-21 GMT+08:00
分享

IdeaShareDef.h

SDK数据结构及宏定义头文件

/*  
 * Copyright (c) Huawei Technologies Co., Ltd. 2020-2020. All rights reserved.  
 */  
 /* *  
  * @file IdeaShareDef.h  
  *  
  * Copyright(C), 2012-2015, Huawei Tech. Co., Ltd. ALL RIGHTS RESERVED. \n  
  *  
  * 描述:ideashare wrapper sdk。 \n  
  */  
#ifndef __IDEASHARE_CLIENT_DEF_H__  
#define __IDEASHARE_CLIENT_DEF_H__  
#include<string>  
#include<iostream>  
#include <list>   
#include <algorithm>  
using namespace std;  
  
#ifdef WIN32    
  
#ifdef IDEA_SHARE_API  
#undef IDEA_SHARE_API  
#endif  
  
#ifdef  IDEA_SHARE_EXPORT  
#define IDEA_SHARE_API __declspec(dllexport)  
#else  
#define IDEA_SHARE_API __declspec(dllimport)  
#endif  
#else /*WIN32*/  
#define IDEA_SHARE_API  __attribute__ ((__visibility__ ("default")))  
#endif  
  
#ifdef __cplusplus  
#if __cplusplus  
extern "C" {  
#endif /*  __cpluscplus */  
#endif /*  __cpluscplus */  
  
/* ******************************************************************************  
 * 宏常量定义区  
 * ***************************************************************************** */  
  
/* ******************************************************************************  
 * 枚举类型定义区  
 * ***************************************************************************** */  
/**  
 * [en]This enumeration is used to describe the log level  
 * [cn]日志级别  
 */  
typedef enum {  
    IDEA_LEVEL_ERROR = 0,    /**< [en]Indicates the error level  
                                  <br>[cn]错误级别 */  
    IDEA_LEVEL_WARNING,      /**< [en]Indicates the warning level  
                                  <br>[cn]警告级别 */       
    IDEA_LEVEL_INFO,         /**< [en]Indicates the info level  
                                  <br>[cn]信息级别 */        
    IDEA_LEVEL_DEBUG         /**< [en]Indicates the debug level  
                                  <br>[cn]调试级别 */        
} LogLevel;  
  
/**  
 * [cn]ERROR  
 */  
typedef enum  {  
    DISCOVER_ERROR = 0,              //设备发现错误 0  
    CONNECT_ERROR,                   //连接错误 1  
    DISCONNECT_ERROR,                //断开连接错误 2  
    SHARE_PLAY_ERROR,                //启动投屏错误 3  
    SHARE_STOP_ERROR,                //停止投屏错误 4  
    GET_REMOTE_SERVICE_STATUS_ERROR, //遥控器参数查询结果错误 5  
    SET_REMOTE_MIC_MUTE_ERROR,       //打开\关闭麦克风结果错误 6  
    SET_REMOTE_SPEAKER_VOLUME_ERROR, //调节扬声器音量结果错误 7  
    SET_REMOTE_SPEAKER_MUTE_ERROR,   //打开\关闭扬声器结果错误 8       
    SET_REMOTE_CAMERA_MUTE_ERROR,    //打开\关闭摄像机结果错误  9  
    LEAVE_CONFERENCE_ERROR,          //离开会议结果错误 10  
    END_CONFERENCE_ERROR,            //结束会议结果错误 11  
    GET_SDK_LATEST_VERSION_ERROR,    //获取SDK最新版本 12     
    PROCESS_CONNECTING_ERROR,        //正在处理连接请求 13  
    IN_CONNECTION_ERROR,             //客户端已处于连接 14  
    PROJECTION_CODE_ERROR,           //投影码错误 数字+字母组合 15  
    AUTH_ERROR,                      //鉴权失败 16  
    CLIENT_IS_LOCKED_ERROR,          //客户端被锁定 17  
    CONNECT_BUSY_ERROR,              //终端忙碌 18  
    CONNECT_UPDATING_ERROR,          //终端正在升级 19   
    WEB_DENY_ERROR,                  //WEB被禁用 20   
    NO_COMMON_DATA_CAP_ERROR,        //和客户端没有辅流公共能力 21  
    GET_TOKEN_FAILD_ERROR,           //获取辅流令牌失败 22  
    LOW_BANDWIDTH_ERROR,             //带宽过低,无法发送辅流 23  
    CONF_NO_DATA_CAP_ERROR,          //会议无辅流能力 24  
    MULTICONNECT_BUSY_ERROR,         //终端正在处理辅流发送,暂且不接受辅流发送该请求 25  
    EUA_AUTH_ERROR,                  //EUA鉴权失败 26  
    EUA_IS_LOCKED_ERROR,             //EUA客户端被锁定 27  
} ShareAppErr;  
  
/*服务端指示*/  
typedef enum {  
    SERVER_STATUS_CONNECT,  
    SERVER_STATUS_SHARE,  
    SERVER_STATUS_STOP_SHARE,  
    SERVER_STATUS_DISCONNECT,  
  
    SERVER_STATUS_BUTT  
} ShareAppServerStatus;  
  
/*服务端指示*/  
typedef enum {  
    SCREEN_PRIMARY,  
    SCREEN_SECONDARY  
} ShareAppScreenType;  
  
typedef enum {  
    FLUENCY_FIRST = 0,  /* 流畅优先 */  
    QUAITY_CLEAR_FIRST, /* 清晰优先 */  
    QUAITY_ADAPTIVE,    /* 自适应 */  
} ShareAppDefinationQuality;  
/* ******************************************************************************  
 * 结构体定义区  
 * ***************************************************************************** */  
typedef struct {  
    std::string appId;// 最大长度128  
    std::string exePath;// 最大长度128  
} AppInfo;  
  
typedef struct {  
    std::string path;//最大长度256  
    LogLevel logLevel;  
    bool enable;   //是否开启日志  
} LogInfo;  
  
typedef struct {  
    int result;  
    std::string password;  
    std::list<std::string> addressList;  
} DiscoverResult;  
  
typedef struct {  
    unsigned int isMute;  
    unsigned int isCameraMute;  
    int  volume;  
    unsigned int isSpeakerMute;  
    unsigned int isChairman;  
    unsigned int isBase;  
} RemoteServiceStatus;  
  
typedef enum {  
    IDEA_SHARE_CONNECTED,  /* * < 连接 */  
    IDEA_SHARE_SHARING,    /* * < 共享 */  
    IDEA_SHARE_STOPSHARING, /* * < 停止共享 */  
    IDEA_SHARE_DISCONNECT, /* * < 断连 */  
    IDEA_SHARE_BUTT  
} IdeaShareStatus;  
  
typedef enum {  
    CONF_IDLE = 0,              // 空闲  
    CONF_BUSY,                   // 忙  
} ConfSate;  
  
typedef enum {  
    AUX_IDLE = 0,              // 空闲  
    AUX_BUSY,                   // 忙  
} AuxState;  
  
/* *  
 * 连接上报结果结构体  
 */  
typedef struct {  
    std::string deviceAddress;   /* *< 终端地址(IP地址 or 域名) */  
    std::string deviceName;     /* *< 终端名(会场名) */  
    unsigned int isSupportRemote; /* *< 终端侧是否支持遥控器 VOS_TRUE:支持,VOS_FALSE:不支持。TUP目前默认为VOS_TRUE,支持 */  
} DeviceInfo;  
  
typedef struct {  
    ShareAppDefinationQuality shareQuality; //清晰度  
    bool  isShareAudio; /* 0表示不共享音频,1表示共享音频 */  
    bool  isCompability; /* 0表示不开启兼容性,1表示开启兼容性 */  
} SharePolicy;  
  
typedef enum {  
    NON_PROJECTOR = 0,  
    PROJECTOR,  
    DEVICE_BUTT  
} ShareDeviceType;  
  
/* 认证模式*/  
typedef enum {  
    TLS_VERIFY_MODE_NONE = 0, /* * 不认证 */  
    TLS_VERIFY_MODE_SERVER,   /* * 认证服务端 */  
    TLS_VERIFY_MODE_CLIENT,   /* * 认证客户端 */  
    TLS_VERIFY_MODE_BOTH,     /* * 客户端,服务器双向认证 */  
    TLS_VERIFY_MODE_BUTT  
} ShareClientTlsVerifyMode;  
  
typedef struct {  
    std::string caCertpath;        /* * < ca根证书,最大长度256 */  
    std::string clientCertpath;    /* * < 客户端证书,最大长度256 */  
    ShareClientTlsVerifyMode verifyMode;                /* * < 校验模式 */  
} ShareTlsInfo;  
  
#ifdef __cplusplus  
#if __cplusplus  
}  
#endif /*  __cpluscplus */  
#endif /*  __cpluscplus */  
  
#endif

相关文档