view 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
line wrap: on
line source
/**
 * Created by lucas on 17/03/2017.
 */

import {
  Component,
  OnInit,
  OnDestroy,
  Output,
  EventEmitter
} from '@angular/core';
import {
  AudioRecorderService,
  RecorderServiceStatus
} from '../services/audio-recorder/audio-recorder.service';
import {Subscription} from 'rxjs/Subscription';

@Component({
  selector: 'ugly-recording-control',
  templateUrl: './recording-control.component.html'
})
export class RecordingControlComponent implements OnInit, OnDestroy {
  private recordingState: Subscription;
  private newRecording: Subscription;
  recordingStatus: RecorderServiceStatus;
  @Output() finishedRecording: EventEmitter<Blob>;

  constructor(private recordingService: AudioRecorderService) {
    this.recordingStatus = 'disabled';
    this.finishedRecording = new EventEmitter<Blob>();
  }

  ngOnInit(): void {
    this.recordingState = this.recordingService.recordingStateChange$.subscribe(
      (status: RecorderServiceStatus) => {
        this.recordingStatus = status;
      }
    );
    this.newRecording = this.recordingService.newRecording$.subscribe(
      (recordingBlob: Blob) => {
        this.finishedRecording.emit(recordingBlob);
      }
    );
  }

  ngOnDestroy(): void {
    this.recordingState.unsubscribe();
    this.newRecording.unsubscribe();
  }

   emitToggleRecording() {
     this.recordingService.toggleRecording();
   }
}