SDL_CDStatus: kills win32 performance

According to our win32 guys, frequent calls to SDL_CDStatus cause choppy
video, sound, etc and are a general detriment to performance. I don’t
have a problem with it in Linux, and I don’t know about mac or anything
else since we haven’t got someone working on those platforms yet. In any
event, I don’t think we should be seeing this problem. Bug maybe?

This code is called as part of the standard loop:

void
CDAudio_Update (void)
{
CDstatus curstat;
static time_t lastchk;

if (!cd_enabled)
    return;

if (cd_playing && cd_lastchk < time (NULL)) {
    cd_lastchk = time (NULL) + 2;
    cd_curstat = SDL_CDStatus (cd_handle);
    if (cd_curstat != CD_PLAYING && cd_curstat != CD_PAUSED) {
        cd_playing = false;
        if (cd_playLooping)
            CDAudio_Play (playTrack, true);
    }
}

}

Is there something we’re doing wrong, or is this a bug? Advice humbly
requested. =)–
Joseph Carter Free software developer

It is when the example source won’t compile …
<Erik> then you fucked something up <Knghtbrd> Nope, I followed their instructions <Erik> that may’ve been your problem :}

-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 273 bytes
Desc: not available
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20010809/b529c2cc/attachment.pgp

According to our win32 guys, frequent calls to SDL_CDStatus cause choppy
video, sound, etc and are a general detriment to performance. I don’t
have a problem with it in Linux, and I don’t know about mac or anything
else since we haven’t got someone working on those platforms yet. In any
event, I don’t think we should be seeing this problem. Bug maybe?

This is just the way Windows works. Only call CDAudio_Update() every
few seconds or so.

See ya,
-Sam Lantinga, Software Engineer, Blizzard Entertainment

Hmm, we had some win32-native code that was a bit better behaved than
that, but elected not to use it in favor of SDL. I guess I’ll have to
compare what it does with what SDL does internally. Will report back any
interesting findings.On Thu, Aug 09, 2001 at 01:48:58PM -0700, Sam Lantinga wrote:

According to our win32 guys, frequent calls to SDL_CDStatus cause choppy
video, sound, etc and are a general detriment to performance. I don’t
have a problem with it in Linux, and I don’t know about mac or anything
else since we haven’t got someone working on those platforms yet. In any
event, I don’t think we should be seeing this problem. Bug maybe?

This is just the way Windows works. Only call CDAudio_Update() every
few seconds or so.


Joseph Carter Free software developer

Software is like sex, it’s better when it’s free. – Linus Torvalds

-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 273 bytes
Desc: not available
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20010809/cf6860df/attachment.pgp

Le 09 Aug 2001 14:46:50 -0700, Joseph Carter a ?crit :

According to our win32 guys, frequent calls to SDL_CDStatus cause
choppy

video, sound, etc and are a general detriment to performance. I
don’t

have a problem with it in Linux, and I don’t know about mac or
anything

else since we haven’t got someone working on those platforms yet.
In any

event, I don’t think we should be seeing this problem. Bug maybe?

This is just the way Windows works. Only call CDAudio_Update()
every

few seconds or so.

Hmm, we had some win32-native code that was a bit better behaved than
that, but elected not to use it in favor of SDL. I guess I’ll have to
compare what it does with what SDL does internally. Will report back
any
interesting findings.

SDL_CDStatus does a lot of extra stuff uneeded… you can hack a smaller
version of SDL_CDStatus that do not query the cdaudio toc everytime…

I have written a cd audio player in the past using pure win32 calls…
and I remember
that querying the toc was sometimes nasty…> On Thu, Aug 09, 2001 at 01:48:58PM -0700, Sam Lantinga wrote: