wiseguru_ReWrite-Voice-Notes/src/platform.ts

36 lines
1.1 KiB
TypeScript
Raw Normal View History

2026-05-24 20:06:29 +00:00
import { Platform } from 'obsidian';
import { ActiveProfileKind, EnvironmentProfile, GlobalSettings } from './types';
export function detectActiveProfileKind(settings: GlobalSettings): ActiveProfileKind {
switch (settings.activeProfileOverride) {
case 'desktop':
return 'desktop';
case 'mobile':
return 'mobile';
case 'auto':
default:
return Platform.isDesktop ? 'desktop' : 'mobile';
}
}
export function resolveActiveProfile(settings: GlobalSettings): {
kind: ActiveProfileKind;
profile: EnvironmentProfile;
} {
const kind = detectActiveProfileKind(settings);
const profile = kind === 'desktop' ? settings.desktopProfile : settings.mobileProfile;
return { kind, profile };
}
export function isMediaRecorderAvailable(): boolean {
return typeof MediaRecorder !== 'undefined' && typeof navigator !== 'undefined' && !!navigator.mediaDevices;
}
export function isWebSpeechAvailable(): boolean {
const w = window as unknown as {
SpeechRecognition?: unknown;
webkitSpeechRecognition?: unknown;
};
return Boolean(w.SpeechRecognition || w.webkitSpeechRecognition);
}