decord/source/modules/voice_messages/native/VoiceMessageUtils.tsx
2026-07-21 22:01:30 +00:00

113 lines
4.7 KiB
TypeScript

// Module ID: 11351
// Function ID: 88281
// Name: generateBase64EncodedWaveform
// Dependencies: []
// Exports: emitVoiceMessageRecorded, endAudioRecording, startAudioRecording, triggerHaptic
// Module 11351 (generateBase64EncodedWaveform)
function generateBase64EncodedWaveform(waveform) {
let arr = waveform;
if (waveform.length > closure_16) {
arr = importDefault(dependencyMap[6])(waveform, tmp);
}
const mapped = arr.map((arg0) => Math.min(arg0, closure_13));
const uint8Array = new Uint8Array(mapped);
return importDefault(dependencyMap[7]).fromByteArray(uint8Array);
}
function _startAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
const _startAudioRecording = obj;
return obj(...arguments);
}
function resetAudioRecording() {
const mediaEngine = mediaEngine.getMediaEngine();
mediaEngine.removeListener(arg1(dependencyMap[9]).MediaEngineEvent.VoiceActivity, closure_21);
callback3();
}
function stopAndGetAudioRecording() {
callback4(null);
callback5(null);
const waveform = store.getState().waveform;
let closure_0 = generateBase64EncodedWaveform(waveform.map((arg0) => {
let tmp;
[tmp] = arg0;
return tmp;
}));
return new Promise((arg0) => {
let closure_0 = arg0;
const mediaEngine = mediaEngine.getMediaEngine();
const result = mediaEngine.stopLocalAudioRecording((filename) => {
filename({ filename, durationSecs: arg1 / 1000, waveform: filename });
});
});
}
function _endAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
const _endAudioRecording = obj;
return obj(...arguments);
}
function stopAndCacheAudioRecording() {
return _stopAndCacheAudioRecording(...arguments);
}
function _stopAndCacheAudioRecording() {
// CreateGeneratorClosureLongIndex (0x67)
const obj = callback(tmp);
const _stopAndCacheAudioRecording = obj;
return obj(...arguments);
}
let closure_3 = importDefault(dependencyMap[0]);
let closure_4 = importDefault(dependencyMap[1]);
({ addVoiceMessageWave: closure_5, resetVoiceMessageState: closure_6, setSavedVoiceMessageUploadData: closure_7, setVoiceMessageRecordingId: closure_8, setVoiceMessageRecordingState: closure_9, setVoiceMessageStartTimeMillis: closure_10, useVoiceMessagesUIStore: closure_11, VoiceMessageRecordingStatus: closure_12 } = arg1(dependencyMap[2]));
const tmp2 = arg1(dependencyMap[2]);
({ WAVEFORM_WAVE_MAX_VALUE: closure_13, VOICE_RECORDING_MIN_DB: closure_14, VOICE_RECORDING_MAX_DB: closure_15, WAVEFORM_MAX_SAMPLES: closure_16, VOICE_RECORDING_MAX_DURATION_MILLIS: closure_17 } = arg1(dependencyMap[3]));
const AnalyticEvents = arg1(dependencyMap[4]).AnalyticEvents;
let closure_19 = null;
let importDefaultResult = importDefault(dependencyMap[5]);
importDefaultResult = new importDefaultResult("VoiceMessages");
const tmp3 = arg1(dependencyMap[3]);
let closure_21 = importDefault(dependencyMap[8]).throttle((arg0) => {
const state = store.getState();
if (null != state.startTimeMillis) {
callback2(closure_13 * ((arg0 - closure_14) / (closure_15 - closure_14)));
let tmp8 = null == state.savedVoiceMessageUploadData;
if (tmp8) {
const _performance = performance;
tmp8 = performance.now() - state.startTimeMillis >= closure_17;
}
if (tmp8) {
stopAndCacheAudioRecording();
}
}
}, 100);
const importDefaultResult1 = importDefault(dependencyMap[8]);
const result = arg1(dependencyMap[13]).fileFinishedImporting("modules/voice_messages/native/VoiceMessageUtils.tsx");
export { generateBase64EncodedWaveform };
export const startAudioRecording = function startAudioRecording(nowResult) {
return _startAudioRecording(...arguments);
};
export const endAudioRecording = function endAudioRecording() {
return _endAudioRecording(...arguments);
};
export { stopAndCacheAudioRecording };
export const emitVoiceMessageRecorded = function emitVoiceMessageRecorded(CANCELLED_DURATION, durationSecs, startTimeMillis) {
if (null != startTimeMillis) {
let obj = importDefault(dependencyMap[10]);
obj = { recording_start_timestamp: startTimeMillis };
const _Date = Date;
obj.recording_stop_timestamp = Date.now();
obj.duration_secs = durationSecs;
obj.result = CANCELLED_DURATION;
obj.initialize_secs = closure_19;
obj.track(AnalyticEvents.VOICE_MESSAGE_RECORDED, obj);
closure_19 = null;
}
};
export const triggerHaptic = function triggerHaptic() {
const obj = arg1(dependencyMap[11]);
const obj2 = arg1(dependencyMap[12]);
const HapticFeedbackTypes = arg1(dependencyMap[11]).HapticFeedbackTypes;
const result = obj.triggerHapticFeedback(arg1(dependencyMap[12]).isAndroid() ? HapticFeedbackTypes.IMPACT_LIGHT : HapticFeedbackTypes.IMPACT_MEDIUM);
};