comparison src/app/app.module.ts @ 192:e4f38975c2bc

Introduce interface for reading a file, once again avoiding specific browser implementation.
author Lucas Thompson <dev@lucas.im>
date Thu, 23 Mar 2017 15:42:34 +0000
parents ea735ebeed0e
children ff5a850f0f72
comparison
equal deleted inserted replaced
191:ea735ebeed0e 192:e4f38975c2bc
8 import { WaveformComponent } from './waveform/waveform.component'; 8 import { WaveformComponent } from './waveform/waveform.component';
9 import { AudioFileOpenComponent } from './audio-file-open/audio-file-open.component'; 9 import { AudioFileOpenComponent } from './audio-file-open/audio-file-open.component';
10 import { PlaybackControlComponent } from './playback-control/playback-control.component'; 10 import { PlaybackControlComponent } from './playback-control/playback-control.component';
11 import { 11 import {
12 AudioPlayerService, 12 AudioPlayerService,
13 UrlResourceLifetimeManager 13 UrlResourceLifetimeManager, ResourceReader
14 } from "./services/audio-player/audio-player.service"; 14 } from "./services/audio-player/audio-player.service";
15 import { FeatureExtractionService } from "./services/feature-extraction/feature-extraction.service"; 15 import { FeatureExtractionService } from "./services/feature-extraction/feature-extraction.service";
16 import { FeatureExtractionMenuComponent } from "./feature-extraction-menu/feature-extraction-menu.component"; 16 import { FeatureExtractionMenuComponent } from "./feature-extraction-menu/feature-extraction-menu.component";
17 import { ProgressSpinnerComponent } from "./progress-spinner/progress-spinner.component"; 17 import { ProgressSpinnerComponent } from "./progress-spinner/progress-spinner.component";
18 import { 18 import {
71 revokeUrlToResource: (url: string) => { 71 revokeUrlToResource: (url: string) => {
72 URL.revokeObjectURL(url); 72 URL.revokeObjectURL(url);
73 } 73 }
74 }; 74 };
75 75
76 export const readResource: ResourceReader = (resource) => {
77 return new Promise((res, rej) => {
78 const reader: FileReader = new FileReader();
79 reader.onload = (event: any) => {
80 res(event.target.result);
81 };
82 reader.onerror = (event) => {
83 rej(event.message);
84 };
85 reader.readAsArrayBuffer(resource);
86 });
87 };
88
76 @NgModule({ 89 @NgModule({
77 declarations: [ 90 declarations: [
78 AppComponent, 91 AppComponent,
79 WaveformComponent, 92 WaveformComponent,
80 AudioFileOpenComponent, 93 AudioFileOpenComponent,
98 {provide: 'AudioInputProvider', useFactory: createAudioInputProvider}, 111 {provide: 'AudioInputProvider', useFactory: createAudioInputProvider},
99 AudioRecorderService, 112 AudioRecorderService,
100 FeatureExtractionService, 113 FeatureExtractionService,
101 {provide: 'MediaRecorderFactory', useFactory: createMediaRecorderFactory}, 114 {provide: 'MediaRecorderFactory', useFactory: createMediaRecorderFactory},
102 {provide: 'PiperRepoUri', useValue: 'assets/remote-plugins.json'}, 115 {provide: 'PiperRepoUri', useValue: 'assets/remote-plugins.json'},
103 {provide: 'UrlResourceLifetimeManager', useValue: urlResourceManager} 116 {provide: 'UrlResourceLifetimeManager', useValue: urlResourceManager},
117 {provide: 'ResourceReader', useValue: readResource}
104 ], 118 ],
105 bootstrap: [AppComponent] 119 bootstrap: [AppComponent]
106 }) 120 })
107 export class AppModule { 121 export class AppModule {
108 122