From fd913dca95b6d5c0b2e63c120c38c11d9a27085a Mon Sep 17 00:00:00 2001 From: Okechi Date: Fri, 4 Mar 2016 11:35:28 -0500 Subject: [PATCH] Streaming music is working now just configuring the streaming system in the currently playing screen --- GetHip/JoiningPartyViewController.swift | 2 +- GetHip/LoadingPartyViewController.swift | 11 ++++++++++- GetHip/Main.storyboard | 7 +++---- GetHip/PartyServiceManager.swift | 21 ++++----------------- GetHip/SongSelectionViewController.swift | 2 +- GetHip/TestInviteFriendsController.swift | 16 +++++++++++++--- 6 files changed, 32 insertions(+), 27 deletions(-) diff --git a/GetHip/JoiningPartyViewController.swift b/GetHip/JoiningPartyViewController.swift index 59f698b..08d696b 100644 --- a/GetHip/JoiningPartyViewController.swift +++ b/GetHip/JoiningPartyViewController.swift @@ -69,7 +69,7 @@ extension JoiningPartyViewController: PartyServiceManagerDelegate { func connectedWithPeer(peerID: MCPeerID) { println("mark 2") - var dictionary: [String: String] = ["sender": self.party.myPeerID.displayName, "instruction": "joined_party"] + var dictionary: Dictionary = ["sender": self.party.myPeerID.displayName, "instruction": "joined_party"] self.party.sendInstruction(dictionary, toPeer: peerID) } diff --git a/GetHip/LoadingPartyViewController.swift b/GetHip/LoadingPartyViewController.swift index 69a27cc..e0d7e6e 100644 --- a/GetHip/LoadingPartyViewController.swift +++ b/GetHip/LoadingPartyViewController.swift @@ -130,6 +130,10 @@ class LoadingPartyViewController: UIViewController, UICollectionViewDataSource, }else{ var dictionary: [String: String] = ["sender": self.party.myPeerID.displayName, "instruction": "start_party"] self.party.sendInstruction(dictionary, toPeer: joinedPeer! ) + + //start streaming to connected peers + self.party.outputStreamers[joinedPeer!.displayName]!.start() + } } @@ -204,7 +208,12 @@ extension LoadingPartyViewController: PartyServiceManagerDelegate { //open stream with peer let stream = self.party.outputStreamForPeer(fromPeer) - self.party.outputStreamer = TDAudioOutputStreamer(outputStream: stream) + self.party.outputStreamers[fromPeer.displayName] = TDAudioOutputStreamer(outputStream: stream) + self.party.outputStreamers[fromPeer.displayName]!.streamAudioFromURL((self.party.currentSong.valueForProperty(MPMediaItemPropertyAssetURL) as! NSURL)) + + + + /* diff --git a/GetHip/Main.storyboard b/GetHip/Main.storyboard index 12f4467..ee06a18 100644 --- a/GetHip/Main.storyboard +++ b/GetHip/Main.storyboard @@ -1056,6 +1056,7 @@ + @@ -1452,9 +1453,7 @@ - - - + @@ -1650,6 +1649,6 @@ - + diff --git a/GetHip/PartyServiceManager.swift b/GetHip/PartyServiceManager.swift index 7b7d9e0..e88f7e1 100644 --- a/GetHip/PartyServiceManager.swift +++ b/GetHip/PartyServiceManager.swift @@ -59,13 +59,12 @@ class PartyServiceManager: NSObject { //party-creator variables var currentSong: MPMediaItem! = nil - var outputStreamer: TDAudioOutputStreamer! + var outputStreamers: Dictionary = Dictionary() //party-guest variables var currentSongTitle: String! var currentSongArtistAlbum: String! var currentSongIMG: UIImage! - var songStream: NSInputStream! var inputStreamer: TDAudioInputStreamer! @@ -329,11 +328,9 @@ extension PartyServiceManager: MCSessionDelegate{ NSLog("%@", "didRecieveStream: \(streamName) from peer: \(peerID)") if streamName == "music" { - self.songStream = stream self.inputStreamer = TDAudioInputStreamer(inputStream: stream) - self.songStream.delegate = self - self.songStream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) - //self.songStream.open() + // self.songStream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode) + self.inputStreamer.start() } @@ -350,17 +347,7 @@ extension PartyServiceManager: MCSessionDelegate{ } -extension PartyServiceManager: NSStreamDelegate { - func stream(aStream: NSStream, handleEvent eventCode: NSStreamEvent) { - if(eventCode == NSStreamEvent.HasBytesAvailable){ - println("data available in stream") - }else if(eventCode == NSStreamEvent.EndEncountered) { - println("stream ended") - }else if(eventCode == NSStreamEvent.ErrorOccurred) { - println("stream error occured") - } - } -} + //state extensions diff --git a/GetHip/SongSelectionViewController.swift b/GetHip/SongSelectionViewController.swift index 9190af5..1f0c61f 100644 --- a/GetHip/SongSelectionViewController.swift +++ b/GetHip/SongSelectionViewController.swift @@ -279,7 +279,7 @@ class SongSelectionViewController: UIViewController, UITableViewDelegate, UITabl for i_peer in self.party.invitedFriends{ for peer in self.party.foundPeers { if (peer.displayName == i_peer.displayName){ - self.party.serviceBrowser.invitePeer(peer, toSession: self.party.session, withContext: nil, timeout: 1000.0) + self.party.serviceBrowser.invitePeer(peer, toSession: self.party.session, withContext: nil, timeout: 70.0) break } diff --git a/GetHip/TestInviteFriendsController.swift b/GetHip/TestInviteFriendsController.swift index 70e72c8..022ee04 100644 --- a/GetHip/TestInviteFriendsController.swift +++ b/GetHip/TestInviteFriendsController.swift @@ -183,14 +183,24 @@ class TestInviteFriendsController: UIViewController, UITableViewDelegate, UITabl func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) { let cell = table.cellForRowAtIndexPath(indexPath) as? TestInviteFriendsCell + //println(cell?.friendName.text) + //println(indexPath.row) + var index = 0 - if self.isFriendSelected[indexPath.row] == false{ + for(var i = 0; i < self.frnds.count; i++){ + if(self.frnds[i].displayName == cell?.friendName.text){ + index = i + break + } + } + + if self.isFriendSelected[index] == false{ cell!.rdioButton.setBackgroundImage(UIImage(named: "Blue Check.png"), forState: UIControlState.Normal) - self.isFriendSelected[indexPath.row] = true + self.isFriendSelected[index] = true } else{ cell!.rdioButton.setBackgroundImage(UIImage(named: "Tap Circle.png"), forState: UIControlState.Normal) - self.isFriendSelected[indexPath.row] = false + self.isFriendSelected[index] = false }