[OpenBIOS] r630 - cpu/x86/pc/olpc dev/geode/ac97

svn at openbios.org svn at openbios.org
Thu Sep 20 00:19:22 CEST 2007


Author: wmb
Date: 2007-09-20 00:19:21 +0200 (Thu, 20 Sep 2007)
New Revision: 630

Added:
   cpu/x86/pc/olpc/sound.fth
Modified:
   dev/geode/ac97/ac97.fth
Log:
OLPC audio - Added persistent storage for the startup sound playback volume.














Added: cpu/x86/pc/olpc/sound.fth
===================================================================
--- cpu/x86/pc/olpc/sound.fth	                        (rev 0)
+++ cpu/x86/pc/olpc/sound.fth	2007-09-19 22:19:21 UTC (rev 630)
@@ -0,0 +1,64 @@
+purpose: Manage startup sound, with persistent storage for its volume
+\ See license at end of file
+
+h# -9 constant default-volume
+: set-saved-volume  ( volume -- )  dup h# 80 cmos!  invert h# 81 cmos!  ;
+
+: get-saved-volume  ( -- volume )
+   h# 80 cmos@  h# 81 cmos@   ( volume check )
+   over xor  h# ff  <>  if     ( volume )
+      drop default-volume  set-saved-volume
+      default-volume
+   then
+
+   dup h# 80 and  if  \ Sign extend
+      h# ffffff00 or
+   else
+      dup 0>  if
+         drop default-volume  set-saved-volume
+         default-volume
+      then
+   then
+;
+
+: +volume  ( increment -- )
+   get-saved-volume +  0 min  d# -50 max  set-saved-volume
+   audio-ih  if  get-saved-volume " set-volume" $call-audio  then
+;
+: softer  ( -- )  -2 +volume  ;
+: louder  ( -- )   2 +volume  ;
+
+: sound  ( -- )
+   get-saved-volume  d# -50 <=  if  exit  then
+   playback-volume >r  get-saved-volume to playback-volume
+   ['] load-started behavior  >r
+   ['] noop to load-started
+   " rom:splash" ['] $play-wav catch  if  2drop  then
+   r> to load-started
+   r> to playback-volume
+;
+
+
+\ LICENSE_BEGIN
+\ Copyright (c) 2006 FirmWorks
+\ 
+\ Permission is hereby granted, free of charge, to any person obtaining
+\ a copy of this software and associated documentation files (the
+\ "Software"), to deal in the Software without restriction, including
+\ without limitation the rights to use, copy, modify, merge, publish,
+\ distribute, sublicense, and/or sell copies of the Software, and to
+\ permit persons to whom the Software is furnished to do so, subject to
+\ the following conditions:
+\ 
+\ The above copyright notice and this permission notice shall be
+\ included in all copies or substantial portions of the Software.
+\ 
+\ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+\ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+\ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+\ NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+\ LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+\ OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+\ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+\
+\ LICENSE_END

Modified: dev/geode/ac97/ac97.fth
===================================================================
--- dev/geode/ac97/ac97.fth	2007-09-19 22:17:59 UTC (rev 629)
+++ dev/geode/ac97/ac97.fth	2007-09-19 22:19:21 UTC (rev 630)
@@ -225,6 +225,7 @@
 : set-volume  ( db -- )
    dup 0>  if  drop 0  then
    negate  1+ 2* 3 /  dup bwjoin  to volume
+   volume h# 38 codec!            \ headphone/surround output pin gain
 ;
 
 : open-out  ( -- )




More information about the OpenBIOS mailing list