Add samples playback support
This commit is contained in:
@ -376,6 +376,22 @@ void AudioStreamPlaybackOggVorbis::seek(double p_time) {
|
||||
}
|
||||
}
|
||||
|
||||
void AudioStreamPlaybackOggVorbis::set_is_sample(bool p_is_sample) {
|
||||
_is_sample = p_is_sample;
|
||||
}
|
||||
|
||||
bool AudioStreamPlaybackOggVorbis::get_is_sample() const {
|
||||
return _is_sample;
|
||||
}
|
||||
|
||||
Ref<AudioSamplePlayback> AudioStreamPlaybackOggVorbis::get_sample_playback() const {
|
||||
return sample_playback;
|
||||
}
|
||||
|
||||
void AudioStreamPlaybackOggVorbis::set_sample_playback(const Ref<AudioSamplePlayback> &p_playback) {
|
||||
sample_playback = p_playback;
|
||||
}
|
||||
|
||||
AudioStreamPlaybackOggVorbis::~AudioStreamPlaybackOggVorbis() {
|
||||
if (block_is_allocated) {
|
||||
vorbis_block_clear(&block);
|
||||
@ -517,6 +533,18 @@ void AudioStreamOggVorbis::get_parameter_list(List<Parameter> *r_parameters) {
|
||||
r_parameters->push_back(Parameter(PropertyInfo(Variant::BOOL, "looping", PROPERTY_HINT_NONE, "", PROPERTY_USAGE_DEFAULT | PROPERTY_USAGE_CHECKABLE), Variant()));
|
||||
}
|
||||
|
||||
Ref<AudioSample> AudioStreamOggVorbis::generate_sample() const {
|
||||
Ref<AudioSample> sample;
|
||||
sample.instantiate();
|
||||
sample->stream = this;
|
||||
sample->loop_mode = loop
|
||||
? AudioSample::LoopMode::LOOP_FORWARD
|
||||
: AudioSample::LoopMode::LOOP_DISABLED;
|
||||
sample->loop_begin = loop_offset;
|
||||
sample->loop_end = 0;
|
||||
return sample;
|
||||
}
|
||||
|
||||
void AudioStreamOggVorbis::_bind_methods() {
|
||||
ClassDB::bind_static_method("AudioStreamOggVorbis", D_METHOD("load_from_buffer", "buffer"), &AudioStreamOggVorbis::load_from_buffer);
|
||||
ClassDB::bind_static_method("AudioStreamOggVorbis", D_METHOD("load_from_file", "path"), &AudioStreamOggVorbis::load_from_file);
|
||||
|
||||
Reference in New Issue
Block a user