2023-01-11 22:52:01 +03:00
|
|
|
import { DefaultWorkletSetting, VoiceChangerClient, WorkletSetting } from "@dannadori/voice-changer-client-js"
|
2023-01-12 12:06:15 +03:00
|
|
|
import { useState, useMemo, useEffect } from "react"
|
2023-01-11 22:52:01 +03:00
|
|
|
|
|
|
|
export type UseWorkletSettingProps = {
|
|
|
|
voiceChangerClient: VoiceChangerClient | null
|
|
|
|
}
|
|
|
|
|
|
|
|
export type WorkletSettingState = {
|
|
|
|
setting: WorkletSetting;
|
|
|
|
setSetting: (setting: WorkletSetting) => void;
|
|
|
|
}
|
|
|
|
|
|
|
|
export const useWorkletSetting = (props: UseWorkletSettingProps): WorkletSettingState => {
|
|
|
|
const [setting, _setSetting] = useState<WorkletSetting>(DefaultWorkletSetting)
|
|
|
|
|
|
|
|
|
|
|
|
const setSetting = useMemo(() => {
|
|
|
|
return (setting: WorkletSetting) => {
|
|
|
|
if (!props.voiceChangerClient) return
|
|
|
|
props.voiceChangerClient.configureWorklet(setting)
|
|
|
|
_setSetting(setting)
|
|
|
|
}
|
|
|
|
}, [props.voiceChangerClient])
|
|
|
|
|
2023-01-12 12:06:15 +03:00
|
|
|
|
|
|
|
//////////////
|
|
|
|
// デフォルト設定
|
|
|
|
/////////////
|
|
|
|
useEffect(() => {
|
|
|
|
const params = new URLSearchParams(location.search);
|
|
|
|
const colab = params.get("colab")
|
|
|
|
if (colab == "true") {
|
|
|
|
setSetting({
|
|
|
|
numTrancateTreshold: 300,
|
|
|
|
volTrancateThreshold: 0.0005,
|
|
|
|
volTrancateLength: 32,
|
|
|
|
})
|
|
|
|
} else {
|
|
|
|
setSetting({
|
|
|
|
numTrancateTreshold: 150,
|
|
|
|
volTrancateThreshold: 0.0005,
|
|
|
|
volTrancateLength: 32,
|
|
|
|
})
|
|
|
|
}
|
|
|
|
}, [props.voiceChangerClient])
|
|
|
|
|
2023-01-11 22:52:01 +03:00
|
|
|
return {
|
|
|
|
setting,
|
|
|
|
setSetting
|
|
|
|
}
|
|
|
|
}
|