Room.swift

 1//
 2//  LKRoom.swift
 3//  LiveKitObjC
 4//
 5//  Created by Antonio Scandurra on 01/09/22.
 6//
 7
 8import Foundation
 9import LiveKit
10
11public class LKRoom: RoomDelegate {
12    lazy var room = Room(delegate: self)
13    
14    init() {
15        print("INIT!\n");
16    }
17    
18    deinit {
19        print("DEINIT!\n");
20    }
21    
22    public func connect(
23        url: String,
24        token: String,
25        callback: @convention(block) @escaping () -> Void
26    ) {
27        self.room.connect(url, token).then { room in
28            callback()
29        }
30    }
31    
32}
33
34
35@_cdecl("LKRoomCreate")
36public func LKRoomCreate() -> UnsafeMutableRawPointer  {
37    Unmanaged.passRetained(LKRoom()).toOpaque()
38}
39
40@_cdecl("LKRoomDestroy")
41public func LKRoomDestroy(ptr: UnsafeRawPointer)  {
42    let _ = Unmanaged<LKRoom>.fromOpaque(ptr).takeRetainedValue();
43}
44
45