{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "night-elf-female-incoming-01",
  "type": "registry:block",
  "title": "Night Elf Female Incoming 01",
  "author": "Kenney <https://kenney.nl>",
  "description": "Night Elf Female Incoming 01 sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/night-elf-female-incoming-01/night-elf-female-incoming-01.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const nightElfFemaleIncoming01Sound: SoundAsset = {\n  name: \"night-elf-female-incoming-01\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.674,\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.674,
    "format": "mp3",
    "sizeKb": 6,
    "license": "CC0",
    "tags": [
      "night",
      "elf",
      "female",
      "incoming",
      "01"
    ]
  },
  "categories": [
    "warcraft",
    "voice"
  ]
}