MCPcopy Create free account
hub / github.com/DescentDevelopers/Descent3 / Open

Method Open

stream_audio/streamaudio.cpp:340–390  ·  view source on GitHub ↗

flags specify what type of stream it is.

Source from the content-addressed store, hash-verified

338float AudioStream::GetVolume() { return m_volume; }
339// flags specify what type of stream it is.
340bool AudioStream::Open(const char *filename, int open_flags) {
341 // don't open a stream that's already open, or bogus filename
342 if (m_state != STRM_INVALID) {
343 AudioStream::Close();
344 // Int3();
345 // return false;
346 }
347 if (m_archive.Opened() || !filename)
348 return false;
349 if (!m_ll_sndsys)
350 return false;
351 m_state = STRM_INVALID;
352 m_streamindex = -1;
353 m_flags = open_flags;
354 m_curmeasure = 0;
355 m_volume = 1.0f;
356 m_bufsize = SAMPLES_PER_STREAM_BUF * 4;
357 m_measure_timer = 0.0f;
358 m_measure_time = 0.0f;
359 m_last_frametime = 0.0f;
360 m_readahead_finished_loop = false;
361 m_curid = -1;
362 m_nbufs = 0;
363 m_start_on_frame = m_start_on_frame_looped = false;
364 // open up stream file
365 if (m_archive.Open(filename)) {
366 int i;
367 int nbufs;
368 ASSERT(m_archive.StreamType() == OSF_DIGITAL_STRM);
369 m_thisid++;
370 m_curid = m_thisid;
371
372 for (i = 0; i < STRM_BUFCOUNT; i++) {
373 m_buffer[i].flags = 0;
374 m_buffer[i].nbytes = 0;
375 m_buffer[i].data = NULL;
376 m_buffer[i].id = -1; // marks stream buffer to be allocated.
377 }
378 // gradual streams don't readahead yet.
379 nbufs = CHECK_FLAG(m_flags, STRM_OPNF_GRADUAL) ? 1 : STRM_BUFCOUNT;
380
381 if (!AudioStream::ReopenDigitalStream(0, nbufs)) {
382 return false;
383 }
384 AudioStream::SetLoopCount(1);
385 m_laststate = m_state;
386 m_state = STRM_STOPPED;
387 return true;
388 }
389 return false;
390}
391// deallocates all stream buffers and decoder.
392void AudioStream::Close() {
393 int i;

Callers 1

StreamPlayFunction · 0.45

Calls 2

OpenedMethod · 0.80
StreamTypeMethod · 0.80

Tested by

no test coverage detected