{"version":3,"file":"audio-client-1wd_uLw5.mjs","names":[],"sources":["../src/audio/audio-client.ts"],"sourcesContent":["/* SPDX-FileCopyrightText: 2026 Espressif Systems (Shanghai) CO LTD */\n/* SPDX-License-Identifier: Apache-2.0 */\n\nimport {\n  callServiceFunction,\n  closeService,\n  isServiceAvailable,\n  openService,\n  resolveHost,\n  type ServiceClientOptions,\n  type ServiceHandle,\n} from '../common/service-rpc.ts';\nimport type { AudioPlayUrlConfig } from './audio-types.ts';\n\n/** Registered name (`helper::Audio::PLAYBACK_NAME`). */\nexport const AUDIO_PLAYBACK_SERVICE_NAME = 'AudioPlayback';\n\n/** RPC function names (`helper::Audio::PlaybackFunctionId`). */\nexport const AUDIO_PLAYBACK_FUNCTIONS = {\n  Play: 'Play',\n  PlayUrls: 'PlayUrls',\n  Pause: 'Pause',\n  Resume: 'Resume',\n  Stop: 'Stop',\n  SetVolume: 'SetVolume',\n  GetVolume: 'GetVolume',\n  SetMute: 'SetMute',\n  GetMute: 'GetMute',\n  LoadData: 'LoadData',\n  ResetData: 'ResetData',\n} as const;\n\nexport type AudioPlaybackClientOptions = ServiceClientOptions;\n\nexport { type ServiceHandle as AudioPlaybackHandle };\n\nexport function isAudioPlaybackAvailable(options?: AudioPlaybackClientOptions): boolean {\n  return isServiceAvailable(AUDIO_PLAYBACK_SERVICE_NAME, options);\n}\n\nexport function openAudioPlayback(options?: AudioPlaybackClientOptions): ServiceHandle {\n  return openService(AUDIO_PLAYBACK_SERVICE_NAME, options);\n}\n\nexport function closeAudioPlayback(\n  handle: ServiceHandle,\n  options?: AudioPlaybackClientOptions,\n): void {\n  closeService(handle, options);\n}\n\nfunction callAudioPlayback<T>(\n  handle: ServiceHandle,\n  functionName: string,\n  params: Record<string, unknown>,\n  options?: AudioPlaybackClientOptions,\n): T {\n  return callServiceFunction<T>(resolveHost(options), handle, functionName, params);\n}\n\nexport function play(\n  handle: ServiceHandle,\n  url: string,\n  config: AudioPlayUrlConfig = {},\n  options?: AudioPlaybackClientOptions,\n): void {\n  callAudioPlayback<void>(\n    handle,\n    AUDIO_PLAYBACK_FUNCTIONS.Play,\n    { Url: url, Config: config },\n    options,\n  );\n}\n\nexport function playUrls(\n  handle: ServiceHandle,\n  urls: string[],\n  config: AudioPlayUrlConfig = {},\n  options?: AudioPlaybackClientOptions,\n): void {\n  callAudioPlayback<void>(\n    handle,\n    AUDIO_PLAYBACK_FUNCTIONS.PlayUrls,\n    { Urls: urls, Config: config },\n    options,\n  );\n}\n\nexport function pause(handle: ServiceHandle, options?: AudioPlaybackClientOptions): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.Pause, {}, options);\n}\n\nexport function resume(handle: ServiceHandle, options?: AudioPlaybackClientOptions): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.Resume, {}, options);\n}\n\nexport function stop(handle: ServiceHandle, options?: AudioPlaybackClientOptions): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.Stop, {}, options);\n}\n\nexport function setVolume(\n  handle: ServiceHandle,\n  volume: number,\n  options?: AudioPlaybackClientOptions,\n): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.SetVolume, { Volume: volume }, options);\n}\n\nexport function getVolume(handle: ServiceHandle, options?: AudioPlaybackClientOptions): number {\n  return callAudioPlayback<number>(handle, AUDIO_PLAYBACK_FUNCTIONS.GetVolume, {}, options);\n}\n\nexport function setMute(\n  handle: ServiceHandle,\n  enable: boolean,\n  options?: AudioPlaybackClientOptions,\n): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.SetMute, { Enable: enable }, options);\n}\n\nexport function getMute(handle: ServiceHandle, options?: AudioPlaybackClientOptions): boolean {\n  return callAudioPlayback<boolean>(handle, AUDIO_PLAYBACK_FUNCTIONS.GetMute, {}, options);\n}\n\nexport function loadAudioData(handle: ServiceHandle, options?: AudioPlaybackClientOptions): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.LoadData, {}, options);\n}\n\nexport function resetAudioData(handle: ServiceHandle, options?: AudioPlaybackClientOptions): void {\n  callAudioPlayback<void>(handle, AUDIO_PLAYBACK_FUNCTIONS.ResetData, {}, options);\n}\n"],"mappings":";;;AAeA,MAAa,8BAA8B;;AAG3C,MAAa,2BAA2B;CACtC,MAAM;CACN,UAAU;CACV,OAAO;CACP,QAAQ;CACR,MAAM;CACN,WAAW;CACX,WAAW;CACX,SAAS;CACT,SAAS;CACT,UAAU;CACV,WAAW;AACb;AAMA,SAAgB,yBAAyB,SAA+C;CACtF,OAAO,mBAAmB,6BAA6B,OAAO;AAChE;AAEA,SAAgB,kBAAkB,SAAqD;CACrF,OAAO,YAAY,6BAA6B,OAAO;AACzD;AAEA,SAAgB,mBACd,QACA,SACM;CACN,aAAa,QAAQ,OAAO;AAC9B;AAEA,SAAS,kBACP,QACA,cACA,QACA,SACG;CACH,OAAO,oBAAuB,YAAY,OAAO,GAAG,QAAQ,cAAc,MAAM;AAClF;AAEA,SAAgB,KACd,QACA,KACA,SAA6B,CAAC,GAC9B,SACM;CACN,kBACE,QACA,yBAAyB,MACzB;EAAE,KAAK;EAAK,QAAQ;CAAO,GAC3B,OACF;AACF;AAEA,SAAgB,SACd,QACA,MACA,SAA6B,CAAC,GAC9B,SACM;CACN,kBACE,QACA,yBAAyB,UACzB;EAAE,MAAM;EAAM,QAAQ;CAAO,GAC7B,OACF;AACF;AAEA,SAAgB,MAAM,QAAuB,SAA4C;CACvF,kBAAwB,QAAQ,yBAAyB,OAAO,CAAC,GAAG,OAAO;AAC7E;AAEA,SAAgB,OAAO,QAAuB,SAA4C;CACxF,kBAAwB,QAAQ,yBAAyB,QAAQ,CAAC,GAAG,OAAO;AAC9E;AAEA,SAAgB,KAAK,QAAuB,SAA4C;CACtF,kBAAwB,QAAQ,yBAAyB,MAAM,CAAC,GAAG,OAAO;AAC5E;AAEA,SAAgB,UACd,QACA,QACA,SACM;CACN,kBAAwB,QAAQ,yBAAyB,WAAW,EAAE,QAAQ,OAAO,GAAG,OAAO;AACjG;AAEA,SAAgB,UAAU,QAAuB,SAA8C;CAC7F,OAAO,kBAA0B,QAAQ,yBAAyB,WAAW,CAAC,GAAG,OAAO;AAC1F;AAEA,SAAgB,QACd,QACA,QACA,SACM;CACN,kBAAwB,QAAQ,yBAAyB,SAAS,EAAE,QAAQ,OAAO,GAAG,OAAO;AAC/F;AAEA,SAAgB,QAAQ,QAAuB,SAA+C;CAC5F,OAAO,kBAA2B,QAAQ,yBAAyB,SAAS,CAAC,GAAG,OAAO;AACzF;AAEA,SAAgB,cAAc,QAAuB,SAA4C;CAC/F,kBAAwB,QAAQ,yBAAyB,UAAU,CAAC,GAAG,OAAO;AAChF;AAEA,SAAgB,eAAe,QAAuB,SAA4C;CAChG,kBAAwB,QAAQ,yBAAyB,WAAW,CAAC,GAAG,OAAO;AACjF"}