Mercurial > hg > ugly-duckling
changeset 459:8d561b6df2fa
Load the audio for the top notebook after removing an item.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Fri, 30 Jun 2017 00:59:38 +0100 |
parents | f8d37ce6f475 |
children | ccce2c09502e |
files | src/app/app.component.ts |
diffstat | 1 files changed, 28 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/src/app/app.component.ts Fri Jun 30 00:58:44 2017 +0100 +++ b/src/app/app.component.ts Fri Jun 30 00:59:38 2017 +0100 @@ -99,7 +99,6 @@ styleUrls: ['./app.component.css'] }) export class AppComponent implements OnDestroy { - audioBuffer: AudioBuffer; // TODO consider revising canExtract: boolean; private onAudioDataSubscription: Subscription; private onProgressUpdated: Subscription; @@ -135,9 +134,8 @@ this.analyses.shift(); this.canExtract = false; } else { - this.audioBuffer = (resource as AudioResource).samples; - this.rootAudioItem.audioData = this.audioBuffer; - if (this.audioBuffer) { + this.rootAudioItem.audioData = (resource as AudioResource).samples; + if (this.rootAudioItem.audioData) { this.canExtract = true; const currentRootIndex = this.analyses.findIndex(val => { return isRootAudioItem(val) && val.uri === this.rootAudioItem.uri; @@ -148,7 +146,7 @@ Object.assign( {}, this.analyses.get(currentRootIndex), - {audioData: this.audioBuffer} + {audioData: this.rootAudioItem.audioData} ) ); } @@ -224,13 +222,15 @@ }; this.analyses.unshift(placeholderCard); + const audioBuffer = this.rootAudioItem.audioData; + this.featureService.extract(`${this.countingId}`, { - audioData: [...Array(this.audioBuffer.numberOfChannels).keys()] - .map(i => this.audioBuffer.getChannelData(i)), + audioData: [...Array(audioBuffer.numberOfChannels).keys()] + .map(i => audioBuffer.getChannelData(i)), audioFormat: { - sampleRate: this.audioBuffer.sampleRate, - channelCount: this.audioBuffer.numberOfChannels, - length: this.audioBuffer.length + sampleRate: audioBuffer.sampleRate, + channelCount: audioBuffer.numberOfChannels, + length: audioBuffer.length }, key: outputInfo.extractorKey, outputId: outputInfo.outputId @@ -265,14 +265,31 @@ } return toRemove; }, []); + this.analyses.remove(...indicesToRemove); if (isPendingRootAudioItem(item)) { if (this.rootAudioItem.uri === item.uri) { this.audioService.unload(); + const topItem = this.analyses.get(0); + const nullRootAudio: RootAudioItem = {uri: ''} as any; // TODO eugh + + if (topItem) { + if (isPendingAnalysisItem(topItem)) { + this.rootAudioItem = topItem.parent as RootAudioItem; + } else if(isPendingRootAudioItem(topItem)) { + this.rootAudioItem = topItem as RootAudioItem + } else { + this.rootAudioItem = nullRootAudio; + } + } else { + this.rootAudioItem = nullRootAudio; + } + if (this.rootAudioItem) { + this.audioService.loadAudioFromUri(this.rootAudioItem.uri); + } } else { this.resourceManager.revokeUrlToResource(item.uri); } } - this.analyses.remove(...indicesToRemove); } ngOnDestroy(): void {