{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-female-war-sniper",
  "type": "registry:block",
  "title": "Voiceover Pack Female War Sniper",
  "author": "Kenney <https://kenney.nl>",
  "description": "A female voice warns \"Sniper!\", ideal for alerting players to the presence of an enemy sniper in a combat game.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-female-war-sniper/voiceover-pack-female-war-sniper.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackFemaleWarSniperSound: SoundAsset = {\n  name: \"voiceover-pack-female-war-sniper\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.725,\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.725,
    "format": "mp3",
    "sizeKb": 6,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "female",
      "war",
      "sniper"
    ],
    "keywords": [
      "voiceover",
      "female",
      "war",
      "sniper",
      "enemy",
      "threat",
      "warning",
      "danger",
      "tactical",
      "alert",
      "combat",
      "game",
      "instruction",
      "military",
      "hidden",
      "long-range",
      "precision",
      "critical",
      "hazard",
      "ambush"
    ]
  },
  "categories": [
    "voiceover"
  ]
}