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
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
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
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
def setCandidate(): curcontest = race.selectionList[contestPosition] candidateName = curcontest.selectionList[candidatePosition].name candidate.clear() candidate.add(HTML('<b /> Candidate: %s' % candidateName)) playAudio(currObj.audioPath)
def ondoneballot(e): print('\nVoting complete! Thanks for using this system!') playAudio("media/finish.wav")