{"version":3,"sources":["src/common.speech/DialogServiceTurnState.ts"],"names":[],"mappings":"AAGA,OAAO,EAAqB,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC9F,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,uBAAuB,EAAyB,MAAM,2CAA2C,CAAC;AAE3G,qBAAa,sBAAsB;IAC/B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,eAAe,CAAU;IACjC,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,gBAAgB,CAAM;IAC9B,OAAO,CAAC,eAAe,CAAgC;gBAE3C,OAAO,EAAE,6BAA6B,EAAE,SAAS,EAAE,MAAM;aAU1D,WAAW,EAAI,yBAAyB;IAM5C,sBAAsB,CAAC,OAAO,EAAE,uBAAuB,GAAG,yBAAyB;IASnF,cAAc,IAAI,IAAI;IAMtB,QAAQ,IAAI,IAAI;IAOvB,OAAO,CAAC,mBAAmB;CAe9B","file":"DialogServiceTurnState.d.ts","sourcesContent":["// Copyright (c) Microsoft Corporation. All rights reserved.\n// Licensed under the MIT license.\n\nimport { AudioOutputStream, PullAudioOutputStreamImpl } from \"../sdk/Audio/AudioOutputStream\";\nimport { DialogServiceTurnStateManager } from \"./DialogServiceTurnStateManager\";\nimport { ActivityPayloadResponse, MessageDataStreamType } from \"./ServiceMessages/ActivityResponsePayload\";\n\nexport class DialogServiceTurnState {\n    private privRequestId: string;\n    private privIsCompleted: boolean;\n    private privAudioStream: PullAudioOutputStreamImpl;\n    private privTimeoutToken: any;\n    private privTurnManager: DialogServiceTurnStateManager;\n\n    constructor(manager: DialogServiceTurnStateManager, requestId: string) {\n        this.privRequestId = requestId;\n        this.privIsCompleted = false;\n        this.privAudioStream = null;\n        this.privTurnManager = manager;\n        this.resetTurnEndTimeout();\n        // tslint:disable-next-line:no-console\n        // console.info(\"DialogServiceTurnState debugturn start:\" + this.privRequestId);\n    }\n\n    public get audioStream(): PullAudioOutputStreamImpl {\n        // Called when is needed to stream.\n        this.resetTurnEndTimeout();\n        return this.privAudioStream;\n    }\n\n    public processActivityPayload(payload: ActivityPayloadResponse): PullAudioOutputStreamImpl {\n        if (payload.messageDataStreamType === MessageDataStreamType.TextToSpeechAudio) {\n            this.privAudioStream = AudioOutputStream.createPullStream() as PullAudioOutputStreamImpl;\n            // tslint:disable-next-line:no-console\n            // console.info(\"Audio start debugturn:\" + this.privRequestId);\n        }\n        return this.privAudioStream;\n    }\n\n    public endAudioStream(): void {\n        if (this.privAudioStream !== null && !this.privAudioStream.isClosed) {\n            this.privAudioStream.close();\n        }\n    }\n\n    public complete(): void {\n        if (this.privTimeoutToken !== undefined) {\n            clearTimeout(this.privTimeoutToken);\n        }\n        this.endAudioStream();\n    }\n\n    private resetTurnEndTimeout(): void {\n        if (this.privTimeoutToken !== undefined) {\n            clearTimeout(this.privTimeoutToken);\n        }\n        // tslint:disable-next-line:no-console\n        // console.info(\"Timeout reset debugturn:\" + this.privRequestId);\n\n        this.privTimeoutToken = setTimeout((): void => {\n            // tslint:disable-next-line:no-console\n            // console.info(\"Timeout complete debugturn:\" + this.privRequestId);\n\n            this.privTurnManager.CompleteTurn(this.privRequestId);\n            return;\n        }, 2000);\n    }\n}\n"]}