diff options
| author | Rémi Verschelde <rverschelde@gmail.com> | 2018-01-30 13:43:34 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-01-30 13:43:34 +0100 |
| commit | ed6bf28014dfd5c012bf60953b9450f93d0dbad8 (patch) | |
| tree | b095dcdf0cd1de2fd7d497e65e229524664b9603 /scene/resources/audio_stream_sample.cpp | |
| parent | 5b580fb69b3160e9e080994e4a34ffd3cceb3ff5 (diff) | |
| parent | 8a9f1c2a5d7364016b9c67dc158557607f6de4bd (diff) | |
Merge pull request #15980 from mrcdk/audio_stream_get_length
Expose audio streams get_length()
Diffstat (limited to 'scene/resources/audio_stream_sample.cpp')
| -rw-r--r-- | scene/resources/audio_stream_sample.cpp | 34 |
1 files changed, 17 insertions, 17 deletions
diff --git a/scene/resources/audio_stream_sample.cpp b/scene/resources/audio_stream_sample.cpp index 93ed700482..b77143cd9d 100644 --- a/scene/resources/audio_stream_sample.cpp +++ b/scene/resources/audio_stream_sample.cpp @@ -77,7 +77,7 @@ void AudioStreamPlaybackSample::seek(float p_time) { if (base->format == AudioStreamSample::FORMAT_IMA_ADPCM) return; //no seeking in ima-adpcm - float max = get_length(); + float max = base->get_length(); if (p_time < 0) { p_time = 0; } else if (p_time >= max) { @@ -390,22 +390,6 @@ void AudioStreamPlaybackSample::mix(AudioFrame *p_buffer, float p_rate_scale, in } } -float AudioStreamPlaybackSample::get_length() const { - - int len = base->data_bytes; - switch (base->format) { - case AudioStreamSample::FORMAT_8_BITS: len /= 1; break; - case AudioStreamSample::FORMAT_16_BITS: len /= 2; break; - case AudioStreamSample::FORMAT_IMA_ADPCM: len *= 2; break; - } - - if (base->stereo) { - len /= 2; - } - - return float(len) / base->mix_rate; -} - AudioStreamPlaybackSample::AudioStreamPlaybackSample() { active = false; @@ -469,6 +453,22 @@ bool AudioStreamSample::is_stereo() const { return stereo; } +float AudioStreamSample::get_length() const { + + int len = data_bytes; + switch (format) { + case AudioStreamSample::FORMAT_8_BITS: len /= 1; break; + case AudioStreamSample::FORMAT_16_BITS: len /= 2; break; + case AudioStreamSample::FORMAT_IMA_ADPCM: len *= 2; break; + } + + if (stereo) { + len /= 2; + } + + return float(len) / mix_rate; +} + void AudioStreamSample::set_data(const PoolVector<uint8_t> &p_data) { AudioServer::get_singleton()->lock(); |