~ubuntu-branches/ubuntu/jaunty/ecasound2.2/jaunty

« back to all changes in this revision

Viewing changes to libecasound/eca-chainsetup-parser.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Junichi Uekawa
  • Date: 2008-03-23 21:42:49 UTC
  • mfrom: (3.1.6 hardy)
  • Revision ID: james.westby@ubuntu.com-20080323214249-evlfv3y1o8q747la
Tags: 2.4.6.1-2
* Bug fix: "FTBFS with GCC 4.3: missing #includes", thanks to Martin
  Michlmayr (Closes: #454890).
- 13_gcc4: updated

Show diffs side-by-side

added added

removed removed

Lines of Context:
567
567
  case 'f':
568
568
    {
569
569
      ECA_AUDIO_FORMAT active_sinfo;
 
570
      int channels = atoi(kvu_get_argument_number(2, argu).c_str());
 
571
      long int srate = atol(kvu_get_argument_number(3, argu).c_str());
 
572
 
 
573
      /* initialize to current defaults */
 
574
      active_sinfo.set_audio_format(csetup_repp->default_audio_format());
 
575
 
570
576
      active_sinfo.set_sample_format_string(kvu_get_argument_number(1, argu));
571
 
      active_sinfo.set_channels(atoi(kvu_get_argument_number(2, argu).c_str()));
572
 
      active_sinfo.set_samples_per_second(atol(kvu_get_argument_number(3, argu).c_str()));
 
577
      if (channels > 0)
 
578
        active_sinfo.set_channels(channels);
 
579
      if (srate > 0)
 
580
        active_sinfo.set_samples_per_second(srate);
573
581
      if (kvu_get_argument_number(4, argu) == "n")
574
582
        active_sinfo.toggle_interleaved_channels(false);
575
583
      else
576
584
        active_sinfo.toggle_interleaved_channels(true);
577
585
 
 
586
      /* modify the defaults */
578
587
      csetup_repp->set_default_audio_format(active_sinfo);
579
588
      
580
589
      MESSAGE_ITEM ftemp;
581
 
      ftemp << "Set active format to (bits/channels/srate/interleave): ";
 
590
      ftemp << "Changed active format to (bits/channels/srate/interleave): ";
582
591
      ftemp << csetup_repp->default_audio_format().format_string() 
583
592
            << "/" << csetup_repp->default_audio_format().channels() 
584
593
            << "/" << csetup_repp->default_audio_format().samples_per_second();
755
764
      }
756
765
      else {
757
766
        AUDIO_IO* last_object = (*last_audio_add_vector_repp).back();
758
 
 
759
 
        last_object->seek_position_in_seconds(atof(kvu_get_argument_number(1, argu).c_str()));
760
 
 
761
 
        if (last_object->io_mode() == AUDIO_IO::io_read) {
762
 
          csetup_repp->input_start_pos[csetup_repp->input_start_pos.size() - 1] = last_object->position_in_seconds_exact();
 
767
        double newpos = atof(kvu_get_argument_number(1, argu).c_str());
 
768
 
 
769
        if (newpos > 0.0f &&
 
770
            last_object &&
 
771
            last_object->supports_seeking() != true) {
 
772
          interpret_set_result(false, string("Audio object does not support seeking, unable to set a non-zero starting offset. Object generating the error is '") + last_object->name() + "'.");
763
773
        }
764
774
        else {
765
 
          csetup_repp->output_start_pos[csetup_repp->output_start_pos.size() - 1] = last_object->position_in_seconds_exact();
 
775
 
 
776
          last_object->seek_position_in_seconds(newpos);
 
777
 
 
778
          if (last_object->io_mode() == AUDIO_IO::io_read) {
 
779
            csetup_repp->input_start_pos[csetup_repp->input_start_pos.size() - 1] = last_object->position_in_seconds_exact();
 
780
          }
 
781
          else {
 
782
            csetup_repp->output_start_pos[csetup_repp->output_start_pos.size() - 1] = last_object->position_in_seconds_exact();
 
783
          }
 
784
 
 
785
          ECA_LOG_MSG(ECA_LOGGER::info, "Setting starting position for audio object \""
 
786
                      + last_object->label() 
 
787
                      + "\": "
 
788
                      + kvu_numtostr(last_object->position_in_seconds_exact()) 
 
789
                      + " seconds.");
766
790
        }
767
 
 
768
 
        ECA_LOG_MSG(ECA_LOGGER::info, "Setting starting position for audio object \""
769
 
                    + last_object->label() 
770
 
                    + "\": "
771
 
                    + kvu_numtostr(last_object->position_in_seconds_exact()) 
772
 
                    + " seconds.");
773
791
        break;
774
792
      }
775
793
    }
1064
1082
      }
1065
1083
  }
1066
1084
 
1067
 
  t << " -n:" << csetup_repp->name();
 
1085
  t << " -n:\"" << csetup_repp->name() << "\"";
1068
1086
 
1069
1087
  if (csetup_repp->output_openmode() == AUDIO_IO::io_write) 
1070
1088
    t << " -x";
1144
1162
    t << " " 
1145
1163
      << ECA_OBJECT_FACTORY::audio_object_format_to_eos(csetup_repp->inputs[p]) 
1146
1164
      << " "
1147
 
      << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->inputs[p]);
 
1165
      << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->inputs[p], "i");
1148
1166
 
1149
1167
    if (csetup_repp->input_start_pos[p] != 0) {
1150
1168
      t << " -y:" << csetup_repp->input_start_pos[p];
1175
1193
    t << " " 
1176
1194
      << ECA_OBJECT_FACTORY::audio_object_format_to_eos(csetup_repp->outputs[p]) 
1177
1195
      << " "
1178
 
      << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->outputs[p]);
 
1196
      << ECA_OBJECT_FACTORY::audio_object_to_eos(csetup_repp->outputs[p], "o");
1179
1197
 
1180
1198
    if (csetup_repp->output_start_pos[p] != 0) {
1181
1199
      t << " -y:" << csetup_repp->output_start_pos[p];