mirror of
https://github.com/cookiengineer/audacity
synced 2025-07-30 15:39:27 +02:00
Bug 2584 - "GetInfo: Envelopes" returns incorrect track numbers
Also clip count resets to zero on each new track. Also fixed GetInfo: Clips to count all tracks, not just wave tracks.
This commit is contained in:
parent
69e0d7d114
commit
d6a6b256fe
@ -510,16 +510,19 @@ bool GetInfoCommand::SendClips(const CommandContext &context)
|
||||
auto &tracks = TrackList::Get( context.project );
|
||||
int i=0;
|
||||
context.StartArray();
|
||||
for (auto waveTrack : tracks.Leaders<WaveTrack>()) {
|
||||
WaveClipPointers ptrs( waveTrack->SortedClipArray());
|
||||
for(WaveClip * pClip : ptrs ) {
|
||||
context.StartStruct();
|
||||
context.AddItem( (double)i, "track" );
|
||||
context.AddItem( pClip->GetStartTime(), "start" );
|
||||
context.AddItem( pClip->GetEndTime(), "end" );
|
||||
context.AddItem( pClip->GetColourIndex(), "color" );
|
||||
context.EndStruct();
|
||||
}
|
||||
for (auto t : tracks.Leaders()) {
|
||||
t->TypeSwitch([&](WaveTrack *waveTrack) {
|
||||
WaveClipPointers ptrs(waveTrack->SortedClipArray());
|
||||
for (WaveClip * pClip : ptrs) {
|
||||
context.StartStruct();
|
||||
context.AddItem((double)i, "track");
|
||||
context.AddItem(pClip->GetStartTime(), "start");
|
||||
context.AddItem(pClip->GetEndTime(), "end");
|
||||
context.AddItem(pClip->GetColourIndex(), "color");
|
||||
context.EndStruct();
|
||||
}
|
||||
});
|
||||
// Per track numbering counts all tracks
|
||||
i++;
|
||||
}
|
||||
context.EndArray();
|
||||
@ -533,30 +536,35 @@ bool GetInfoCommand::SendEnvelopes(const CommandContext &context)
|
||||
int i=0;
|
||||
int j=0;
|
||||
context.StartArray();
|
||||
for (auto waveTrack : tracks.Leaders<WaveTrack>()) {
|
||||
WaveClipPointers ptrs( waveTrack->SortedClipArray());
|
||||
for(WaveClip * pClip : ptrs ) {
|
||||
context.StartStruct();
|
||||
context.AddItem( (double)i, "track" );
|
||||
context.AddItem( (double)j, "clip" );
|
||||
context.AddItem( pClip->GetStartTime(), "start" );
|
||||
Envelope * pEnv = pClip->GetEnvelope();
|
||||
context.StartField( "points" );
|
||||
context.StartArray();
|
||||
double offset = pEnv->GetOffset();
|
||||
for( size_t k = 0; k < pEnv->GetNumberOfPoints(); k++)
|
||||
{
|
||||
context.StartStruct( );
|
||||
context.AddItem( (*pEnv)[k].GetT()+offset, "t" );
|
||||
context.AddItem( (*pEnv)[k].GetVal(), "y" );
|
||||
for (auto t : tracks.Leaders()) {
|
||||
t->TypeSwitch([&](WaveTrack *waveTrack) {
|
||||
WaveClipPointers ptrs(waveTrack->SortedClipArray());
|
||||
j = 0;
|
||||
for (WaveClip * pClip : ptrs) {
|
||||
context.StartStruct();
|
||||
context.AddItem((double)i, "track");
|
||||
context.AddItem((double)j, "clip");
|
||||
context.AddItem(pClip->GetStartTime(), "start");
|
||||
Envelope * pEnv = pClip->GetEnvelope();
|
||||
context.StartField("points");
|
||||
context.StartArray();
|
||||
double offset = pEnv->GetOffset();
|
||||
for (size_t k = 0; k < pEnv->GetNumberOfPoints(); k++)
|
||||
{
|
||||
context.StartStruct();
|
||||
context.AddItem((*pEnv)[k].GetT() + offset, "t");
|
||||
context.AddItem((*pEnv)[k].GetVal(), "y");
|
||||
context.EndStruct();
|
||||
}
|
||||
context.EndArray();
|
||||
context.EndField();
|
||||
context.AddItem(pClip->GetEndTime(), "end");
|
||||
context.EndStruct();
|
||||
j++;
|
||||
}
|
||||
context.EndArray();
|
||||
context.EndField();
|
||||
context.AddItem( pClip->GetEndTime(), "end" );
|
||||
context.EndStruct();
|
||||
j++;
|
||||
}
|
||||
});
|
||||
// Per track numbering counts all tracks
|
||||
i++;
|
||||
}
|
||||
context.EndArray();
|
||||
|
||||
@ -601,8 +609,6 @@ bool GetInfoCommand::SendLabels(const CommandContext &context)
|
||||
}
|
||||
context.EndArray();
|
||||
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user