{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-female-war-fire-in-the-hole",
  "type": "registry:block",
  "title": "Voiceover Pack Female War Fire In The Hole",
  "author": "Kenney <https://kenney.nl>",
  "description": "A female voice warns \"Fire in the hole!\", perfect for indicating a thrown explosive or a dangerous area in a combat game.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-female-war-fire-in-the-hole/voiceover-pack-female-war-fire-in-the-hole.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackFemaleWarFireInTheHoleSound: SoundAsset = {\n  name: \"voiceover-pack-female-war-fire-in-the-hole\",\n  dataUri: \"data:audio/mpeg;base64,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VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVV//tSxOuCC8R7Kaw8yEF6L6Qg8wlgVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVX/+1LE6wIKtX0Yp4xRwWsFVYiUmClVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVQ==\",\n  duration: 1.009,\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": 1.009,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "female",
      "war",
      "fire",
      "in",
      "the",
      "hole"
    ],
    "keywords": [
      "voiceover",
      "female",
      "war",
      "fire in the hole",
      "explosive",
      "grenade",
      "warning",
      "danger",
      "tactical",
      "alert",
      "combat",
      "game",
      "instruction",
      "military",
      "action",
      "urgent",
      "blast",
      "threat",
      "projectile",
      "command",
      "hazard"
    ]
  },
  "categories": [
    "voiceover"
  ]
}