{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "mining-hit-e",
  "type": "registry:block",
  "title": "Mining Hit E",
  "author": "Kenney <https://kenney.nl>",
  "description": "Mining Hit E sound effect.",
  "files": [
    {
      "path": "registry/soundcn/sounds/mining-hit-e/mining-hit-e.ts",
      "content": "import type { SoundAsset } from \"@/lib/sound-types\";\n\nexport const miningHitESound: SoundAsset = {\n  name: \"mining-hit-e\",\n  dataUri: \"data:audio/mpeg;base64,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\",\n  duration: 0.868,\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.868,
    "format": "mp3",
    "sizeKb": 7,
    "license": "CC0",
    "tags": [
      "mining",
      "hit",
      "e"
    ]
  },
  "categories": [
    "warcraft",
    "crafting"
  ]
}