Example #1
0
def onreviewballot(e):
    global contestPosition
    contestPosition = -1
    text = "Review your selections: "
    print('\n'+text)
    playAudio("media/reviewBallot.wav", 'play')
    for contest in race.selectionList:
        print(contest.name + ': ' + contest.userSelection[0].name)
        review_path.append(contest.audioPath)
        review_path.append(contest.userSelection[0].audioPath)
        #playAudio(contest.audioPath)
    print review_path
Example #2
0
def setContest():
    global candidatePosition
    curcontest = race.selectionList[contestPosition]
    contest.clear()
    contest.add(HTML('<b /> Contest: %s' % curcontest.name))
    candidateList = curcontest.selectionList
    if not curcontest.userSelection:
        candidatePosition = 0
        selection.clear()
        selection.add(HTML('<b /> Selection: -'))
    else:
        candidatePosition = candidateList.index(curcontest.userSelection[-1]) 
        selection.clear()
        selection.add(HTML('<b /> Selection: %s' % curcontest.userSelection[-1].name))
    playAudio(currObj.audioPath)
    print currObj.audioPath #TODO
Example #3
0
def setConfirm(num):
    confirm += num;
    status.clear()
    if confirm % 2 == 0:
        status.add(HTML('YES'))
        if fsm.current == "review_ballot":
            playAudio("/media/ballot.wav", confirm=True)
        else:
            playAudio(currObj.audioPath, confirm=True)
        return True
    else:
        status.add(HTML('NO'))
        playAudio(currObj.audioPath, confirm=False)
        return False
Example #4
0
def onKeyPress(sender, keycode, modifiers):
    global contestPosition, candidatePosition, fsm, currObj, confirm
    
    contestList = race.selectionList
    candidateList = race.selectionList[contestPosition].selectionList
    
    if keycode == KeyboardListener.KEY_SHIFT:
#        audioPath = ['media/contest1.wav', 'media/contest1_candidate1.wav', 'media/contest2.wav', 'media/contest2_candidate1.wav', 'media/contest3.wav', 'media/contest3_candidate1.wav']
#        playAudioList(audioPath)
#        JS('''
#        mainSnd.playbackRate = 2.0;
#        ''')
        JS('''
        mySound1.fadeOut(2000);
        ''')
    
    if keycode == KeyboardListener.KEY_CTRL:
        JS('''
        mySound1.setVolume(80);
        mySound1.play();
        ''')

    # Contests, only keys allowed are Up/Down to cycle contests, and Enter to select
    if keycode == KeyboardListener.KEY_UP:
        if fsm.current == 'contests' or fsm.current == 'candidates':
            contestPosition = (contestPosition+1) if (contestPosition+1<len(contestList)) else 0
            currObj = race.selectionList[contestPosition]
            setContest()
            candidate.clear()
            if fsm.current == 'candidates': fsm.reselectContest()
    
    elif keycode == KeyboardListener.KEY_DOWN:
        if fsm.current == 'contests' or fsm.current == 'candidates':
            contestPosition = len(contestList)-1 if (contestPosition==0) else contestPosition-1
            currObj = race.selectionList[contestPosition]
            setContest()
            candidate.clear()
            if fsm.current == 'candidates': fsm.reselectContest()
            
    elif keycode == KeyboardListener.KEY_RIGHT:
        print fsm.current
        if fsm.current == 'candidates' or fsm.current == 'change_candidates': 
            candidatePosition = (candidatePosition+1) if (candidatePosition+1<len(candidateList)) else 0
            currObj = race.selectionList[contestPosition].selectionList[candidatePosition]
            setCandidate()
#        elif fsm.current == 'review_candidates' or fsm.current == 'review_ballot':
#            setConfirm(1)
        elif fsm.current == 'review_candidates':
            pauseAudio()
            fsm.reselectCandidates()
            playAudio('', False) 
        elif fsm.current == 'review_ballot':
            fsm.inReviewChangeCandidates()

               
    
    elif keycode == KeyboardListener.KEY_LEFT:
        if fsm.current == 'candidates':
            candidatePosition = len(candidateList)-1 if (candidatePosition==0) else candidatePosition-1
            currObj = race.selectionList[contestPosition].selectionList[candidatePosition]
            setCandidate()
#        elif fsm.current == 'review_candidates' or fsm.current == 'review_ballot':
#            setConfirm(-1) TODO
    
    elif keycode == KeyboardListener.KEY_ENTER:
        pauseAudio();
        if fsm.current == 'contests':   
            currObj = race.selectionList[contestPosition].selectionList[candidatePosition]
            fsm.selectCandidate()
            setCandidate()
            return
        elif fsm.current == 'candidates' or fsm.current == 'change_candidates':
            fsm.reviewCandidates()
            setConfirm(0)
            return
        elif fsm.current == 'review_candidates':
            if confirm % 2 == 0:
                #race.selectionList[contestPosition].userSelection.append(candidatePosition)
                makeSelection() 
                playAudio(currObj.audioPath)
                fsm.doneReview()
                #onKeyPress('', KeyboardListener.KEY_DOWN, '')
            else:
                fsm.reselectCandidates()
                confirm = 0     #hack to make the count work. not happy with the whole count thing :(
        elif fsm.current == 'review_ballot':
            if len(review_path) != 0:
                contestPosition = contestPosition + 1
                review_contest = review_path.pop(0)
                review_selection = review_path.pop(0)
                audioList = [review_contest, review_selection]
                print audioList
                playAudioList(audioList)
            else:
                playAudio('media/finish.wav', 'play')
#            if confirm % 2 == 0:
#                fsm.doneBallot()
#            else:
#                fsm.reselectContest()
    
    else:
        return
Example #5
0
def setCandidate():
    curcontest = race.selectionList[contestPosition]
    candidateName = curcontest.selectionList[candidatePosition].name
    candidate.clear()
    candidate.add(HTML('<b /> Candidate: %s' % candidateName))
    playAudio(currObj.audioPath)
Example #6
0
def ondoneballot(e):
    print('\nVoting complete! Thanks for using this system!')
    playAudio("media/finish.wav")