初始化云手机服务端。
VmiErrCode InitVmiEngine(VmiConfigEngine *config);
字段名称 |
输入/输出 |
字段类型 |
字段描述 |
---|---|---|---|
config |
输入 |
VmiConfigEngine |
该结构体由DataCallback和DataTypeConfig数组构成。 |
启动引擎需要的配置项为VmiConfigEngine,包含DataCallback数据回调和需要启动的模块列表。
1 2 3 4 | struct VmiConfigEngine { DataCallback dataCallback = nullptr; // 用于发送服务端数据的回调 DataTypeConfig dataTypeConfig[DATA_TYPE_MAX]; } __attribute__((packed)); |
数据输出统一使用回调函数实现,不提供数据输出的函数接口。回调函数定义如下:
1 | using DataCallback = int(*)(VmiDataType module, VmiCmd cmd, uint8_t *data, uint32_t size); |
DataTypeConfig数组指明每个模块是否需要初始化,以及初始化时数据包头前需要预留的内存空间大小,便于开发者填充需要的数据。
若sendDataOffset不为0,则引擎调dataCallback接口时,第三个参数data指针的内存排布为|SendDataOffset预留数据|size长度的有效数据|,第四个参数size指示有效数据长度,即data指针前面会预留SendDataOffset字节的数据后再接size长度的有效数据。
1 2 3 4 | struct DataTypeConfig { bool shouldInit = false; uint32_t sendDataOffset = 0; // 通过回调函数发送数据时,在数据头预留的空间,最小值是0,最大值是1024,单位为Byte } __attribute__((packed)); |
数据类型:enum VmiErrCode : int32_t
取值如下: