{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-female-war-call-for-backup",
  "type": "registry:block",
  "title": "Voiceover Pack Female War Call For Backup",
  "author": "Kenney <https://kenney.nl>",
  "description": "A female voice urgently says \"Call for backup\", ideal for a strategic request for assistance in a military-themed game.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-female-war-call-for-backup/voiceover-pack-female-war-call-for-backup.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackFemaleWarCallForBackupSound: SoundAsset = {\n  name: \"voiceover-pack-female-war-call-for-backup\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.873,\n  format: \"mp3\",\n  license: \"CC0\",\n  author: \"Kenney\",\n};\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-types.ts",
      "content": "export interface SoundAsset {\r\n  /** Unique identifier for the sound */\r\n  name: string;\r\n  /** Base64-encoded data URI (data:audio/mpeg;base64,...) */\r\n  dataUri: string;\r\n  /** Duration in seconds */\r\n  duration: number;\r\n  /** Audio format */\r\n  format: \"mp3\" | \"wav\" | \"ogg\";\r\n  /** License identifier */\r\n  license: \"CC0\" | \"OGA-BY\" | \"MIT\";\r\n  /** Original author/creator */\r\n  author: string;\r\n}\r\n\r\nexport interface UseSoundOptions {\r\n  /** Volume level from 0 to 1. Default: 1 */\r\n  volume?: number;\r\n  /** Playback speed multiplier. Default: 1 */\r\n  playbackRate?: number;\r\n  /** If true, calling play() stops current playback first. Default: false */\r\n  interrupt?: boolean;\r\n  /** If false, play() does nothing. Useful for user preferences. Default: true */\r\n  soundEnabled?: boolean;\r\n  /** Called when playback starts */\r\n  onPlay?: () => void;\r\n  /** Called when playback ends naturally */\r\n  onEnd?: () => void;\r\n  /** Called when pause() is called */\r\n  onPause?: () => void;\r\n  /** Called when stop() is called */\r\n  onStop?: () => void;\r\n}\r\n\r\nexport type PlayFunction = (overrides?: {\r\n  volume?: number;\r\n  playbackRate?: number;\r\n}) => void;\r\n\r\nexport interface SoundControls {\r\n  stop: () => void;\r\n  pause: () => void;\r\n  isPlaying: boolean;\r\n  duration: number | null;\r\n  sound: SoundAsset;\r\n}\r\n\r\nexport type UseSoundReturn = readonly [PlayFunction, SoundControls];\r\n",
      "type": "registry:lib"
    },
    {
      "path": "registry/soundcn/lib/sound-engine.ts",
      "content": "let audioContext: AudioContext | null = null;\nconst bufferCache = new Map<string, AudioBuffer>();\n\nexport function getAudioContext(): AudioContext {\n  if (!audioContext) {\n    audioContext = new AudioContext();\n  }\n  return audioContext;\n}\n\nexport async function decodeAudioData(dataUri: string): Promise<AudioBuffer> {\n  const cached = bufferCache.get(dataUri);\n  if (cached) return cached;\n\n  const ctx = getAudioContext();\n  const base64 = dataUri.split(\",\")[1];\n  const binaryString = atob(base64);\n  const bytes = new Uint8Array(binaryString.length);\n  for (let i = 0; i < binaryString.length; i++) {\n    bytes[i] = binaryString.charCodeAt(i);\n  }\n\n  const audioBuffer = await ctx.decodeAudioData(bytes.buffer.slice(0));\n  bufferCache.set(dataUri, audioBuffer);\n  return audioBuffer;\n}\n\nexport interface PlaySoundOptions {\n  volume?: number;\n  playbackRate?: number;\n  onEnd?: () => void;\n}\n\nexport interface SoundPlayback {\n  stop: () => void;\n}\n\nexport async function playSound(\n  dataUri: string,\n  options: PlaySoundOptions = {}\n): Promise<SoundPlayback> {\n  const { volume = 1, playbackRate = 1, onEnd } = options;\n  const ctx = getAudioContext();\n  if (ctx.state === \"suspended\") {\n    await ctx.resume();\n  }\n\n  const buffer = await decodeAudioData(dataUri);\n  const source = ctx.createBufferSource();\n  const gain = ctx.createGain();\n\n  source.buffer = buffer;\n  source.playbackRate.value = playbackRate;\n  gain.gain.value = volume;\n\n  source.connect(gain);\n  gain.connect(ctx.destination);\n\n  source.onended = () => {\n    onEnd?.();\n  };\n\n  source.start(0);\n\n  return {\n    stop: () => {\n      try {\n        source.stop();\n      } catch {\n        // No-op if already stopped.\n      }\n    },\n  };\n}\n",
      "type": "registry:lib"
    }
  ],
  "meta": {
    "duration": 0.873,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "female",
      "war",
      "call",
      "for",
      "backup"
    ],
    "keywords": [
      "voiceover",
      "female",
      "war",
      "call for backup",
      "assistance",
      "help",
      "support",
      "urgent",
      "military",
      "strategy",
      "command",
      "game",
      "battlefield",
      "alert",
      "request",
      "defensive",
      "crisis",
      "team",
      "reinforcement",
      "tactical",
      "critical"
    ]
  },
  "categories": [
    "voiceover"
  ]
}