Commit 553c7f00 authored by David Reid's avatar David Reid

Add some new APIs.

  * ma_sound_set_start_time_in_milliseconds()
  * ma_sound_set_stop_time_in_milliseconds()
  * ma_sound_group_set_start_time_in_milliseconds()
  * ma_sound_group_set_stop_time_in_milliseconds()
parent 76640272
...@@ -1799,7 +1799,9 @@ MA_API ma_result ma_sound_set_fade_in_pcm_frames(ma_sound* pSound, float volumeB ...@@ -1799,7 +1799,9 @@ MA_API ma_result ma_sound_set_fade_in_pcm_frames(ma_sound* pSound, float volumeB
MA_API ma_result ma_sound_set_fade_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds); MA_API ma_result ma_sound_set_fade_in_milliseconds(ma_sound* pSound, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds);
MA_API ma_result ma_sound_get_current_fade_volume(ma_sound* pSound, float* pVolume); MA_API ma_result ma_sound_get_current_fade_volume(ma_sound* pSound, float* pVolume);
MA_API ma_result ma_sound_set_start_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames); MA_API ma_result ma_sound_set_start_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames);
MA_API ma_result ma_sound_set_start_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds);
MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames); MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames);
MA_API ma_result ma_sound_set_stop_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds);
MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound); MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound);
MA_API ma_bool32 ma_sound_at_end(const ma_sound* pSound); MA_API ma_bool32 ma_sound_at_end(const ma_sound* pSound);
MA_API ma_result ma_sound_get_time_in_pcm_frames(const ma_sound* pSound, ma_uint64* pTimeInFrames); MA_API ma_result ma_sound_get_time_in_pcm_frames(const ma_sound* pSound, ma_uint64* pTimeInFrames);
...@@ -1810,6 +1812,7 @@ MA_API ma_result ma_sound_get_length_in_pcm_frames(ma_sound* pSound, ma_uint64* ...@@ -1810,6 +1812,7 @@ MA_API ma_result ma_sound_get_length_in_pcm_frames(ma_sound* pSound, ma_uint64*
MA_API ma_result ma_sound_group_init(ma_engine* pEngine, ma_uint32 flags, ma_sound_group* pParentGroup, ma_sound_group* pGroup); MA_API ma_result ma_sound_group_init(ma_engine* pEngine, ma_uint32 flags, ma_sound_group* pParentGroup, ma_sound_group* pGroup);
MA_API void ma_sound_group_uninit(ma_sound_group* pGroup); MA_API void ma_sound_group_uninit(ma_sound_group* pGroup);
MA_API ma_engine* ma_sound_group_get_engine(const ma_sound_group* pGroup);
MA_API ma_result ma_sound_group_start(ma_sound_group* pGroup); MA_API ma_result ma_sound_group_start(ma_sound_group* pGroup);
MA_API ma_result ma_sound_group_stop(ma_sound_group* pGroup); MA_API ma_result ma_sound_group_stop(ma_sound_group* pGroup);
MA_API ma_result ma_sound_group_set_volume(ma_sound_group* pGroup, float volume); MA_API ma_result ma_sound_group_set_volume(ma_sound_group* pGroup, float volume);
...@@ -1845,7 +1848,9 @@ MA_API ma_result ma_sound_group_set_fade_in_pcm_frames(ma_sound_group* pGroup, f ...@@ -1845,7 +1848,9 @@ MA_API ma_result ma_sound_group_set_fade_in_pcm_frames(ma_sound_group* pGroup, f
MA_API ma_result ma_sound_group_set_fade_in_milliseconds(ma_sound_group* pGroup, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds); MA_API ma_result ma_sound_group_set_fade_in_milliseconds(ma_sound_group* pGroup, float volumeBeg, float volumeEnd, ma_uint64 fadeLengthInMilliseconds);
MA_API ma_result ma_sound_group_get_current_fade_volume(ma_sound_group* pGroup, float* pVolume); MA_API ma_result ma_sound_group_get_current_fade_volume(ma_sound_group* pGroup, float* pVolume);
MA_API ma_result ma_sound_group_set_start_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames); MA_API ma_result ma_sound_group_set_start_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames);
MA_API ma_result ma_sound_group_set_start_time_in_milliseconds(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInMilliseconds);
MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames); MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames);
MA_API ma_result ma_sound_group_set_stop_time_in_milliseconds(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInMilliseconds);
MA_API ma_bool32 ma_sound_group_is_playing(const ma_sound_group* pGroup); MA_API ma_bool32 ma_sound_group_is_playing(const ma_sound_group* pGroup);
MA_API ma_result ma_sound_group_get_time_in_pcm_frames(const ma_sound_group* pGroup, ma_uint64* pTimeInFrames); MA_API ma_result ma_sound_group_get_time_in_pcm_frames(const ma_sound_group* pGroup, ma_uint64* pTimeInFrames);
...@@ -11441,6 +11446,15 @@ MA_API ma_result ma_sound_set_start_time_in_pcm_frames(ma_sound* pSound, ma_uint ...@@ -11441,6 +11446,15 @@ MA_API ma_result ma_sound_set_start_time_in_pcm_frames(ma_sound* pSound, ma_uint
return ma_node_set_state_time(pSound, ma_node_state_started, absoluteGlobalTimeInFrames); return ma_node_set_state_time(pSound, ma_node_state_started, absoluteGlobalTimeInFrames);
} }
MA_API ma_result ma_sound_set_start_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds)
{
if (pSound == NULL) {
return MA_INVALID_ARGS;
}
return ma_sound_set_start_time_in_pcm_frames(pSound, absoluteGlobalTimeInMilliseconds * ma_engine_get_sample_rate(ma_sound_get_engine(pSound)) / 1000);
}
MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames) MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInFrames)
{ {
if (pSound == NULL) { if (pSound == NULL) {
...@@ -11450,6 +11464,15 @@ MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint6 ...@@ -11450,6 +11464,15 @@ MA_API ma_result ma_sound_set_stop_time_in_pcm_frames(ma_sound* pSound, ma_uint6
return ma_node_set_state_time(pSound, ma_node_state_stopped, absoluteGlobalTimeInFrames); return ma_node_set_state_time(pSound, ma_node_state_stopped, absoluteGlobalTimeInFrames);
} }
MA_API ma_result ma_sound_set_stop_time_in_milliseconds(ma_sound* pSound, ma_uint64 absoluteGlobalTimeInMilliseconds)
{
if (pSound == NULL) {
return MA_INVALID_ARGS;
}
return ma_sound_set_stop_time_in_pcm_frames(pSound, absoluteGlobalTimeInMilliseconds * ma_engine_get_sample_rate(ma_sound_get_engine(pSound)) / 1000);
}
MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound) MA_API ma_bool32 ma_sound_is_playing(const ma_sound* pSound)
{ {
if (pSound == NULL) { if (pSound == NULL) {
...@@ -11599,6 +11622,15 @@ MA_API void ma_sound_group_uninit(ma_sound_group* pGroup) ...@@ -11599,6 +11622,15 @@ MA_API void ma_sound_group_uninit(ma_sound_group* pGroup)
ma_node_uninit(pGroup, &pGroup->engineNode.pEngine->allocationCallbacks); ma_node_uninit(pGroup, &pGroup->engineNode.pEngine->allocationCallbacks);
} }
MA_API ma_engine* ma_sound_group_get_engine(const ma_sound_group* pGroup)
{
if (pGroup == NULL) {
return NULL;
}
return pGroup->engineNode.pEngine;
}
MA_API ma_result ma_sound_group_start(ma_sound_group* pGroup) MA_API ma_result ma_sound_group_start(ma_sound_group* pGroup)
{ {
if (pGroup == NULL) { if (pGroup == NULL) {
...@@ -11929,6 +11961,15 @@ MA_API ma_result ma_sound_group_set_start_time_in_pcm_frames(ma_sound_group* pGr ...@@ -11929,6 +11961,15 @@ MA_API ma_result ma_sound_group_set_start_time_in_pcm_frames(ma_sound_group* pGr
return ma_node_set_state_time(pGroup, ma_node_state_started, absoluteGlobalTimeInFrames); return ma_node_set_state_time(pGroup, ma_node_state_started, absoluteGlobalTimeInFrames);
} }
MA_API ma_result ma_sound_group_set_start_time_in_milliseconds(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInMilliseconds)
{
if (pGroup == NULL) {
return MA_INVALID_ARGS;
}
return ma_sound_group_set_start_time_in_pcm_frames(pGroup, absoluteGlobalTimeInMilliseconds * ma_engine_get_sample_rate(ma_sound_group_get_engine(pGroup)) / 1000);
}
MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames) MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInFrames)
{ {
if (pGroup == NULL) { if (pGroup == NULL) {
...@@ -11938,6 +11979,15 @@ MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGro ...@@ -11938,6 +11979,15 @@ MA_API ma_result ma_sound_group_set_stop_time_in_pcm_frames(ma_sound_group* pGro
return ma_node_set_state_time(pGroup, ma_node_state_stopped, absoluteGlobalTimeInFrames); return ma_node_set_state_time(pGroup, ma_node_state_stopped, absoluteGlobalTimeInFrames);
} }
MA_API ma_result ma_sound_group_set_stop_time_in_milliseconds(ma_sound_group* pGroup, ma_uint64 absoluteGlobalTimeInMilliseconds)
{
if (pGroup == NULL) {
return MA_INVALID_ARGS;
}
return ma_sound_group_set_stop_time_in_pcm_frames(pGroup, absoluteGlobalTimeInMilliseconds * ma_engine_get_sample_rate(ma_sound_group_get_engine(pGroup)) / 1000);
}
MA_API ma_bool32 ma_sound_group_is_playing(const ma_sound_group* pGroup) MA_API ma_bool32 ma_sound_group_is_playing(const ma_sound_group* pGroup)
{ {
if (pGroup == NULL) { if (pGroup == NULL) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment