Committed by
GitHub
Expose Participant.Kind information (#432)
* Expose Participant.Kind information * spotless
正在显示
3 个修改的文件
包含
38 行增加
和
1 行删除
| @@ -176,6 +176,14 @@ open class Participant( | @@ -176,6 +176,14 @@ open class Participant( | ||
| 176 | internal set | 176 | internal set |
| 177 | 177 | ||
| 178 | /** | 178 | /** |
| 179 | + * The kind of participant (i.e. a standard client participant, AI agent, etc.) | ||
| 180 | + */ | ||
| 181 | + @FlowObservable | ||
| 182 | + @get:FlowObservable | ||
| 183 | + var kind by flowDelegate(Kind.UNKNOWN) | ||
| 184 | + internal set | ||
| 185 | + | ||
| 186 | + /** | ||
| 179 | * @suppress | 187 | * @suppress |
| 180 | */ | 188 | */ |
| 181 | @Deprecated("Use events instead") | 189 | @Deprecated("Use events instead") |
| @@ -318,6 +326,7 @@ open class Participant( | @@ -318,6 +326,7 @@ open class Participant( | ||
| 318 | participantInfo = info | 326 | participantInfo = info |
| 319 | metadata = info.metadata | 327 | metadata = info.metadata |
| 320 | name = info.name | 328 | name = info.name |
| 329 | + kind = Kind.fromProto(info.kind) | ||
| 321 | if (info.hasPermission()) { | 330 | if (info.hasPermission()) { |
| 322 | permissions = ParticipantPermission.fromProto(info.permission) | 331 | permissions = ParticipantPermission.fromProto(info.permission) |
| 323 | } | 332 | } |
| @@ -378,6 +387,32 @@ open class Participant( | @@ -378,6 +387,32 @@ open class Participant( | ||
| 378 | permissions = null | 387 | permissions = null |
| 379 | connectionQuality = ConnectionQuality.UNKNOWN | 388 | connectionQuality = ConnectionQuality.UNKNOWN |
| 380 | } | 389 | } |
| 390 | + | ||
| 391 | + enum class Kind { | ||
| 392 | + AGENT, | ||
| 393 | + STANDARD, | ||
| 394 | + INGRESS, | ||
| 395 | + EGRESS, | ||
| 396 | + SIP, | ||
| 397 | + UNKNOWN, | ||
| 398 | + ; | ||
| 399 | + | ||
| 400 | + companion object { | ||
| 401 | + /** | ||
| 402 | + * @suppress | ||
| 403 | + */ | ||
| 404 | + fun fromProto(proto: LivekitModels.ParticipantInfo.Kind): Kind { | ||
| 405 | + return when (proto) { | ||
| 406 | + LivekitModels.ParticipantInfo.Kind.AGENT -> AGENT | ||
| 407 | + LivekitModels.ParticipantInfo.Kind.STANDARD -> STANDARD | ||
| 408 | + LivekitModels.ParticipantInfo.Kind.INGRESS -> INGRESS | ||
| 409 | + LivekitModels.ParticipantInfo.Kind.EGRESS -> EGRESS | ||
| 410 | + LivekitModels.ParticipantInfo.Kind.SIP -> SIP | ||
| 411 | + LivekitModels.ParticipantInfo.Kind.UNRECOGNIZED -> UNKNOWN | ||
| 412 | + } | ||
| 413 | + } | ||
| 414 | + } | ||
| 415 | + } | ||
| 381 | } | 416 | } |
| 382 | 417 | ||
| 383 | /** | 418 | /** |
| @@ -56,6 +56,7 @@ class ParticipantTest { | @@ -56,6 +56,7 @@ class ParticipantTest { | ||
| 56 | assertEquals(INFO.identity, participant.identity?.value) | 56 | assertEquals(INFO.identity, participant.identity?.value) |
| 57 | assertEquals(INFO.metadata, participant.metadata) | 57 | assertEquals(INFO.metadata, participant.metadata) |
| 58 | assertEquals(INFO.name, participant.name) | 58 | assertEquals(INFO.name, participant.name) |
| 59 | + assertEquals(Participant.Kind.fromProto(INFO.kind), participant.kind) | ||
| 59 | assertEquals(INFO, participant.participantInfo) | 60 | assertEquals(INFO, participant.participantInfo) |
| 60 | } | 61 | } |
| 61 | 62 | ||
| @@ -169,6 +170,7 @@ class ParticipantTest { | @@ -169,6 +170,7 @@ class ParticipantTest { | ||
| 169 | .setIdentity("identity") | 170 | .setIdentity("identity") |
| 170 | .setMetadata("metadata") | 171 | .setMetadata("metadata") |
| 171 | .setName("name") | 172 | .setName("name") |
| 173 | + .setKind(LivekitModels.ParticipantInfo.Kind.STANDARD) | ||
| 172 | .build() | 174 | .build() |
| 173 | 175 | ||
| 174 | val TRACK_INFO = LivekitModels.TrackInfo.newBuilder() | 176 | val TRACK_INFO = LivekitModels.TrackInfo.newBuilder() |
-
请 注册 或 登录 后发表评论