{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-male-war-cover-me",
  "type": "registry:block",
  "title": "Voiceover Pack Male War Cover Me",
  "author": "Kenney <https://kenney.nl>",
  "description": "A male voiceover commanding \"Cover Me!\", ideal for tactical communication in a combat game, requesting suppressive fire or protection.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-male-war-cover-me/voiceover-pack-male-war-cover-me.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackMaleWarCoverMeSound: SoundAsset = {\n  name: \"voiceover-pack-male-war-cover-me\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.602,\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.602,
    "format": "mp3",
    "sizeKb": 5,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "male",
      "war",
      "cover",
      "me"
    ],
    "keywords": [
      "voice",
      "male",
      "war",
      "cover me",
      "tactical",
      "combat",
      "game",
      "command",
      "request",
      "protection",
      "suppressive fire",
      "teammate",
      "strategic",
      "action",
      "alert",
      "audio",
      "urgent",
      "defense",
      "military",
      "coordination",
      "teamwork"
    ]
  },
  "categories": [
    "voiceover"
  ]
}