Added talkey to texty

This commit is contained in:
2023-01-22 14:00:30 -08:00
parent 3ee07af4db
commit 6f75e8b7a4
37 changed files with 289 additions and 69 deletions

View File

@ -136,6 +136,18 @@ void AudioSource::setPlayMode(enum AudioSourcePlayMode playMode) {
this->playMode = playMode;
}
void AudioSource::stop() {
this->state = AUDIO_SOURCE_STATE_STOPPED;
}
void AudioSource::play() {
this->state = AUDIO_SOURCE_STATE_PLAYING;
}
void AudioSource::pause() {
this->state = AUDIO_SOURCE_STATE_PAUSED;
}
void AudioSource::onDispose() {
assertTrue(this->ready);
this->ready = false;
@ -152,11 +164,12 @@ void AudioSource::onSceneUpdate() {
ALint buffersProcessed;
assertTrue(this->ready);
assertTrue(this->data != nullptr);
assertTrue(this->data->loaded);
// What is the user trying to do?
if(this->state == AUDIO_SOURCE_STATE_PLAYING) {
assertTrue(this->data != nullptr);
assertTrue(this->data->loaded);
// Handle the special game-paused music-paused state.
if(this->playMode == AUDIO_PLAY_MODE_UNPAUSED && this->getGame()->timeManager.isPaused) {
if(this->internalState == AUDIO_SOURCE_STATE_PLAYING) {
@ -220,6 +233,9 @@ void AudioSource::onSceneUpdate() {
assertUnreachable();
}
} else if(this->state == AUDIO_SOURCE_STATE_PAUSED) {
assertTrue(this->data != nullptr);
assertTrue(this->data->loaded);
// Pause has been requested.
if(this->internalState != AUDIO_SOURCE_STATE_PLAYING) return;
@ -231,6 +247,9 @@ void AudioSource::onSceneUpdate() {
} else if(this->state == AUDIO_SOURCE_STATE_STOPPED) {
if(this->internalState == AUDIO_SOURCE_STATE_STOPPED) return;
assertTrue(this->data != nullptr);
assertTrue(this->data->loaded);
// Release the buffers
alSourceStop(this->source);
this->detatchBuffers();

View File

@ -112,6 +112,21 @@ namespace Dawn {
*/
void setPlayMode(enum AudioSourcePlayMode mode);
/**
* Stop playing this audio source. Shorthand for setting the state.
*/
void stop();
/**
* Play this audio source. Shorthand for state setting.
*/
void play();
/**
* Pause this audio source. Shorthand for state setting.
*/
void pause();
void onStart() override;
void onDispose() override;
};