-
-
Save anonymous/e0839eae1d77e1e4b671 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import Foundation | |
protocol SoundEventDelegate: class { | |
func eventStarted(text:String) | |
} | |
class SharingManager{ | |
var smallBigText : String = "KLANG!" | |
static let sharedInstance = SharingManager() | |
} | |
class SoundEvent { | |
var text:String | |
var duration:Double | |
init(text: String, duration: Double){ | |
self.text = text | |
self.duration = duration | |
} | |
weak var delegate: SoundEventDelegate? | |
func startEvent(){ | |
delegate?.eventStarted(self.text) | |
} | |
func getDuration() -> Double{ | |
return self.duration //TODO is this common practice? | |
} | |
} | |
class Sentence : NSObject { | |
var type="" | |
var eventArray:[SoundEvent] = [] | |
var sentenceDelegate: SentenceDelegate? = nil | |
weak var soundEventDelegate: SoundEventDelegate? = nil { | |
didSet { | |
eventArray.forEach() {$0.delegate = soundEventDelegate} | |
} | |
} | |
init(type :String){ | |
super.init() | |
let DurationsArray = [0.1, 3.4, 5.1] | |
let durationIndex1 = arc4random_uniform(3) | |
let durationIndex2 = arc4random_uniform(3) | |
let durationIndex3 = arc4random_uniform(3) | |
if (type=="S1"){ | |
// kkG | |
let event1 = SoundEvent(text: "klein", duration: DurationsArray[Int(durationIndex1)]) | |
let event2 = SoundEvent(text: "klein", duration: DurationsArray[Int(durationIndex2)]) | |
let event3 = SoundEvent(text : "Groß", duration: DurationsArray[Int(durationIndex3)]) | |
self.type = "S1" | |
self.eventArray.append(event1) | |
self.eventArray.append(event2) | |
self.eventArray.append(event3) | |
} | |
else if (type=="S2"){ | |
let event1 = SoundEvent(text: "Groß", duration: DurationsArray[Int(durationIndex1)]) | |
let event2 = SoundEvent(text: "Groß", duration: DurationsArray[Int(durationIndex2)]) | |
let event3 = SoundEvent(text : "klein", duration: DurationsArray[Int(durationIndex3)]) | |
self.type = "S2" | |
self.eventArray.append(event1) | |
self.eventArray.append(event2) | |
self.eventArray.append(event3) | |
} | |
else if (type=="S3"){ | |
let event1 = SoundEvent(text: "Groß", duration: DurationsArray[Int(durationIndex1)]) | |
let event2 = SoundEvent(text: "klein", duration: DurationsArray[Int(durationIndex2)]) | |
let event3 = SoundEvent(text : "Groß", duration: DurationsArray[Int(durationIndex3)]) | |
self.type = "S3" | |
self.eventArray.append(event1) | |
self.eventArray.append(event2) | |
self.eventArray.append(event3) | |
} | |
else{ | |
//Wrong input given | |
} | |
} | |
var delegate : SentenceDelegate? | |
func sentenceDidFinish(){ | |
delegate?.sentenceDidFinish(self) | |
} | |
func start(){ | |
self.playEvent(0) | |
} | |
func playEvent(eventIndex : Int){ | |
if (eventIndex < 2){ | |
let currEvent = self.eventArray[eventIndex] | |
currEvent.startEvent() | |
let nextIndex = eventIndex + 1 | |
print("Play Event event id is ", eventIndex) | |
NSTimer.scheduledTimerWithTimeInterval(currEvent.duration, target: self, selector: Selector("playEvent:"), userInfo: NSNumber(integer: nextIndex), repeats: false) | |
} | |
else if (eventIndex==2){ | |
self.eventArray[eventIndex].startEvent() | |
print("Play Event event id is ", eventIndex) | |
NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: Selector("sentenceDidFinish"), userInfo: nil, repeats: false) | |
} | |
else{ | |
//rien faire. | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment