{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-female-war-watch-my-back",
  "type": "registry:block",
  "title": "Voiceover Pack Female War Watch My Back",
  "author": "Kenney <https://kenney.nl>",
  "description": "A female voice requests \"Watch my back\", ideal for asking for protective cover from teammates in a combat game.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-female-war-watch-my-back/voiceover-pack-female-war-watch-my-back.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackFemaleWarWatchMyBackSound: SoundAsset = {\n  name: \"voiceover-pack-female-war-watch-my-back\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.876,\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.876,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "female",
      "war",
      "watch",
      "my",
      "back"
    ],
    "keywords": [
      "voiceover",
      "female",
      "war",
      "watch my back",
      "cover me",
      "protect",
      "support",
      "tactical",
      "command",
      "urgent",
      "military",
      "game",
      "battlefield",
      "request",
      "defensive",
      "assistance",
      "team",
      "action",
      "instruction",
      "combat",
      "critical"
    ]
  },
  "categories": [
    "voiceover"
  ]
}