<?xml version="1.0" encoding="UTF-8" ?>
<class name="AudioStreamGeneratorPlayback" inherits="AudioStreamPlaybackResampled" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../class.xsd">
	<brief_description>
		Plays back audio generated using [AudioStreamGenerator].
	</brief_description>
	<description>
		This class is meant to be used with [AudioStreamGenerator] to play back the generated audio in real-time.
	</description>
	<tutorials>
		<link title="Audio Generator Demo">https://godotengine.org/asset-library/asset/2759</link>
		<link title="Godot 3.2 will get new audio features">https://godotengine.org/article/godot-32-will-get-new-audio-features</link>
	</tutorials>
	<methods>
		<method name="can_push_buffer" qualifiers="const">
			<return type="bool" />
			<param index="0" name="amount" type="int" />
			<description>
				Returns [code]true[/code] if a buffer of the size [param amount] can be pushed to the audio sample data buffer without overflowing it, [code]false[/code] otherwise.
			</description>
		</method>
		<method name="clear_buffer">
			<return type="void" />
			<description>
				Clears the audio sample data buffer.
			</description>
		</method>
		<method name="get_frames_available" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of frames that can be pushed to the audio sample data buffer without overflowing it. If the result is [code]0[/code], the buffer is full.
			</description>
		</method>
		<method name="get_skips" qualifiers="const">
			<return type="int" />
			<description>
				Returns the number of times the playback skipped due to a buffer underrun in the audio sample data. This value is reset at the start of the playback.
			</description>
		</method>
		<method name="push_buffer">
			<return type="bool" />
			<param index="0" name="frames" type="PackedVector2Array" />
			<description>
				Pushes several audio data frames to the buffer. This is usually more efficient than [method push_frame] in C# and compiled languages via GDExtension, but [method push_buffer] may be [i]less[/i] efficient in GDScript.
			</description>
		</method>
		<method name="push_frame">
			<return type="bool" />
			<param index="0" name="frame" type="Vector2" />
			<description>
				Pushes a single audio data frame to the buffer. This is usually less efficient than [method push_buffer] in C# and compiled languages via GDExtension, but [method push_frame] may be [i]more[/i] efficient in GDScript.
			</description>
		</method>
	</methods>
</class>
