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) //--------------------------------------------------------- |