Mercurial > hg > ugly-duckling
annotate src/app/recording-control/recording-control.component.ts @ 509:041468f553e1 tip master
Merge pull request #57 from LucasThompson/fix/session-stack-max-call-stack
Fix accidental recursion in PersistentStack
author | Lucas Thompson <LucasThompson@users.noreply.github.com> |
---|---|
date | Mon, 27 Nov 2017 11:04:30 +0000 |
parents | 53ea6406d601 |
children |
rev | line source |
---|---|
dev@133 | 1 /** |
dev@133 | 2 * Created by lucas on 17/03/2017. |
dev@133 | 3 */ |
dev@133 | 4 |
dev@133 | 5 import { |
dev@133 | 6 Component, |
dev@133 | 7 OnInit, |
dev@133 | 8 OnDestroy, |
dev@133 | 9 Output, |
dev@133 | 10 EventEmitter |
dev@236 | 11 } from '@angular/core'; |
dev@133 | 12 import { |
dev@133 | 13 AudioRecorderService, |
dev@133 | 14 RecorderServiceStatus |
dev@236 | 15 } from '../services/audio-recorder/audio-recorder.service'; |
dev@236 | 16 import {Subscription} from 'rxjs/Subscription'; |
dev@133 | 17 |
dev@133 | 18 @Component({ |
dev@133 | 19 selector: 'ugly-recording-control', |
dev@133 | 20 templateUrl: './recording-control.component.html' |
dev@133 | 21 }) |
dev@133 | 22 export class RecordingControlComponent implements OnInit, OnDestroy { |
dev@133 | 23 private recordingState: Subscription; |
dev@133 | 24 private newRecording: Subscription; |
dev@133 | 25 recordingStatus: RecorderServiceStatus; |
dev@133 | 26 @Output() finishedRecording: EventEmitter<Blob>; |
dev@133 | 27 |
dev@133 | 28 constructor(private recordingService: AudioRecorderService) { |
dev@236 | 29 this.recordingStatus = 'disabled'; |
dev@133 | 30 this.finishedRecording = new EventEmitter<Blob>(); |
dev@133 | 31 } |
dev@133 | 32 |
dev@133 | 33 ngOnInit(): void { |
dev@133 | 34 this.recordingState = this.recordingService.recordingStateChange$.subscribe( |
dev@133 | 35 (status: RecorderServiceStatus) => { |
dev@133 | 36 this.recordingStatus = status; |
dev@133 | 37 } |
dev@133 | 38 ); |
dev@133 | 39 this.newRecording = this.recordingService.newRecording$.subscribe( |
dev@133 | 40 (recordingBlob: Blob) => { |
dev@133 | 41 this.finishedRecording.emit(recordingBlob); |
dev@133 | 42 } |
dev@133 | 43 ); |
dev@133 | 44 } |
dev@133 | 45 |
dev@133 | 46 ngOnDestroy(): void { |
dev@133 | 47 this.recordingState.unsubscribe(); |
dev@133 | 48 this.newRecording.unsubscribe(); |
dev@133 | 49 } |
dev@133 | 50 |
dev@133 | 51 emitToggleRecording() { |
dev@133 | 52 this.recordingService.toggleRecording(); |
dev@133 | 53 } |
dev@133 | 54 } |