def dev_stop_then_play(): log("thread stops the playback") AATApp.playback_stop(device) time.sleep(4) log("thread starts the playback") AATApp.playback_nonoffload(device) log("thread returns")
def playback_task_run(device): log("dev_playback_start(nonoffload)") AATApp.playback_nonoffload(device) th = DetectionStateChangeListenerThread() th.start() log("ToneDetector.start_listen(target_freq={})".format(OUT_FREQ)) ToneDetector.start_listen( target_freq=OUT_FREQ, cb=lambda event: th.tone_detected_event_cb(event)) # Waiting for the event of tone detected, blocking with a 5 secs timeout if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the function...") AATApp.playback_stop(device) return time.sleep(1) # The thread just stops the playback and then continues def dev_stop_then_play(): log("thread stops the playback") AATApp.playback_stop(device) time.sleep(4) log("thread starts the playback") AATApp.playback_nonoffload(device) log("thread returns") threading.Thread(target=dev_stop_then_play).start() log("Waiting for {} Hz pure tone detected".format(OUT_FREQ)) # Waiting the event that the tone is detected again after the tone is missing elapsed = th.wait_for_event( DetectionStateChangeListenerThread.Event.RISING_EDGE, timeout=10) log("elapsed: {} ms".format(elapsed)) log("ToneDetector.stop_listen()") ToneDetector.stop_listen() th.join() log("dev_playback_stop(nonoffload)") AATApp.playback_stop(device)
def playback_task_run(device, serialno, num_iter=1): log("playback_task_run++") trials = [] th = DetectionStateChangeListenerThread() th.start() log("ToneDetector.start_listen(target_freq={})".format(OUT_FREQ)) ToneDetector.start_listen( target_freq=OUT_FREQ, cb=lambda event: th.tone_detected_event_cb(event)) funcs = { "nonoffload": AATApp.playback_nonoffload, "offload": AATApp.playback_offload } for i in range(num_iter): log("-------- playback_task #{} --------".format(i + 1)) for name, func in funcs.items(): trial = Trial(taskname="playback_{}".format(name)) trial.put_extra(name="iter_id", value=i + 1) log("dev_playback_{}_start".format(name)) time.sleep(1) th.reset() log("trigger_asr() for idle") trigger_asr(serialno) #time.sleep(2) log("reset DetectionStateChangeListener") func(device) if th.wait_for_event( DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time..." ) AATApp.playback_stop(device) trial.invalidate( errormsg="early return, possible reason: rx no sound") trials.append(trial) continue time.sleep(1) log("trigger_asr()") #AATApp.trigger_ssr(device) trigger_asr(serialno) if PARTIAL_RAMDUMP_ENABLED: handle_ssr_ui() log("Waiting for SSR recovery") elapsed = th.wait_for_event( DetectionStateChangeListenerThread.Event.RISING_EDGE, timeout=10) log("elapsed: {} ms".format(elapsed)) if PARTIAL_RAMDUMP_ENABLED: log("Waiting for the partial ramdump completed") handle_ssr_ui() if elapsed >= 0 and not PARTIAL_RAMDUMP_ENABLED: time.sleep(10 - elapsed / 1000.0) trial.put_extra(name="elapsed", value=elapsed) trials.append(trial) log("dev_playback_stop") AATApp.playback_stop(device) th.wait_for_event( DetectionStateChangeListenerThread.Event.INACTIVE, timeout=5) log("-------- playback_task done --------") log("ToneDetector.stop_listen()") ToneDetector.stop_listen() th.join() log("playback_task_run--") return trials
def playback_task2_run(device, num_iter=1): package = "com.htc.audiofunctionsdemo" activity = ".activities.MainActivity" component = package + "/" + activity log("playback_task2_run++") device.startActivity(component=component) th = DetectionStateChangeListenerThread() th.start() log("ToneDetector.start_listen(target_freq={})".format(OUT_FREQ)) ToneDetector.start_listen( target_freq=OUT_FREQ, cb=lambda event: th.tone_detected_event_cb(event)) funcs = { "nonoffload": AATApp.playback_nonoffload, } formats = { "1k_Stereo_48k_16bits_aac.aac": 1000, "1k_Stereo_48k_16bits_wav.wav": 1000, "1k_Stereo_96k_24bits_flac.flac": 1000 } freqss = {440, 1100, 1150} for i in range(num_iter): log("-------- playback_task2 #{} --------".format(i + 1)) for name, func in funcs.items(): log("dev_playback_{}_start".format(name)) for file, freq in formats.items(): log("ToneDetector.start_listen(target_freq={})".format(freq)) ToneDetector.start_listen( target_freq=freq, cb=lambda event: th.tone_detected_event_cb(event)) log("dev_playback_{}_start".format(name)) time.sleep(2) th.reset() log("reset DetectionStateChangeListener") func(device, file) log("-> playback start:") if th.wait_for_event( DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time..." ) AATApp.playback_stop(device) continue else: log("-> playback start: pass") time.sleep(2) ''' log("-> playback pause:") th.reset() AATApp.playback_pause_resume(device) time.sleep(1) if th.wait_for_event(DetectionStateChangeListenerThread.Event.INACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) continue else: log("-> playback pause: pass") time.sleep(1) log("-> playback resume:") th.reset() AATApp.playback_pause_resume(device) if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) continue else: log("-> playback resume: pass") time.sleep(1) ''' log("-> playback seek:") th.reset() AATApp.playback_seek(device) if th.wait_for_event( DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time..." ) AATApp.playback_stop(device) continue else: log("-> playback seek: pass") time.sleep(2) log("-> playback forward:") th.reset() AATApp.playback_forward(device) if th.wait_for_event( DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time..." ) AATApp.playback_stop(device) continue else: log("-> playback forward: pass") time.sleep(2) log("dev_playback_stop") th.reset() AATApp.playback_stop(device) log("stoping->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>") th.wait_for_event( DetectionStateChangeListenerThread.Event.INACTIVE, timeout=3) log("stoping") #time.sleep(1) log("-------- playback_task2 done --------") log("ToneDetector.stop_listen()") ToneDetector.stop_listen() th.join() log("playback_task2_run--") return
def playback_task_run(device, num_iter=1): package = "com.htc.audiofunctionsdemo" activity = ".activities.MainActivity" component = package + "/" + activity # force stop app string cmd = " ".join(["am", "force-stop", package]) log("playback_task_run++") device.startActivity(component=component) time.sleep(1) th = DetectionStateChangeListenerThread() th.start() funcs = { "nonoffload": AATApp.playback_nonoffload, #"offload" : AATApp.playback_offload } for i in range(num_iter): log("-------- playback_task #{} --------".format(i + 1)) for name, func in funcs.items(): func(device, "pop.wav") time.sleep(1) log("ToneDetector.start_listen(target_freq={})".format(OUT_FREQ)) ToneDetector.start_listen( target_freq=OUT_FREQ, cb=lambda event: th.tone_detected_event_cb(event)) log("dev_playback_{}_start".format(name)) th.reset() log("reset DetectionStateChangeListener") log("-> playback start:") ''' if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=1) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) continue else: log("-> playback start: pass") ''' pop = AudioFunction.get_pop() if pop: log("pop detect") else: log("no pop") time.sleep(4) pop = AudioFunction.get_pop() if pop: log("pop detect") else: log("no pop") log("dev_playback_stop") th.reset() AATApp.playback_stop(device) time.sleep(2) #th.wait_for_event(DetectionStateChangeListenerThread.Event.INACTIVE, timeout=1) log("stoping") log("-------- playback_task done --------") log("ToneDetector.stop_listen()") ToneDetector.stop_listen() th.join() AATApp.playback_stop(device) device.shell(cmd) log("playback_task_run--") return
def playback_format_task_run(device, num_iter=1): log("playback_format_task_run++") package = "com.htc.audiofunctionsdemo" activity = ".activities.MainActivity" component = package + "/" + activity trials = [] device.startActivity(component=component) th = DetectionStateChangeListenerThread() th.start() funcs = { "nonoffload": AATApp.playback_nonoffload } formats = { "1k_Stereo_48k_16bits_aac.aac": 1000, "1k_Stereo_48k_16bits_wav.wav": 1000, "1k_Stereo_96k_24bits_flac.flac": 1000 } # force stop app string cmd = " ".join(["am", "force-stop", package]) for i in range(num_iter): log("-------- playback_format_task #{} --------".format(i+1)) for name, func in funcs.items(): log("dev_playback_{}_start".format(name)) for file, freq in formats.items(): trial = Trial(taskname="playback_{}_{}".format(name, file)) trial.put_extra(name="iter_id", value=i+1) log("playback_file_{}".format(file)) log("ToneDetector.start_listen(target_freq={})".format(freq)) ToneDetector.start_listen(target_freq=freq, cb=lambda event: th.tone_detected_event_cb(event)) time.sleep(1) th.reset() log("reset DetectionStateChangeListener") func(device, file) log("-> playback start function:") if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) trial.invalidate(errormsg="start play fail") trials.append(trial) continue else: log("-> playback start function: pass") trial.put_extra(name="playback start", value="pass") pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") time.sleep(0.5) log("-> playback pause function:") th.reset() AATApp.playback_pause_resume(device) #time.sleep(1) if th.wait_for_event(DetectionStateChangeListenerThread.Event.INACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) trial.invalidate(errormsg="pause fail") trials.append(trial) continue else: log("-> playback pause function: pass") trial.put_extra(name="playback pause", value="pass") pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") time.sleep(1) log("-> playback resume function:") th.reset() AATApp.playback_pause_resume(device) if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) trial.invalidate(errormsg="resume fail") trials.append(trial) continue else: log("-> playback resume: pass") trial.put_extra(name="playback resume", value="pass") pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") time.sleep(1) log("-> playback seek function:") th.reset() AATApp.playback_seek(device) if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) trial.invalidate(errormsg="seek fail") trials.append(trial) continue else: log("-> playback seek: pass") trial.put_extra(name="playback seek", value="pass") pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") time.sleep(2) log("-> playback forward function:") th.reset() AATApp.playback_forward(device) if th.wait_for_event(DetectionStateChangeListenerThread.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time...") AATApp.playback_stop(device) trial.invalidate(errormsg="forward fail") trials.append(trial) continue else: log("-> playback forward function: pass") trial.put_extra(name="playback forward", value="pass") pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") time.sleep(2) th.reset() AATApp.playback_stop(device) log("dev_playback_stop") elapsed = th.wait_for_event(DetectionStateChangeListenerThread.Event.INACTIVE, timeout=5) trial.put_extra(name="elapsed", value=elapsed) pop = AudioFunction.get_pop() if pop: log("pop detect") trial.put_extra(name="playback start", value="pop") trials.append(trial) log("ToneDetector.stop_listen()") ToneDetector.stop_listen() th.join() device.shell(cmd) log("playback_task_run--") return trials
def playback_task_run(device, num_iter=1): log("playback_task_run++") trials = [] stm = DetectionStateListener() log("ToneDetector.start_listen(target_freq={})".format(OUT_FREQ)) ToneDetector.start_listen( target_freq=OUT_FREQ, cb=lambda event: stm.tone_detected_event_cb(event)) funcs = { "nonoffload": AATApp.playback_nonoffload, "offload": AATApp.playback_offload } files = {"nonoffload": "440Hz_wav.wav", "offload": "440Hz_mp3.mp3"} for i in range(num_iter): log("-------- playback_task #{} --------".format(i + 1)) for name, func in funcs.items(): trial = Trial(taskname="playback_{}".format(name), pass_check=lambda t: t.ds["extra"]["elapsed"] > 0) trial.put_extra(name="iter_id", value=i + 1) AATApp.print_log(device, severity="i", tag=TAG, log="playback_{}_task #{}".format(name, i + 1)) log("dev_playback_{}_start".format(name)) time.sleep(1) stm.reset() log("reset DetectionStateChangeListener") func(device, filename=files[name]) if stm.wait_for_event(DetectionStateListener.Event.ACTIVE, timeout=5) < 0: log("the tone was not detected, abort the iteration this time..." ) AATApp.playback_stop(device) trial.invalidate( errormsg="early return, possible reason: rx no sound") trials.append(trial) continue time.sleep(1) log("trigger_ssr()") AATApp.trigger_ssr(device) if PARTIAL_RAMDUMP_ENABLED: handle_ssr_ui() log("Waiting for SSR recovery") elapsed = stm.wait_for_event( DetectionStateListener.Event.RISING_EDGE, timeout=10) log("elapsed: {} ms".format(elapsed)) if PARTIAL_RAMDUMP_ENABLED: log("Waiting for the partial ramdump completed") handle_ssr_ui() if elapsed >= 0 and not PARTIAL_RAMDUMP_ENABLED: time.sleep(10 - elapsed / 1000.0) trial.put_extra(name="elapsed", value=elapsed) trials.append(trial) log("dev_playback_stop") AATApp.playback_stop(device) stm.wait_for_event(DetectionStateListener.Event.INACTIVE, timeout=5) log("-------- playback_task done --------") log("ToneDetector.stop_listen()") ToneDetector.stop_listen() log("playback_task_run--") return trials