Querying Time

Time is an OpenAL state that ca be queried and set. However, as OpenAL usually implements a realtime process with the constraint that it has to be synchronized with the time as experienced by the user, the units used with respect to time and frequency have a fixed meaning.

For time, the basic unit is seconds. In other words, a float or integral value of one for a variable that specifies duration, latency, delay, or any other parameter measured as time, specifies 1 second.

For frequency, the basic unit is 1/second, or Hertz. In other words, sample frequencies and frequency cut offs or filter parameters specifying frequencies are expressed in units of Hertz.

NoteAnnotation (Buffer vs. Queue Duration)
 

Sourcel( sName , REMAINDER, &rem ) queries the remainder for the current buffer (zero if the Source is STOPPED, duration of the first buffer if the source is INITIAL). Sourcel( sName, REMAINDER_QUEUE, &rem ) queries the remainder of the entire queue. A STOPPED Source has remainder==0. An INITIAL Source has full remainder.

NoteAnnotation (DURATION vs. REMAINDER)
 

DURATION is a buffer attribute independend of executation state. REMAINDER is a Source attribute that encapsulates part of the execution state. Sources and Buffers should not share these attributes: there is no Buffer REMAINDER and no Source DURATION.