Skip to content

Instantly share code, notes, and snippets.

/Sentence.swift Secret

Created February 5, 2016 20:12
Show Gist options
  • Save anonymous/e0839eae1d77e1e4b671 to your computer and use it in GitHub Desktop.
Save anonymous/e0839eae1d77e1e4b671 to your computer and use it in GitHub Desktop.
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