Mercurial > hg > ugly-duckling
diff src/app/services/feature-extraction/feature-extraction.service.ts @ 350:524f5cd75737
Split AnalysisItem out into individual types for root audio items and features. This is messy as is, these need revising and should perhaps be actual concrete types with methods.
author | Lucas Thompson <dev@lucas.im> |
---|---|
date | Fri, 26 May 2017 12:59:41 +0100 |
parents | bf038a51f7e3 |
children | 3eab26a629e1 |
line wrap: on
line diff
--- a/src/app/services/feature-extraction/feature-extraction.service.ts Thu May 25 17:57:03 2017 +0100 +++ b/src/app/services/feature-extraction/feature-extraction.service.ts Fri May 26 12:59:41 2017 +0100 @@ -3,8 +3,7 @@ ListResponse } from 'piper'; import { - SimpleRequest, - SimpleResponse + SimpleRequest } from 'piper/HigherLevelUtilities'; import {Subject} from 'rxjs/Subject'; import {Observable} from 'rxjs/Observable'; @@ -30,12 +29,17 @@ value: number; // between 0 and 100, for material-ui } +export interface ExtractionResult { + id: RequestId; + result: KnownShapedFeature; +} + @Injectable() export class FeatureExtractionService { private worker: Worker; - private featuresExtracted: Subject<KnownShapedFeature>; - featuresExtracted$: Observable<KnownShapedFeature>; + private featuresExtracted: Subject<ExtractionResult>; + featuresExtracted$: Observable<ExtractionResult>; private librariesUpdated: Subject<ListResponse>; librariesUpdated$: Observable<ListResponse>; private progressUpdated: Subject<Progress>; @@ -45,7 +49,7 @@ constructor(private http: Http, @Inject('PiperRepoUri') private repositoryUri: RepoUri) { this.worker = new Worker('bootstrap-feature-extraction-worker.js'); - this.featuresExtracted = new Subject<KnownShapedFeature>(); + this.featuresExtracted = new Subject<ExtractionResult>(); this.featuresExtracted$ = this.featuresExtracted.asObservable(); this.librariesUpdated = new Subject<ListResponse>(); this.librariesUpdated$ = this.librariesUpdated.asObservable(); @@ -70,7 +74,8 @@ return this.client.list({}); } - extract(analysisItemId: string, request: SimpleRequest): Promise<void> { + extract(analysisItemId: string, + request: SimpleRequest): Promise<ExtractionResult> { let config: StreamingConfiguration; return collect(this.client.process(request), val => { if (val.configuration) { @@ -88,8 +93,12 @@ features: features, outputDescriptor: config.outputDescriptor }); - console.warn(shaped.shape); - this.featuresExtracted.next(shaped); + const result = { + id: analysisItemId, + result: shaped + }; + this.featuresExtracted.next(result); + return result; }); }