-support for stereo ima-adpcm sample compression & playback

-support for converting samples to ima-adpcm upon export
This commit is contained in:
Juan Linietsky
2015-11-09 00:49:18 -03:00
parent 3fcfdfec0a
commit 61c4c5795f
13 changed files with 312 additions and 71 deletions

View File

@@ -252,6 +252,13 @@ void ProjectExportDialog::_script_edited(Variant v) {
}
void ProjectExportDialog::_sample_convert_edited(int what) {
EditorImportExport::get_singleton()->sample_set_action( EditorImportExport::SampleAction(sample_mode->get_selected()));
EditorImportExport::get_singleton()->sample_set_max_hz( sample_max_hz->get_val() );
EditorImportExport::get_singleton()->sample_set_trim( sample_trim->is_pressed() );
}
void ProjectExportDialog::_notification(int p_what) {
switch(p_what) {
@@ -319,6 +326,15 @@ void ProjectExportDialog::_notification(int p_what) {
_update_group();
_update_group_tree();
sample_mode->select( EditorImportExport::get_singleton()->sample_get_action() );
sample_max_hz->set_val( EditorImportExport::get_singleton()->sample_get_max_hz() );
sample_trim->set_pressed( EditorImportExport::get_singleton()->sample_get_trim() );
sample_mode->connect("item_selected",this,"_sample_convert_edited");
sample_max_hz->connect("value_changed",this,"_sample_convert_edited");
sample_trim->connect("toggled",this,"_sample_convert_edited");
} break;
case NOTIFICATION_EXIT_TREE: {
@@ -1045,6 +1061,7 @@ void ProjectExportDialog::_bind_methods() {
ObjectTypeDB::bind_method(_MD("_group_select_none"),&ProjectExportDialog::_group_select_none);
ObjectTypeDB::bind_method(_MD("_script_edited"),&ProjectExportDialog::_script_edited);
ObjectTypeDB::bind_method(_MD("_update_script"),&ProjectExportDialog::_update_script);
ObjectTypeDB::bind_method(_MD("_sample_convert_edited"),&ProjectExportDialog::_sample_convert_edited);
ObjectTypeDB::bind_method(_MD("export_platform"),&ProjectExportDialog::export_platform);
@@ -1316,6 +1333,22 @@ ProjectExportDialog::ProjectExportDialog(EditorNode *p_editor) {
hbc->add_child(button_reload);
*/
sample_vbox = memnew( VBoxContainer );
sample_vbox->set_name("Samples");
sections->add_child(sample_vbox);
sample_mode = memnew( OptionButton );
sample_vbox->add_margin_child("Sample Conversion Mode: (.wav files):",sample_mode);
sample_mode->add_item("Keep");
sample_mode->add_item("Compress (RAM - IMA-ADPCM)");
sample_max_hz = memnew( SpinBox );
sample_max_hz->set_max(192000);
sample_max_hz->set_min(8000);
sample_vbox->add_margin_child("Sampling Rate Limit: (hz)",sample_max_hz);
sample_trim = memnew( CheckButton );
sample_trim->set_text("Trim");
sample_vbox->add_margin_child("Trailing Silence:",sample_trim);
script_vbox = memnew( VBoxContainer );
script_vbox->set_name("Script");
sections->add_child(script_vbox);