{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "voiceover-pack-male-war-rpg",
  "type": "registry:block",
  "title": "Voiceover Pack Male War Rpg",
  "author": "Kenney <https://kenney.nl>",
  "description": "A male voiceover announcing \"RPG!\", perfect for warning teammates about an incoming Rocket Propelled Grenade in a combat game.",
  "files": [
    {
      "path": "registry/soundcn/sounds/voiceover-pack-male-war-rpg/voiceover-pack-male-war-rpg.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const voiceoverPackMaleWarRpgSound: SoundAsset = {\n  name: \"voiceover-pack-male-war-rpg\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.968,\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.968,
    "format": "mp3",
    "sizeKb": 8,
    "license": "CC0",
    "tags": [
      "voiceover",
      "pack",
      "male",
      "war",
      "rpg"
    ],
    "keywords": [
      "voice",
      "male",
      "war",
      "rpg",
      "warning",
      "alert",
      "combat",
      "game",
      "explosive",
      "rocket",
      "danger",
      "tactical",
      "command",
      "team",
      "action",
      "audio",
      "urgent",
      "threat",
      "military",
      "communication",
      "projectile"
    ]
  },
  "categories": [
    "voiceover"
  ]
}