diff -u ./libecasound/eca-chainsetup-parser.cpp ../ecasound_patches/eca-chainsetup-parser.cpp --- ./libecasound/eca-chainsetup-parser.cpp 2006-01-23 01:56:16.000000000 +1100 +++ ../ecasound_patches/eca-chainsetup-parser.cpp 2006-04-25 11:40:52.000000000 +1000 @@ -1144,7 +1144,7 @@ t << " " << ECA_OBJECT_FACTORY::audio_object_format_to_eos(csetup_repp->inputs[p]) << " " - << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->inputs[p]); + << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->inputs[p], "i"); if (csetup_repp->input_start_pos[p] != 0) { t << " -y:" << csetup_repp->input_start_pos[p]; @@ -1175,7 +1175,7 @@ t << " " << ECA_OBJECT_FACTORY::audio_object_format_to_eos(csetup_repp->outputs[p]) << " " - << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->outputs[p]); + << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->outputs[p], "o"); if (csetup_repp->output_start_pos[p] != 0) { t << " -y:" << csetup_repp->output_start_pos[p]; diff -u ./libecasound/eca-control.cpp ../ecasound_patches/eca-control.cpp --- ./libecasound/eca-control.cpp 2005-09-01 06:27:50.000000000 +1000 +++ ../ecasound_patches/eca-control.cpp 2006-04-25 11:41:50.000000000 +1000 @@ -455,7 +455,7 @@ // Audio input objects // --- case ec_ai_add: { add_audio_input(action_args_rep); break; } - case ec_ai_describe: { set_last_string(ECA_OBJECT_FACTORY::audio_object_to_eos(selected_audio_input_repp)); break; } + case ec_ai_describe: { set_last_string(ECA_OBJECT_FACTORY::audio_object_to_eos(selected_audio_input_repp, "i")); break; } case ec_ai_remove: { remove_audio_input(); break; } case ec_ai_list: { set_last_string_list(audio_input_names()); break; } case ec_ai_select: { select_audio_input(action_args_rep); break; } @@ -500,7 +500,7 @@ // --- case ec_ao_add: { if (action_args_rep.size() == 0) add_default_output(); else add_audio_output(action_args_rep); break; } case ec_ao_add_default: { add_default_output(); break; } - case ec_ao_describe: { set_last_string(ECA_OBJECT_FACTORY::audio_object_to_eos(selected_audio_output_repp)); break; } + case ec_ao_describe: { set_last_string(ECA_OBJECT_FACTORY::audio_object_to_eos(selected_audio_output_repp, "o")); break; } case ec_ao_remove: { remove_audio_output(); break; } case ec_ao_list: { set_last_string_list(audio_output_names()); break; } case ec_ao_select: { select_audio_output(action_args_rep); break; } diff -u ./libecasound/eca-object-factory.cpp ../ecasound_patches/eca-object-factory.cpp --- ./libecasound/eca-object-factory.cpp 2005-09-01 06:28:18.000000000 +1000 +++ ../ecasound_patches/eca-object-factory.cpp 2006-04-25 11:40:16.000000000 +1000 @@ -656,7 +656,8 @@ #ifndef ECA_DISABLE_EFFECTS const EFFECT_LADSPA* ladspa = dynamic_cast(chainop); if (ladspa != 0) { - t << "-eli:" << ladspa->unique_number(); + // t << "-eli:" << ladspa->unique_number(); + t << "-el:" << ladspa->unique(); if (chainop->number_of_params() > 0) t << ","; } else { @@ -731,13 +732,15 @@ * Return a string compliant with Ecasound Option Syntax (EOS) * describing the object 'aiod'. */ -string ECA_OBJECT_FACTORY::audio_object_to_eos(const AUDIO_IO* aiod) +string ECA_OBJECT_FACTORY::audio_object_to_eos(const AUDIO_IO* aiod, const std::string& direction) { MESSAGE_ITEM t; + /* string direction ("i"); if (aiod->io_mode() != AUDIO_IO::io_read) { direction = "o"; } + */ t << " -" << direction << ":"; for(int n = 0; n < aiod->number_of_params(); n++) { // FIXME: should quote/escape possible commas and whitespace diff -u ./libecasound/eca-object-factory.h ../ecasound_patches/eca-object-factory.h --- ./libecasound/eca-object-factory.h 2005-09-01 05:58:20.000000000 +1000 +++ ../ecasound_patches/eca-object-factory.h 2006-04-25 11:39:02.000000000 +1000 @@ -81,7 +81,7 @@ static std::string chain_operator_to_eos(const CHAIN_OPERATOR* chainop); static std::string controller_to_eos(const GENERIC_CONTROLLER* gctrl); static std::string operator_parameters_to_eos(const OPERATOR* chainop); - static std::string audio_object_to_eos(const AUDIO_IO* aiod); + static std::string audio_object_to_eos(const AUDIO_IO* aiod, const std::string& direction); static std::string audio_object_format_to_eos(const AUDIO_IO* aiod); /*@}*/