Commit Graph

52 Commits

Author SHA1 Message Date
Ray Greenwell 632366d019 Fixed bug that may occaisionally cause sound to not shut down,
removed unnecessary synchronization.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2307 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-17 18:50:18 +00:00
Ray Greenwell d1d538376f removed vestigial variable
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2306 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-17 05:28:26 +00:00
Michael Bayne ff600ddb66 Log more information if the queue is full since I saw that when entering a
sword fighting puzzle just now.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2305 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-13 18:35:03 +00:00
Ray Greenwell b0f351769c Good night Wesley, I added a runtime adjust for the output buffer size.
I'll surely remove it in the morning.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2304 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-03-12 00:28:05 +00:00
Ray Greenwell 3489a23603 Added hacked-together support for playing .ogg files.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2255 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-02-12 01:44:44 +00:00
Ray Greenwell ffa840c5ac - fixed grievous bug that NPE'd when a sound was in a bundle rather than
being loaded out of the classpath.
- enabled sound. I want to test at home with my old linux machine and see
  how things are.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2249 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-02-07 02:53:49 +00:00
Ray Greenwell 8515b2dd04 Use a RuntimeAdjust for the test sound directory pref.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2197 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-20 20:07:05 +00:00
Michael Bayne 07b9dc3177 Changed sound manager not to use LockableLRUHashMap because intermixing
locked items and non-locked items in the same cache will screw up an
otherwise healthy cache by forcing it to flush otherwise frequently used
items because there's no room left by locked items.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2168 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-17 00:21:10 +00:00
Michael Bayne 1ce6951cb6 Repackaged a few things in media: sounds stuff went into media.sound and
image stuff went into media.image.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2100 542714f4-19e9-0310-aa3c-eee0fc999fb1
2003-01-08 04:09:03 +00:00
Michael Bayne df30c37892 Log a more informative message when we catch an exception.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2059 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-12 19:00:25 +00:00
Michael Bayne a2c3741b2b A few things:
- Use Constant objects for the command constants because the toString()
output on those is more sensible.

- Fall back to the classpath if we don't find our resource in a bundle

- Don't make the sound manager thread a daemon thread as it provides a
  shutdown() which is a more civilized way to make it go away anyhow and
  allows the sound manager to be used in one-shot tools and test
  programs. At the moment, the sound manager (on Linux at least) seems to
  start up some threads that refuse to go away anyway but that's a problem
  for another time.

- Report if a command is queued up that we don't know about.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2050 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-10 21:36:33 +00:00
Walter Korman ee83234bee Removed unused imports.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2043 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-09 04:42:54 +00:00
Michael Bayne 6caca5fe5a Added code to easily disable the sound manager.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2039 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-07 22:41:10 +00:00
Ray Greenwell 83d9cf3363 added versions of lock() and unlock() that take a list of sound keys to
operate on.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2023 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-04 21:42:34 +00:00
Ray Greenwell c321f7eb33 - added debug logging so that we can see the time elapsed between the
moment that a sound is requested to just before the LineSpooler object
  that it was given to starts writing the data to a line.
- Turned drain() back on, but only if we're not running under linux.
  If we're in linux, we instead sleep for 3 seconds, and gosh darn it, the
  sound should be finished after that.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2019 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-12-04 02:14:12 +00:00
Ray Greenwell d5cc64aa87 Went back to only draining when we detect that the line is active.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2007 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-29 21:22:46 +00:00
Ray Greenwell 0403db5e73 catch NPE. A song can be the top song on the stack and not be playing
if musicvolume is 0.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@2001 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-27 21:41:53 +00:00
Ray Greenwell 2895b65909 - always drain again
- increased buffer size to 24k


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1999 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-27 00:12:14 +00:00
Ray Greenwell dd87f55b45 Fuck the windows file separator character.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1998 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-27 00:08:36 +00:00
Ray Greenwell f901cb3041 When testing, allow sounds to be cached if they're locked.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1997 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 21:14:11 +00:00
Ray Greenwell 54c486710d When music is stopped because the volume is turned to 0, don't
remove it from the playing music stack.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1996 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 18:54:39 +00:00
Ray Greenwell a4923a6151 bugfix
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1992 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 02:46:52 +00:00
Ray Greenwell 917ba53c59 - new sound loading jimmy where a package path and key specify a set of
sounds.
- added test sound directory setting.
- mp3 player needs more fixing, but allow some volume adjustment.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1990 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-26 02:39:40 +00:00
Ray Greenwell 7b6f4893a2 cleanup
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1988 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-25 20:02:31 +00:00
Ray Greenwell 963ebdf137 Added note about the drain() bug.
Don't play clips or music if the appropriate volume is zero.
If music is turned off, stop current playback immediately, but also
start it back up if the volume is turned up.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1987 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-23 03:24:26 +00:00
Ray Greenwell ef2c1ccd8b don't play sounds with clips, instead have threads that spool sound
data to open lines. Joy.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1986 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-23 02:09:36 +00:00
Michael Bayne 2c681d7291 A base class for our sound repository classes.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1985 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-22 21:54:49 +00:00
Ray Greenwell f63d7cbe09 cleanup/commenting
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1984 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-22 19:21:12 +00:00
Ray Greenwell 1953e5686c genericized music playing, made transitioning from any music type to any
other clean and good.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1983 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-22 04:23:31 +00:00
Ray Greenwell 4c19a90642 Music volume adjusts the mod player.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1979 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-20 23:06:33 +00:00
Ray Greenwell 2178d75392 mod playing capabilities.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1974 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-20 04:03:09 +00:00
Ray Greenwell 80c81b77c2 Load clips (just them for now) from a specific resource set.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1971 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-20 02:41:38 +00:00
Ray Greenwell 7da8317928 mp3 playing capabilities.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1964 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-20 01:33:34 +00:00
Ray Greenwell 20e9ccae57 Went back to not initing midi until the first song is played (and doing it
on the sound manager thread).


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1963 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-19 21:17:35 +00:00
Ray Greenwell b0aabf1478 Added support for attempting to use an alternate device to play midi,
even thought the java sequencer ignores the new Receiver.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1962 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-19 02:24:35 +00:00
Ray Greenwell 01b203fd13 added support for specifying # of loops for a song,
fixed up song stack handling with loop logic.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1956 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-16 03:17:41 +00:00
Ray Greenwell 125ef04e87 cleanup, figured out what's needed to loop midis consistently. More soon.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1954 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-16 00:13:47 +00:00
Ray Greenwell 1d602849f0 - removed verbose logging.
- when stopping a midi, remove the meta listener first so that we
  don't get the event after we've tossed the sequencer.
- changed some variable names for clarity.
- added code to shutdown the midi system when we shutdown the rest.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1952 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-15 21:38:31 +00:00
Ray Greenwell 9e881810a9 - now only two volume levels: music and clips.
- clip types are turned on or off, individually.
- wired up volume for music, and it worked, but then I angered some norse god
  and now it doesn't work anymore despite repeated poking.
- fixed up clip volume formula (copied simplified/better code from Sun example)


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1951 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-15 20:52:31 +00:00
Ray Greenwell 0c1c441288 First pass at midi/rmf support. Mostly works, but songs aren't looping more
than twice.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1949 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-15 05:34:43 +00:00
Ray Greenwell 51194278ca Store the largest Clip building blocks we can in the cache (rather than just
the byte[] data) so that subsequent plays can happen faster.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1948 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-15 02:06:41 +00:00
Ray Greenwell 6b68cb5530 The same sound file can be played multiple times simultaneously.
Sounds can be "locked" so that they don't expire from the LRU cache until
they are unlocked.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1947 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-15 01:49:47 +00:00
Ray Greenwell fe0a5f545d Allow setting the volume independantly for any SoundType.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1944 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-13 07:12:40 +00:00
Ray Greenwell 2ab8861dba - Set the resource freeing timer to operate in non-repeating mode, since I
previously stopped it every time it fired anyway.
- Enforce a maximum queue size for played sounds so that things don't get
  out of hand.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1908 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-05 21:02:03 +00:00
Ray Greenwell 271d0ffb85 a timorous transition from listening to stop events to just calculating
the time at which the sound will stop. Stop events are flawed.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1886 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-02 01:49:20 +00:00
Ray Greenwell 4cbca95044 Sound manager revamp.
- let the AudioSystem figure out the file format from the sound data.
- LRU cache for clip data
- Don't free system resources from clips until at least 4 seconds after
  they're finished playing. Reuse clips (and their resources) when possible.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1883 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-11-02 00:26:55 +00:00
Walter Korman 25bd81e59a Added facilities for disabling the playing of sound without shutting down
the sound manager wholeheartedly.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1760 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-09-30 06:13:36 +00:00
Walter Korman 567e51f08a More hideous sound hackery. We can't determine audio file format at
runtime after launching from Java Web Start because the input streams we
obtain don't support mark()/reset(), and so we hardcode the file format we
know we're using for now.  Also commented out verbose debug logging, and
cache audio file data after initial playback.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1626 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-08-02 01:45:19 +00:00
Michael Bayne ea5e5adbad Pay our respects to Chapter 12 of the JLS.
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1619 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-26 16:00:19 +00:00
Ray Greenwell 07d02f772a fixed it from horking repeatedly on my machine
git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@1618 542714f4-19e9-0310-aa3c-eee0fc999fb1
2002-07-26 00:16:47 +00:00