diff --git a/PeerKit/PeerKit.swift b/PeerKit/PeerKit.swift old mode 100644 new mode 100755 index 94613bd..dbd3154 --- a/PeerKit/PeerKit.swift +++ b/PeerKit/PeerKit.swift @@ -15,6 +15,7 @@ public typealias PeerBlock = ((myPeerID: MCPeerID, peerID: MCPeerID) -> Void) public typealias EventBlock = ((peerID: MCPeerID, event: String, object: AnyObject?) -> Void) public typealias ObjectBlock = ((peerID: MCPeerID, object: AnyObject?) -> Void) public typealias ResourceBlock = ((myPeerID: MCPeerID, resourceName: String, peer: MCPeerID, localURL: NSURL) -> Void) +public typealias ReceivingResourceBlock = ((myPeerID: MCPeerID, resourceName: String, peer: MCPeerID, withProgress: NSProgress!) -> Void) // MARK: Event Blocks @@ -24,6 +25,7 @@ public var onDisconnect: PeerBlock? public var onEvent: EventBlock? public var onEventObject: ObjectBlock? public var onFinishReceivingResource: ResourceBlock? +public var onStartReceivingResource: ReceivingResourceBlock? public var eventBlocks = [String: ObjectBlock]() // MARK: PeerKit Globals @@ -83,6 +85,14 @@ func didFinishReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPe } } +func didStartReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPeer peer: MCPeerID, withProgress progress: NSProgress!) { + if let onStartReceivingResource = onStartReceivingResource { + dispatch_async(dispatch_get_main_queue()) { + onStartReceivingResource(myPeerID: myPeerID, resourceName: resourceName, peer: peer, withProgress: progress) + } + } +} + // MARK: Advertise/Browse public func transceive(serviceType: String, discoveryInfo: [String: String]? = nil) { diff --git a/PeerKit/Session.swift b/PeerKit/Session.swift old mode 100644 new mode 100755 index 19b5bc4..7ddfd4f --- a/PeerKit/Session.swift +++ b/PeerKit/Session.swift @@ -15,6 +15,7 @@ public protocol SessionDelegate { func disconnected(myPeerID: MCPeerID, fromPeer peer: MCPeerID) func receivedData(myPeerID: MCPeerID, data: NSData, fromPeer peer: MCPeerID) func finishReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPeer peer: MCPeerID, atURL localURL: NSURL) + func startReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPeer peer: MCPeerID, withProgress progress: NSProgress!) } public class Session: NSObject, MCSessionDelegate { @@ -59,6 +60,7 @@ public class Session: NSObject, MCSessionDelegate { public func session(session: MCSession!, didStartReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, withProgress progress: NSProgress!) { // unused + delegate?.startReceivingResource(myPeerID, resourceName: resourceName, fromPeer: peerID, withProgress: progress) } public func session(session: MCSession!, didFinishReceivingResourceWithName resourceName: String!, fromPeer peerID: MCPeerID!, atURL localURL: NSURL!, withError error: NSError!) { diff --git a/PeerKit/Transceiver.swift b/PeerKit/Transceiver.swift old mode 100644 new mode 100755 index 37cddc2..ddfdf72 --- a/PeerKit/Transceiver.swift +++ b/PeerKit/Transceiver.swift @@ -69,4 +69,8 @@ public class Transceiver: SessionDelegate { public func finishReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPeer peer: MCPeerID, atURL localURL: NSURL) { didFinishReceivingResource(myPeerID, resourceName, fromPeer: peer, atURL: localURL) } + + public func startReceivingResource(myPeerID: MCPeerID, resourceName: String, fromPeer peer: MCPeerID, withProgress progress: NSProgress!) { + didStartReceivingResource(myPeerID, resourceName, fromPeer: peer, withProgress: progress) + } }