[feat] add host platform metadata and iOS platform placeholders

This commit is contained in:
dijunkun
2026-09-28 23:49:55 +08:00
parent f8535a797b
commit c345c69e81
14 changed files with 323 additions and 44 deletions
@@ -86,6 +86,7 @@ typedef struct {
- (void)rtcBridge:(CrossDeskRTCBridge *)bridge
didReceiveHostName:(NSString *)hostName
appVersion:(NSString *)appVersion
platform:(NSString *)platform
displayNames:(NSArray<NSString *> *)displayNames
displaySizes:(NSArray<NSValue *> *)displaySizes
supportsVideoSettings:(BOOL)supportsVideoSettings;
@@ -1343,6 +1343,7 @@ Params MakeParams(const RTCState &state, const std::string &user_id,
: "iPhone-" + self->_state->identity_base;
RemoteAction action{};
action.type = ControlType::host_infomation;
action.i.platform = crossdesk::HostPlatform::IOS;
CopyCString(action.i.host_name, sizeof(action.i.host_name),
controller_name);
action.i.host_name_size = std::strlen(action.i.host_name);
@@ -1634,6 +1635,8 @@ Params MakeParams(const RTCState &state, const std::string &user_id,
}
if (action.type != ControlType::host_infomation) return;
const BOOL supports_video_settings = action.i.supports_video_settings;
NSString *platform = [NSString stringWithUTF8String:
crossdesk::HostPlatformName(action.i.platform)];
NSString *host_name = [[NSString alloc]
initWithBytes:action.i.host_name
length:action.i.host_name_size
@@ -1663,11 +1666,12 @@ Params MakeParams(const RTCState &state, const std::string &user_id,
if (![self isControllerGenerationActive:generation]) return;
id<CrossDeskRTCBridgeDelegate> delegate = self.delegate;
if ([delegate respondsToSelector:
@selector(rtcBridge:didReceiveHostName:appVersion:displayNames:
@selector(rtcBridge:didReceiveHostName:appVersion:platform:displayNames:
displaySizes:supportsVideoSettings:)]) {
[delegate rtcBridge:self
didReceiveHostName:host_name ?: @""
appVersion:app_version ?: @""
platform:platform
displayNames:display_names
displaySizes:display_sizes
supportsVideoSettings:supports_video_settings];