3030
3131#include " microphone_feed.h"
3232
33+ #include " core/object/class_db.h"
3334#include " core/object/object.h"
3435#include " servers/microphone/microphone_driver.h"
3536#include " servers/microphone/microphone_server.h"
3637
3738void MicrophoneFeed::update_ring_buffer_size () {
38- uint64_t new_ring_buffer_size = (uint64_t )(buffer_length * sample_rate) * channels_per_frame * bytes_per_frame ;
39+ uint64_t new_ring_buffer_size = (uint64_t )(buffer_length * sample_rate) * channels_per_frame * bit_depth ;
3940 if (new_ring_buffer_size == ring_buffer_size) {
4041 return ;
4142 }
@@ -94,14 +95,21 @@ void MicrophoneFeed::_bind_methods() {
9495 ClassDB::bind_method (D_METHOD (" set_name" , " name" ), &MicrophoneFeed::set_name);
9596 ClassDB::bind_method (D_METHOD (" get_description" ), &MicrophoneFeed::get_description);
9697 ClassDB::bind_method (D_METHOD (" set_description" , " description" ), &MicrophoneFeed::set_description);
98+
99+ ClassDB::bind_method (D_METHOD (" get_format_id" ), &MicrophoneFeed::get_format_id);
100+ ClassDB::bind_method (D_METHOD (" set_format_id" , " format_id" ), &MicrophoneFeed::set_format_id);
101+ ClassDB::bind_method (D_METHOD (" get_format_flags" ), &MicrophoneFeed::get_format_flags);
102+ ClassDB::bind_method (D_METHOD (" set_format_flags" , " format_flags" ), &MicrophoneFeed::set_format_flags);
103+
97104 ClassDB::bind_method (D_METHOD (" get_sample_rate" ), &MicrophoneFeed::get_sample_rate);
98105 ClassDB::bind_method (D_METHOD (" set_sample_rate" , " sample_rate" ), &MicrophoneFeed::set_sample_rate);
99106 ClassDB::bind_method (D_METHOD (" get_buffer_length" ), &MicrophoneFeed::get_buffer_length);
100107 ClassDB::bind_method (D_METHOD (" set_buffer_length" , " buffer_length" ), &MicrophoneFeed::set_buffer_length);
101108 ClassDB::bind_method (D_METHOD (" get_channels_per_frame" ), &MicrophoneFeed::get_channels_per_frame);
102109 ClassDB::bind_method (D_METHOD (" set_channels_per_frame" , " channels_per_frame" ), &MicrophoneFeed::set_channels_per_frame);
110+ ClassDB::bind_method (D_METHOD (" get_bit_depth" ), &MicrophoneFeed::get_bit_depth);
111+ ClassDB::bind_method (D_METHOD (" set_bit_depth" , " bit_depth" ), &MicrophoneFeed::set_bit_depth);
103112 ClassDB::bind_method (D_METHOD (" get_bytes_per_frame" ), &MicrophoneFeed::get_bytes_per_frame);
104- ClassDB::bind_method (D_METHOD (" set_bytes_per_frame" , " bytes_per_frame" ), &MicrophoneFeed::set_bytes_per_frame);
105113
106114 ClassDB::bind_method (D_METHOD (" get_buffer" ), &MicrophoneFeed::get_buffer);
107115 ClassDB::bind_method (D_METHOD (" clear_buffer" ), &MicrophoneFeed::clear_buffer);
@@ -115,10 +123,25 @@ void MicrophoneFeed::_bind_methods() {
115123 ADD_PROPERTY (PropertyInfo (Variant::FLOAT, " sample_rate" ), " set_sample_rate" , " get_sample_rate" );
116124 ADD_PROPERTY (PropertyInfo (Variant::INT, " buffer_length" ), " set_buffer_length" , " get_buffer_length" );
117125 ADD_PROPERTY (PropertyInfo (Variant::INT, " channels_per_frame" ), " set_channels_per_frame" , " get_channels_per_frame" );
118- ADD_PROPERTY (PropertyInfo (Variant::INT, " bytes_per_frame " ), " set_bytes_per_frame " , " get_bytes_per_frame " );
126+ ADD_PROPERTY (PropertyInfo (Variant::INT, " bit_depth " ), " set_bit_depth " , " get_bit_depth " );
119127
120128 ADD_PROPERTY (PropertyInfo (Variant::BOOL, " active" ), " set_active" , " is_active" );
121129
122130 ADD_SIGNAL (MethodInfo (SNAME (" feed_activated" )));
123131 ADD_SIGNAL (MethodInfo (SNAME (" feed_deactivated" )));
132+
133+ BIND_ENUM_CONSTANT (MICROPHONE_FEED_FORMAT_ID_ALAW);
134+ BIND_ENUM_CONSTANT (MICROPHONE_FEED_FORMAT_ID_ULAW);
135+ BIND_ENUM_CONSTANT (MICROPHONE_FEED_FORMAT_ID_LINEAR_PCM);
136+ BIND_ENUM_CONSTANT (MICROPHONE_FEED_FORMAT_ID_MAX);
137+
138+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_NONE);
139+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_ALIGNED_HIGH);
140+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_BIG_ENDIAN);
141+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_FLOAT);
142+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_NON_INTERLEAVED);
143+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_NON_MIXABLE);
144+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_PACKED);
145+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_IS_SIGNED_INTEGER);
146+ BIND_BITFIELD_FLAG (MICROPHONE_FEED_FORMAT_FLAG_ALL);
124147}
0 commit comments