diff options
| author | Robert Jonsson <spamatica@gmail.com> | 2012-09-30 21:53:03 +0000 | 
|---|---|---|
| committer | Robert Jonsson <spamatica@gmail.com> | 2012-09-30 21:53:03 +0000 | 
| commit | e1a3d5b87883b5faadbd43326326d4c5aadc871d (patch) | |
| tree | ecbb1a0aa3d5e05039ac5d08ad57bc1d056f072e /muse2/muse/audiotrack.cpp | |
| parent | 6db72b766ea8bf781d0172a62f873104b2e7cab6 (diff) | |
various fixes and changes
Diffstat (limited to 'muse2/muse/audiotrack.cpp')
| -rw-r--r-- | muse2/muse/audiotrack.cpp | 42 | 
1 files changed, 39 insertions, 3 deletions
diff --git a/muse2/muse/audiotrack.cpp b/muse2/muse/audiotrack.cpp index b9e245d2..f9c298a6 100644 --- a/muse2/muse/audiotrack.cpp +++ b/muse2/muse/audiotrack.cpp @@ -1710,9 +1710,32 @@ void AudioAux::write(int level, Xml& xml) const        {        xml.tag(level++, "AudioAux");        AudioTrack::writeProperties(level, xml); +      xml.intTag(level, "index", _index);        xml.etag(level, "AudioAux");        } + +//--------------------------------------------------------- +//   getNextAuxIndex +//--------------------------------------------------------- +int getNextAuxIndex() +{ +    printf("getNextAuxIndex!\n"); +    int curAux=0; +    AuxList * al = MusEGlobal::song->auxs(); +    for (MusECore::iAudioAux i = al->begin(); i != al->end(); ++i) +    { +        MusECore::AudioAux* ax = *i; +        printf("ax index %d\n", ax->index()); +        if (ax->index() > curAux) +        { +            printf("found new index! %d\n", ax->index()); +            curAux = ax->index(); +        } +    } +    return curAux+1; +} +  //---------------------------------------------------------  //   AudioAux  //--------------------------------------------------------- @@ -1720,25 +1743,27 @@ void AudioAux::write(int level, Xml& xml) const  AudioAux::AudioAux()     : AudioTrack(AUDIO_AUX)  { +      _index = getNextAuxIndex();        for(int i = 0; i < MAX_CHANNELS; ++i)        {          if(i < channels())            posix_memalign((void**)(buffer + i), 16, sizeof(float) * MusEGlobal::segmentSize);          else            buffer[i] = 0; -      }   +      }  }  AudioAux::AudioAux(const AudioAux& t, int flags)     : AudioTrack(t, flags)  { +      _index = getNextAuxIndex();        for(int i = 0; i < MAX_CHANNELS; ++i)        {          if(i < channels())            posix_memalign((void**)(buffer + i), 16, sizeof(float) * MusEGlobal::segmentSize);          else            buffer[i] = 0; -      }   +      }  }  //---------------------------------------------------------  //   AudioAux @@ -1766,7 +1791,9 @@ void AudioAux::read(Xml& xml)                    case Xml::End:                          return;                    case Xml::TagStart: -                        if (AudioTrack::readProperties(xml, tag)) +                      if (tag == "index") +                        _index = xml.parseInt(); +                      else if (AudioTrack::readProperties(xml, tag))                                xml.unknown("AudioAux");                          break;                    case Xml::Attribut: @@ -1839,6 +1866,15 @@ void AudioAux::setChannels(int n)  }  //--------------------------------------------------------- +//   setName +//--------------------------------------------------------- + +QString AudioAux::auxName() +{ +    return  QString("%1:").arg(index())+ name(); +} + +//---------------------------------------------------------  //   setRecordFlag1  //    gui part (executed in gui thread)  //---------------------------------------------------------  | 
