Author: wmb Date: 2009-11-03 02:11:15 +0100 (Tue, 03 Nov 2009) New Revision: 1455
Modified: cpu/x86/pc/olpc/sound.fth cpu/x86/pc/olpc/via/fw.bth dev/hdaudio/core.fth ofw/core/ofwcore.fth Log: OLPC trac 9589 - Fixed several cases where the startup sound would be left playing instead of automatically turning off after one play of the sound. At the same time, I prevented the frame key from interrupting the early startup, which could lead to the display not working right. The startup sound now stops abruptly when you go to the ok prompt. That is intentional.
Modified: cpu/x86/pc/olpc/sound.fth =================================================================== --- cpu/x86/pc/olpc/sound.fth 2009-11-03 01:07:21 UTC (rev 1454) +++ cpu/x86/pc/olpc/sound.fth 2009-11-03 01:11:15 UTC (rev 1455) @@ -40,6 +40,9 @@ : sound-end ( -- ) " wait-sound" ['] $call-audio catch if 2drop then ; +: stop-sound ( -- ) + " stop-sound" ['] $call-audio catch if 2drop then +;
\ LICENSE_BEGIN \ Copyright (c) 2006 FirmWorks
Modified: cpu/x86/pc/olpc/via/fw.bth =================================================================== --- cpu/x86/pc/olpc/via/fw.bth 2009-11-03 01:07:21 UTC (rev 1454) +++ cpu/x86/pc/olpc/via/fw.bth 2009-11-03 01:11:15 UTC (rev 1455) @@ -550,7 +550,6 @@ cursor-off true to text-on?
- " //null" open-dev to null-ih \ For text-off state
?gui-banner @@ -639,6 +638,7 @@ ?factory-mode ?factory-boot-sequence
+ disable-user-aborts console-start
board-revision 0= if @@ -687,6 +687,8 @@ blue-letters ." Type 'help' for more information." black-letters cr cr
+ enable-user-aborts + stop-sound quit ;
Modified: dev/hdaudio/core.fth =================================================================== --- dev/hdaudio/core.fth 2009-11-03 01:07:21 UTC (rev 1454) +++ dev/hdaudio/core.fth 2009-11-03 01:11:15 UTC (rev 1455) @@ -450,7 +450,6 @@ ;
: write-done ( -- ) - wait-stream-done stop-stream free-bdl release-sound-buffer @@ -460,12 +459,21 @@ 4 to sd# audio-out install-playback-alarm true to playing? ;
+false value stop-lock +: stop-sound ( -- ) + true to stop-lock + playing? if write-done false to playing? then + false to stop-lock +; + \ Alarm handle to stop the stream when the content has been played. : playback-completed-alarm ( -- ) - sd# ( sd# ) - 4 to sd# ( sd# ) - stream-done? if write-done false to playing? then ( sd# ) - to sd# ( ) + stop-lock if exit then + playing? if + sd# 4 to sd# ( sd# ) + stream-done? if write-done false to playing? then ( sd# ) + to sd# ( ) + then ;
' playback-completed-alarm is playback-alarm
Modified: ofw/core/ofwcore.fth =================================================================== --- ofw/core/ofwcore.fth 2009-11-03 01:07:21 UTC (rev 1454) +++ ofw/core/ofwcore.fth 2009-11-03 01:11:15 UTC (rev 1455) @@ -173,9 +173,12 @@ \ From reenter.fth headerless nuser aborted? aborted? off +1 value allow-user-aborts? \ Must be 0/1 instead of false/true because of the incrementing in the low-level handler +: enable-user-aborts ( -- ) 1 to allow-user-aborts? ; +: disable-user-aborts ( -- ) 0 to allow-user-aborts? ;
headers -: user-abort ( -- ) 1 aborted? ! ; +: user-abort ( -- ) allow-user-aborts? aborted? ! ; headerless
\ System and version identification
openfirmware@openfirmware.info