import { release, notImplemented, somewhatImplemented } from '../../base/utilities/Debug'; import { SoundTransform } from './SoundTransform'; import { axCoerceString } from '../../avm2/run/axCoerceString'; import { EventDispatcher } from '../events/EventDispatcher'; import { ASArray } from '../../avm2/nat/ASArray'; /** * Copyright 2014 Mozilla Foundation * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ // Class: Microphone export class Microphone extends EventDispatcher { static classInitializer: any = null; constructor () { super(); } static get names(): ASArray { release || somewhatImplemented('public flash.media.Microphone::get names'); return this.sec.createArrayUnsafe([]); // return this._names; } static get isSupported(): boolean { release || somewhatImplemented('public flash.media.Microphone::get isSupported'); return false; // return this._isSupported; } static getMicrophone(index: number /*int*/ = -1): Microphone { index = index | 0; release || notImplemented('public flash.media.Microphone::static getMicrophone'); return; } static getEnhancedMicrophone(index: number /*int*/ = -1): Microphone { index = index | 0; release || notImplemented('public flash.media.Microphone::static getEnhancedMicrophone'); return; } // _rate: number /*int*/; // _codec: string; // _framesPerPacket: number /*int*/; // _encodeQuality: number /*int*/; // _noiseSuppressionLevel: number /*int*/; // _enableVAD: boolean; // _activityLevel: number; // _gain: number; // _index: number /*int*/; // _muted: boolean; // _name: string; // _silenceLevel: number; // _silenceTimeout: number /*int*/; // _useEchoSuppression: boolean; // _soundTransform: flash.media.SoundTransform; // _enhancedOptions: flash.media.MicrophoneEnhancedOptions; get rate(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get rate'); return; // return this._rate; } set rate(rate: number /*int*/) { rate = rate | 0; release || notImplemented('public flash.media.Microphone::set rate'); return; // this._rate = rate; } get codec(): string { release || notImplemented('public flash.media.Microphone::get codec'); return; // return this._codec; } set codec(codec: string) { codec = axCoerceString(codec); release || notImplemented('public flash.media.Microphone::set codec'); return; // this._codec = codec; } get framesPerPacket(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get framesPerPacket'); return; // return this._framesPerPacket; } set framesPerPacket(frames: number /*int*/) { frames = frames | 0; release || notImplemented('public flash.media.Microphone::set framesPerPacket'); return; // this._framesPerPacket = frames; } get encodeQuality(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get encodeQuality'); return; // return this._encodeQuality; } set encodeQuality(quality: number /*int*/) { quality = quality | 0; release || notImplemented('public flash.media.Microphone::set encodeQuality'); return; // this._encodeQuality = quality; } get noiseSuppressionLevel(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get noiseSuppressionLevel'); return; // return this._noiseSuppressionLevel; } set noiseSuppressionLevel(level: number /*int*/) { level = level | 0; release || notImplemented('public flash.media.Microphone::set noiseSuppressionLevel'); return; // this._noiseSuppressionLevel = level; } get enableVAD(): boolean { release || notImplemented('public flash.media.Microphone::get enableVAD'); return; // return this._enableVAD; } set enableVAD(enable: boolean) { enable = !!enable; release || notImplemented('public flash.media.Microphone::set enableVAD'); return; // this._enableVAD = enable; } get activityLevel(): number { release || notImplemented('public flash.media.Microphone::get activityLevel'); return; // return this._activityLevel; } get gain(): number { release || notImplemented('public flash.media.Microphone::get gain'); return; // return this._gain; } set gain(gain: number) { gain = +gain; release || notImplemented('public flash.media.Microphone::set gain'); return; // this._gain = gain; } get index(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get index'); return; // return this._index; } get muted(): boolean { release || notImplemented('public flash.media.Microphone::get muted'); return; // return this._muted; } get name(): string { release || notImplemented('public flash.media.Microphone::get name'); return; // return this._name; } get silenceLevel(): number { release || notImplemented('public flash.media.Microphone::get silenceLevel'); return; // return this._silenceLevel; } get silenceTimeout(): number /*int*/ { release || notImplemented('public flash.media.Microphone::get silenceTimeout'); return; // return this._silenceTimeout; } get useEchoSuppression(): boolean { release || notImplemented('public flash.media.Microphone::get useEchoSuppression'); return; // return this._useEchoSuppression; } get soundTransform(): SoundTransform { release || notImplemented('public flash.media.Microphone::get soundTransform'); return; // return this._soundTransform; } set soundTransform(sndTransform: SoundTransform) { sndTransform = sndTransform; release || notImplemented('public flash.media.Microphone::set soundTransform'); return; // this._soundTransform = sndTransform; } get enhancedOptions(): any /* flash.media.MicrophoneEnhancedOptions */ { release || notImplemented('public flash.media.Microphone::get enhancedOptions'); return; // return this._enhancedOptions; } set enhancedOptions(options: any /* flash.media.MicrophoneEnhancedOptions */) { options = options; release || notImplemented('public flash.media.Microphone::set enhancedOptions'); return; // this._enhancedOptions = options; } setSilenceLevel(silenceLevel: number, timeout: number /*int*/ = -1): void { silenceLevel = +silenceLevel; timeout = timeout | 0; release || notImplemented('public flash.media.Microphone::setSilenceLevel'); return; } setUseEchoSuppression(useEchoSuppression: boolean): void { useEchoSuppression = !!useEchoSuppression; release || notImplemented('public flash.media.Microphone::setUseEchoSuppression'); return; } setLoopBack(state: boolean = true): void { state = !!state; release || notImplemented('public flash.media.Microphone::setLoopBack'); return; } }