"""
        This module contains bindings to the C++ omni::audio::IAudioPlayer interface.
        This provides functionality for playing sound assets.  This is intended only
        as a basic audio player interface for previewing assets.  This is not intended
        to play sounds in a USD stage or in the Kit UI.  For sounds in the USD stage,
        the omni.usd.audio interface should be used instead.  For UI sounds, the
        omni.kit.uiaudio interface should be used.

        Sound files may be in RIFF/WAV, Ogg, or FLAC format.
        Data in the sound files may use 8, 16, 24, or 32 bit integer samples,
        or 32 bit floating point samples.  Channel counts may be from 1 to 64
        If more channels of data are provided than the audio device can play,
        some channels will be blended together automatically.
    """
import omni.audioplayer._audio
import typing
import carb._carb
import carb.events._events

__all__ = [
    "AudioPlayer",
    "CallbackType",
    "create_audio_player"
]


class AudioPlayer():
    """
            An individual audio player instance.
            This must be created in order to have something to play sounds from.
        
    """
    def draw_waveform(self, arg0: int, arg1: int, arg2: carb._carb.Float4, arg3: carb._carb.Float4) -> typing.List[int]: 
        """
               Render the waveform to an image to a buffer.

               The functionality of writing to a file is a temporary workaround.
               This will eventually be changed to output a memory buffer.

                Args:
                    player The player whose image will be rendered.
                    width    The width of the output image, in pixels.
                    height   The height of the output image, in pixels.
                    fgColor  The foreground color in normalized RGBA color.
                    bgColor  The background color in normalized RGBA color.

                Returns:
                    A list containing the raw RGBA8888 values for the image.
                    An empty array on failure.
            
        """
    def draw_waveform_to_file(self, arg0: str, arg1: int, arg2: int, arg3: carb._carb.Float4, arg4: carb._carb.Float4) -> bool: 
        """
               Render the waveform to an image to a file.

               The functionality of writing to a file is a temporary workaround.
               This will eventually be changed to output a memory buffer.

                Args:
                    player The player whose image will be rendered.
                    filename The name for the output image file.
                    width    The width of the output image, in pixels.
                    height   The height of the output image, in pixels.
                    fgColor  The foreground color in normalized RGBA color.
                    bgColor  The background color in normalized RGBA color.

                Returns:
                    True if the operation was successful.
                    False if the file could not be generated.
            
        """
    def get_event_stream(self) -> carb.events._events.IEventStream: ...
    def get_play_cursor(self) -> float: 
        """
                Get the play cursor position in the currently playing sound.

                Args:
                    No arguments

                Returns:
                     The play cursor position in the currently playing sound in seconds.

                     0.0 if there is no playing sound.
            
        """
    def get_sound_length(self) -> float: 
        """
                Get the length of the currently playing sound.

                Args:
                    No arguments

                Returns:
                    The length of the currently playing sound in seconds.

                    0.0 if there is no playing sound.
            
        """
    def load_sound(self, path: str) -> None: ...
    def pause_sound(self) -> None: 
        """
                Pause playback of a sound on a specific audio player.

                Each player has only one voice, so this call pauses that voice.

                Args:
                    No arguments

                Returns:
                    No return value.
            
        """
    def play_sound(self, path: str, startTime: float = 0.0) -> None: ...
    def set_play_cursor(self, startTime: float = 0.0) -> None: ...
    def stop_sound(self) -> None: 
        """
                Immediately stops the playback on a specific audio player

                Each player has only one voice, so this call stops that voice.

                Args:
                    No arguments

                Returns:
                    No return value.
            
        """
    def unpause_sound(self) -> None: 
        """
                Unpause playback of a sound on a specific audio player.

                Each player has only one voice, so this call unpauses that voice.
                If no voice is paused, this does nothing.

                Args:
                    No arguments

                Returns:
                    No return value.
            
        """
    pass
class CallbackType():
    """
    Members:

      LOADED

      ENDED
    """
    def __init__(self, arg0: int) -> None: ...
    def __int__(self) -> int: ...
    @property
    def name(self) -> str:
        """
        (self: handle) -> str

        :type: str
        """
    ENDED: omni.audioplayer._audio.CallbackType # value = CallbackType.ENDED
    LOADED: omni.audioplayer._audio.CallbackType # value = CallbackType.LOADED
    __members__: dict # value = {'LOADED': CallbackType.LOADED, 'ENDED': CallbackType.ENDED}
    pass
def create_audio_player(*args, **kwargs) -> typing.Any:
    pass
