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 }