Commit Graph
24178 Commits
Author SHA1 Message Date
Glenn Maynard 3deabcbe2f handle WOULD_BLOCK 2006-12-22 21:30:14 +00:00
Glenn Maynard 1683b9951a RSGS::GetDataForSound also like Read 2006-12-22 21:28:16 +00:00
Glenn Maynard 24624a5c92 GetDataToPlay API more like RSR::Read 2006-12-22 21:24:19 +00:00
Glenn Maynard 1b18090e90 remove ReachedEOF 2006-12-22 21:18:29 +00:00
Glenn Maynard bfed0b6f83 always go into PLAYING 2006-12-22 21:17:34 +00:00
Glenn Maynard 129250bfd0 handle STREAM_LOOPED 2006-12-22 12:09:36 +00:00
Glenn Maynard 02aed7bb65 Read() returns 2006-12-22 12:09:04 +00:00
Glenn Maynard 65f61daf82 add RageSoundReader_ThreadedBuffer. This will be used to
replace the big 32k streaming buffer in RSoundDriver_Generic.  This
can be placed earlier in the filter chain, so we can buffer audio
far ahead without introducing latency.
2006-12-22 12:07:43 +00:00
Glenn Maynard 09ef507084 add RageThread copy ctor, RageEvent::WaitTimeoutSupported 2006-12-22 11:34:37 +00:00
Glenn Maynard b97d527d02 add EventImpl::WaitTimeoutSupported 2006-12-22 10:39:55 +00:00
Glenn Maynard 53b4dc4b7c fix GetNextSourceFrame < 0 2006-12-22 08:16:17 +00:00
Glenn Maynard 27b4606e9d add RageSoundReader_Extend. This implements several RageSound
features (eg. fading, looping), but in a way that can be applied anywhere
in a sound filter chain.
2006-12-22 08:15:46 +00:00
Glenn Maynard 32bf31638f fix RageSoundReader_Chain::SetPosition(0) 2006-12-22 08:12:57 +00:00
Glenn Maynard be8c435569 fix RageSoundReader_Split::SetPosition(0) 2006-12-22 08:11:58 +00:00
Glenn Maynard 3a1d1e129f use RetriedRead 2006-12-22 06:14:20 +00:00
Glenn Maynard a844c8b1c9 add RageSoundReader::RetriedRead 2006-12-22 06:08:40 +00:00
Glenn Maynard a7d3a539ee fixup (still unused) code 2006-12-22 06:06:57 +00:00
Glenn Maynard 4516298901 simplify EOF handling 2006-12-22 06:01:49 +00:00
Glenn Maynard 3554fdeac0 copy error: break, not continue 2006-12-22 05:59:23 +00:00
Glenn Maynard cd74aab240 stay synched through partial blocks 2006-12-22 05:58:19 +00:00
Glenn Maynard 3d6811191b simplify 2006-12-22 05:54:23 +00:00
Glenn Maynard 4d6829e7bc simplify 2006-12-22 05:51:36 +00:00
Glenn Maynard 3127f812dd cleanup; handle different numbers of channels 2006-12-22 05:36:50 +00:00
Glenn Maynard 5bb87d4eff add GetNumSounds 2006-12-22 05:27:25 +00:00
Glenn Maynard fa33890a78 fix RageSoundReader_Silence END_OF_FILE 2006-12-21 23:41:02 +00:00
Glenn Maynard d2db2ffd5c don't SetParams constantly 2006-12-21 07:16:56 +00:00
Glenn Maynard d2b8ac925a comment 2006-12-21 05:37:09 +00:00
Glenn Maynard 1b60b0a86d fix up seeking 2006-12-21 05:26:24 +00:00
Glenn Maynard 8f67314017 merge tests; check SetPosition(0) return value 2006-12-21 05:15:33 +00:00
Glenn Maynard 6176e8dab3 api update 2006-12-21 05:08:12 +00:00
Glenn Maynard aa4be6dffb Return 1 from SetPosition(n) on success, 0 on seek past EOF, not
"the position seeked to".  This fixes a special case: SetPosition(n)
returning 0 was EOF except when SetPosition(0).  The returned value
on success was always n, anyway; we never seek to a different position
and return success.
2006-12-21 05:07:49 +00:00
Glenn Maynard ea7e48e08e move secure random code 2006-12-20 23:17:57 +00:00
Glenn Maynard b8cb44c0be remove unused 2006-12-20 23:08:45 +00:00
Glenn Maynard db819c196e build update 2006-12-20 21:55:32 +00:00
Glenn Maynard b61de509a4 don't use crypt directly 2006-12-20 12:00:17 +00:00
Glenn Maynard 9ce5ed8f88 fixup path lookup 2006-12-20 03:44:58 +00:00
Glenn Maynard c3cf5ef59e remove ProcessMessages 2006-12-20 01:11:49 +00:00
Glenn Maynard eb65a1bec2 increase LUA_IDSIZE 2006-12-20 00:18:36 +00:00
Glenn Maynard 9fa41a8aef fix conversion 2006-12-19 23:55:42 +00:00
Glenn Maynard 651bc15c55 cleanup 2006-12-19 09:43:05 +00:00
Glenn Maynard 73ebb69687 get_write_pointer helper 2006-12-19 09:42:45 +00:00
Glenn Maynard 0340f75745 don't count credits added on the system menu in bookkeeping 2006-12-19 09:09:16 +00:00
Glenn Maynard b29f884b95 remove old param 2006-12-19 09:05:27 +00:00
Glenn Maynard fd42989229 slightly odd, but practical: handle coin counter in LightsMan 2006-12-19 09:02:40 +00:00
Glenn Maynard 435ec1818a remove EnterTimeCriticalSection/ExitTimeCriticalSection 2006-12-19 08:03:42 +00:00
Glenn Maynard 1786d99735 GetPositionSeconds(&tm) returns the clock time timestamp associated with the
returned sound time.  This is tricky: we may be interrupted, causing timing error.

We tried working around this by trying to hint the scheduler that we're in a
period where we don't want to be interrupted, even though we're in a thread
that's not normally high priority, by boosting the priority temporarily.  This
worked in Windows, but not in general; it's too far out of the expectations of
schedulers and generally just made things worse.

Let's look at this like an interruption-based lockless algorithm: try it, see
if it succeeded, and if it failed, try again.

Retrying even once should be a rare exception, but failsafe anyway, so a bug
in a sound driver won't hang.
2006-12-19 08:00:45 +00:00
Glenn Maynard da93ccefeb fixup 2006-12-19 02:53:42 +00:00
Glenn Maynard 70569f1b82 I don't like the song-dependent courses in the trunk. It causes "song
not found" warnings for most people.  The core shouldn't "depend"
on particular songs.  Distribute courses with songs, or separately, but
let's not depend on them here.
2006-12-19 02:52:00 +00:00
Glenn Maynard 550e91daff use WrapInActorFrame 2006-12-19 02:03:09 +00:00
Glenn Maynard f375632588 WrapInActorFrame helper 2006-12-19 02:01:52 +00:00