diff --git a/CHANGELOG.md b/CHANGELOG.md index de91de8c..a30dea05 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,12 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [1.12.4] + +### Fixed + +- VRChat microphone mute automations blocking keyboard- and controller bindings from toggling the microphone mute state. + ## [1.12.3] ### Added diff --git a/package.json b/package.json index 773d9a74..0047cae7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "oyasumi", - "version": "1.12.3", + "version": "1.12.4", "author": "Raphiiko", "license": "MIT", "type": "module", diff --git a/src-core/Cargo.lock b/src-core/Cargo.lock index 03c8876c..092333cf 100644 --- a/src-core/Cargo.lock +++ b/src-core/Cargo.lock @@ -3618,7 +3618,7 @@ dependencies = [ [[package]] name = "oyasumivr" -version = "1.12.3" +version = "1.12.4" dependencies = [ "async-recursion", "bluest", @@ -3687,7 +3687,7 @@ dependencies = [ [[package]] name = "oyasumivr-shared" -version = "1.12.3" +version = "1.12.4" dependencies = [ "winapi", ] diff --git a/src-core/Cargo.toml b/src-core/Cargo.toml index 92327f6c..fcf7dc71 100644 --- a/src-core/Cargo.toml +++ b/src-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oyasumivr" -version = "1.12.3" +version = "1.12.4" description = "" authors = ["Raphiiko"] license = "MIT" diff --git a/src-core/src/main.rs b/src-core/src/main.rs index 37231d77..f851cb48 100644 --- a/src-core/src/main.rs +++ b/src-core/src/main.rs @@ -40,6 +40,7 @@ use log::{info, warn, LevelFilter}; use oyasumivr_shared::windows::is_elevated; use serde_json::json; use tauri::{plugin::TauriPlugin, AppHandle, Manager, Wry}; +use tauri_plugin_aptabase::EventTracker; use tauri_plugin_log::{LogTarget, RotationStrategy}; fn main() { @@ -71,10 +72,17 @@ fn main() { .system_tray(system_tray::init_system_tray()) .on_system_tray_event(system_tray::handle_system_tray_events()) .on_window_event(system_tray::handle_window_events()) - .invoke_handler(configure_command_handlers()); - // Run Oyasumi - app.run(tauri::generate_context!()) + .invoke_handler(configure_command_handlers()) + .build(tauri::generate_context!()) .expect("An error occurred while running the application"); + // Run OyasumiVR + app.run(|handler, event| match event { + tauri::RunEvent::Exit { .. } => { + handler.track_event("app_exited", None); + handler.flush_events_blocking(); + } + _ => {} + }) } async fn load_configs() { diff --git a/src-core/tauri.conf.json b/src-core/tauri.conf.json index 297da074..07b3055a 100644 --- a/src-core/tauri.conf.json +++ b/src-core/tauri.conf.json @@ -9,7 +9,7 @@ }, "package": { "productName": "OyasumiVR", - "version": "1.12.3" + "version": "1.12.4" }, "tauri": { "allowlist": { @@ -188,7 +188,7 @@ "center": true, "theme": "Dark", "transparent": true, - "userAgent": "OyasumiVR/1.12.3 (https://github.com/Raphiiko/OyasumiVR)" + "userAgent": "OyasumiVR/1.12.4 (https://github.com/Raphiiko/OyasumiVR)" }, { "width": 700, @@ -200,7 +200,7 @@ "center": true, "theme": "Dark", "transparent": true, - "userAgent": "OyasumiVR/1.12.3 (https://github.com/Raphiiko/OyasumiVR)" + "userAgent": "OyasumiVR/1.12.4 (https://github.com/Raphiiko/OyasumiVR)" } ] } diff --git a/src-elevated-sidecar/Cargo.toml b/src-elevated-sidecar/Cargo.toml index c5d957d9..6a6df0fe 100644 --- a/src-elevated-sidecar/Cargo.toml +++ b/src-elevated-sidecar/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oyasumivr-elevated-sidecar" -version = "1.12.3" +version = "1.12.4" authors = ["Raphiiko"] license = "MIT" edition = "2021" diff --git a/src-overlay-ui/package.json b/src-overlay-ui/package.json index 11567c6e..9eab0953 100644 --- a/src-overlay-ui/package.json +++ b/src-overlay-ui/package.json @@ -1,6 +1,6 @@ { "name": "oyasumivr-overlay-ui", - "version": "1.12.3", + "version": "1.12.4", "private": true, "scripts": { "dev": "vite dev", diff --git a/src-shared-rust/Cargo.toml b/src-shared-rust/Cargo.toml index d67b9367..e1b87064 100644 --- a/src-shared-rust/Cargo.toml +++ b/src-shared-rust/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "oyasumivr-shared" -version = "1.12.3" +version = "1.12.4" authors = ["Raphiiko"] edition = "2021" license = "MIT" diff --git a/src-shared-ts/package.json b/src-shared-ts/package.json index 5a18b257..cf78c1e4 100644 --- a/src-shared-ts/package.json +++ b/src-shared-ts/package.json @@ -2,7 +2,7 @@ "name": "src-shared-ts", "description": "Shared typescript code for Oyasumi modules", "scripts": {}, - "version": "1.12.3", + "version": "1.12.4", "author": "Raphiiko", "license": "MIT", "type": "module", diff --git a/src-ui/app/components/developer-debug-modal/misc-testing/misc-testing.component.html b/src-ui/app/components/developer-debug-modal/misc-testing/misc-testing.component.html index 3d6ae0bf..8437a989 100644 --- a/src-ui/app/components/developer-debug-modal/misc-testing/misc-testing.component.html +++ b/src-ui/app/components/developer-debug-modal/misc-testing/misc-testing.component.html @@ -1,7 +1,7 @@

Navigation

Actions

@@ -11,10 +11,10 @@

Actions

Notification Sounds

@@ -22,11 +22,6 @@

Notification Sounds

VRChat microphone muting

Muted: {{ automation.muted | async }}

-

Mode: {{ automation.mode | async }}

- - diff --git a/src-ui/app/components/event-log-entry/entry-parsers/bsb-led-changed.ts b/src-ui/app/components/event-log-entry/entry-parsers/bsb-led-changed.ts index 24ad943e..ba09df3a 100644 --- a/src-ui/app/components/event-log-entry/entry-parsers/bsb-led-changed.ts +++ b/src-ui/app/components/event-log-entry/entry-parsers/bsb-led-changed.ts @@ -6,7 +6,7 @@ export class EventLogBSBLedChangedEntryParser extends EventLogEntryParser any } = { 11: from10to11, 12: from11to12, 13: from12to13, + 14: from13to14, }; export function migrateAutomationConfigs(data: any): AutomationConfigs { @@ -52,6 +53,12 @@ function resetToLatest(data: any): any { return data; } +function from13to14(data: any): any { + data.version = 14; + delete data['VRCHAT_MIC_MUTE_AUTOMATIONS'].mode; + return data; +} + function from12to13(data: any): any { data.version = 13; [ diff --git a/src-ui/app/models/automations.ts b/src-ui/app/models/automations.ts index 3fbfdfea..bd7453a3 100644 --- a/src-ui/app/models/automations.ts +++ b/src-ui/app/models/automations.ts @@ -54,7 +54,7 @@ export type AutomationType = | 'BIGSCREEN_BEYOND_RGB_CONTROL'; export interface AutomationConfigs { - version: 13; + version: 14; GPU_POWER_LIMITS: GPUPowerLimitsAutomationConfig; MSI_AFTERBURNER: MSIAfterburnerAutomationConfig; // SLEEP MODE AUTOMATIONS @@ -241,11 +241,10 @@ export interface SleepingAnimationsAutomationConfig extends AutomationConfig { footLockReleaseWindow: number; } -export type VRChatVoiceMode = 'TOGGLE' | 'PUSH_TO_MUTE'; +export type VRChatVoiceMode = 'TOGGLE' | 'PUSH_TO_TALK'; export type VRChatMicMuteStateOption = 'MUTE' | 'UNMUTE' | 'NONE'; export interface VRChatMicMuteAutomationsConfig extends AutomationConfig { - mode: VRChatVoiceMode; onSleepModeEnable: VRChatMicMuteStateOption; onSleepModeDisable: VRChatMicMuteStateOption; onSleepPreparation: VRChatMicMuteStateOption; @@ -379,7 +378,7 @@ export interface BigscreenBeyondRgbControlAutomationsConfig extends AutomationCo // export const AUTOMATION_CONFIGS_DEFAULT: AutomationConfigs = { - version: 13, + version: 14, // BRIGHTNESS AUTOMATIONS BRIGHTNESS_CONTROL_ADVANCED_MODE: { enabled: false, @@ -535,7 +534,6 @@ export const AUTOMATION_CONFIGS_DEFAULT: AutomationConfigs = { }, VRCHAT_MIC_MUTE_AUTOMATIONS: { enabled: true, - mode: 'TOGGLE', onSleepModeEnable: 'NONE', onSleepModeDisable: 'NONE', onSleepPreparation: 'NONE', diff --git a/src-ui/app/services/brightness-control/hardware-brightness-control.service.ts b/src-ui/app/services/brightness-control/hardware-brightness-control.service.ts index 66630f79..b0658f43 100644 --- a/src-ui/app/services/brightness-control/hardware-brightness-control.service.ts +++ b/src-ui/app/services/brightness-control/hardware-brightness-control.service.ts @@ -56,7 +56,7 @@ export class HardwareBrightnessControlService { public readonly brightnessStream: Observable = this._brightness.asObservable(); constructor( - private openvr: OpenVRService, + openvr: OpenVRService, private appSettingsService: AppSettingsService // private bsbFanAutomationService: BigscreenBeyondFanAutomationService ) { this.driverValveIndex = new ValveIndexHardwareBrightnessControlDriver( diff --git a/src-ui/app/services/brightness-control/simple-brightness-control.service.ts b/src-ui/app/services/brightness-control/simple-brightness-control.service.ts index ae94052d..7299f271 100644 --- a/src-ui/app/services/brightness-control/simple-brightness-control.service.ts +++ b/src-ui/app/services/brightness-control/simple-brightness-control.service.ts @@ -68,10 +68,10 @@ export class SimpleBrightnessControlService { // Set brightness when the hardware brightness driver availability changes this.hardwareBrightnessControl.driverIsAvailable .pipe( - skip(1), - distinctUntilChanged(), tap((available) => (this.hardwareBrightnessDriverAvailable = available)), - filter(() => !this._advancedMode.value) + filter(() => !this._advancedMode.value), + skip(1), + distinctUntilChanged() ) .subscribe(() => { this.setBrightness(this.brightness, { diff --git a/src-ui/app/services/osc-automations/vrchat-mic-mute-automation.service.ts b/src-ui/app/services/osc-automations/vrchat-mic-mute-automation.service.ts index d10186c8..1f477f92 100644 --- a/src-ui/app/services/osc-automations/vrchat-mic-mute-automation.service.ts +++ b/src-ui/app/services/osc-automations/vrchat-mic-mute-automation.service.ts @@ -2,7 +2,6 @@ import { Injectable } from '@angular/core'; import { OscService } from '../osc.service'; import { BehaviorSubject, - debounceTime, delay, filter, firstValueFrom, @@ -17,7 +16,6 @@ import { AutomationConfigService } from '../automation-config.service'; import { AUTOMATION_CONFIGS_DEFAULT, VRChatMicMuteAutomationsConfig, - VRChatVoiceMode, } from '../../models/automations'; import { cloneDeep, isArray } from 'lodash'; import { SleepService } from '../sleep.service'; @@ -36,10 +34,6 @@ const WRITE_ADDR = '/input/Voice'; export class VRChatMicMuteAutomationService { private _muted = new BehaviorSubject(null); public muted = this._muted.asObservable(); - private _mode = new BehaviorSubject( - AUTOMATION_CONFIGS_DEFAULT.VRCHAT_MIC_MUTE_AUTOMATIONS.mode - ); - public mode = this._mode.asObservable(); private config: VRChatMicMuteAutomationsConfig = cloneDeep( AUTOMATION_CONFIGS_DEFAULT.VRCHAT_MIC_MUTE_AUTOMATIONS ); @@ -58,7 +52,6 @@ export class VRChatMicMuteAutomationService { this.automationConfigs.configs.subscribe((configs) => { this.config = configs.VRCHAT_MIC_MUTE_AUTOMATIONS; - this._mode.next(this.config.mode); }); // Listen for the muted state this.osc.messages.subscribe((message) => { @@ -131,53 +124,28 @@ export class VRChatMicMuteAutomationService { }); // In case the muted state is not known (This happens when OyasumiVR is launched after VRChat is already active) // We poll the muted state through OSCQuery every 3 seconds, until it is known. - merge(interval(3000), this._mode.pipe(skip(1))) + merge(interval(3000)) .pipe( - debounceTime(100), filter(() => this._muted.value === null), switchMap(() => this.fetchMutedState()) ) .subscribe(); } - async setMode(mode: VRChatVoiceMode) { - await this.automationConfigs.updateAutomationConfig( - 'VRCHAT_MIC_MUTE_AUTOMATIONS', - { - mode, - } - ); - } - async toggleMute(ensureStateKnown = true) { if (ensureStateKnown && !(await this.fetchMutedState())) return; - switch (this._mode.value) { - case 'TOGGLE': - await this.osc.send_int(WRITE_ADDR, 0); - await firstValueFrom(of(null).pipe(delay(150))); - await this.osc.send_int(WRITE_ADDR, 1); - await firstValueFrom(of(null).pipe(delay(150))); - break; - case 'PUSH_TO_MUTE': - await this.osc.send_int(WRITE_ADDR, this._muted.value ? 0 : 1); - await firstValueFrom(of(null).pipe(delay(150))); - break; - } + await this.osc.send_int(WRITE_ADDR, 0); + await firstValueFrom(of(null).pipe(delay(150))); + await this.osc.send_int(WRITE_ADDR, 1); + await firstValueFrom(of(null).pipe(delay(150))); + await this.osc.send_int(WRITE_ADDR, 0); + await firstValueFrom(of(null).pipe(delay(150))); } async setMute(state: boolean) { - switch (this._mode.value) { - case 'TOGGLE': - if (this._muted.value !== state) { - if (this._muted.value !== null) this._muted.next(state); - await this.toggleMute(false); - } - break; - case 'PUSH_TO_MUTE': - if (this._muted.value !== null) this._muted.next(state); - await this.osc.send_int(WRITE_ADDR, state ? 0 : 1); - await firstValueFrom(of(null).pipe(delay(150))); - break; + if (this._muted.value !== state) { + if (this._muted.value !== null) this._muted.next(state); + await this.toggleMute(false); } } diff --git a/src-ui/app/services/telemetry.service.ts b/src-ui/app/services/telemetry.service.ts index 26566858..270c8a2c 100644 --- a/src-ui/app/services/telemetry.service.ts +++ b/src-ui/app/services/telemetry.service.ts @@ -12,9 +12,7 @@ import { } from 'rxjs'; import { TELEMETRY_SETTINGS_DEFAULT, TelemetrySettings } from '../models/telemetry-settings'; import { migrateTelemetrySettings } from '../migrations/telemetry-settings.migrations'; -import { HttpClient } from '@angular/common/http'; import { cloneDeep } from 'lodash'; -import { AppSettingsService } from './app-settings.service'; import { invoke } from '@tauri-apps/api'; import { trackEvent } from '@aptabase/tauri'; @@ -28,7 +26,7 @@ export class TelemetryService { ); public settings: Observable = this._settings.asObservable(); - constructor(private http: HttpClient, private appSettings: AppSettingsService) {} + constructor() {} async init() { await this.loadSettings(); diff --git a/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.html b/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.html index 5d44d0c8..c23ee035 100644 --- a/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.html +++ b/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.html @@ -5,21 +5,6 @@

vrchatMicMuteAutomations.description

vrchatMicMuteAutomations.config.title

-
-
- vrchatMicMuteAutomations.mode.title - vrchatMicMuteAutomations.mode.description -
-
- -
-
vrchatMicMuteAutomations.status.title diff --git a/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.ts b/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.ts index 9c8dc2d8..58b6d4bd 100644 --- a/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.ts +++ b/src-ui/app/views/dashboard-view/views/vrchat-mic-mute-automations-view/vrchat-mic-mute-automations-view.component.ts @@ -1,7 +1,7 @@ import { Component, DestroyRef, OnInit } from '@angular/core'; import { SelectBoxItem } from '../../../../components/select-box/select-box.component'; import { AutomationConfigService } from '../../../../services/automation-config.service'; -import { VRChatMicMuteAutomationsConfig, VRChatVoiceMode } from '../../../../models/automations'; +import { VRChatMicMuteAutomationsConfig } from '../../../../models/automations'; import { map } from 'rxjs'; import { takeUntilDestroyed } from '@angular/core/rxjs-interop'; import { DomSanitizer } from '@angular/platform-browser'; @@ -15,17 +15,6 @@ import { hshrink } from 'src-ui/app/utils/animations'; animations: [hshrink()], }) export class VRChatMicMuteAutomationsViewComponent implements OnInit { - modeOptions: SelectBoxItem[] = [ - { - id: 'TOGGLE', - label: 'vrchatMicMuteAutomations.modeOptions.TOGGLE', - }, - { - id: 'PUSH_TO_MUTE', - label: 'vrchatMicMuteAutomations.modeOptions.PUSH_TO_MUTE', - }, - ]; - modeOption: SelectBoxItem | undefined; muteActionOptions: SelectBoxItem[] = [ { id: 'NONE', @@ -67,7 +56,6 @@ export class VRChatMicMuteAutomationsViewComponent implements OnInit { map((configs) => configs.VRCHAT_MIC_MUTE_AUTOMATIONS) ) .subscribe((config) => { - this.modeOption = this.modeOptions.find((o) => o.id === config.mode); this.onSleepEnableMuteOption = this.muteActionOptions.find( (o) => o.id === config.onSleepModeEnable ); @@ -80,16 +68,6 @@ export class VRChatMicMuteAutomationsViewComponent implements OnInit { }); } - onChangeModeOption($event: SelectBoxItem | undefined) { - if (!$event) return; - this.automationConfigService.updateAutomationConfig( - 'VRCHAT_MIC_MUTE_AUTOMATIONS', - { - mode: $event.id as VRChatVoiceMode, - } - ); - } - async onChangeMuteOption( automation: 'ON_SLEEP_ENABLE' | 'ON_SLEEP_DISABLE' | 'ON_SLEEP_PREPARATION', option: SelectBoxItem | undefined diff --git a/src-ui/assets/i18n/cn.json b/src-ui/assets/i18n/cn.json index e74bb6e7..5e940a4e 100644 --- a/src-ui/assets/i18n/cn.json +++ b/src-ui/assets/i18n/cn.json @@ -1814,15 +1814,6 @@ "title": "麦克风状态设置", "unmute": "打开\n麦克风" }, - "description": "当你睡着时,在 VRChat 中自动关闭麦克风!(反之亦然)当你想防止别人听到你的鼾声时,这个功能就派上用场了;)\n\n注意:为了使这个功能生效,需要在 VRChat 中启用 OSC。", - "mode": { - "description": "选择你在 VRChat 中使用的麦克风行为。请注意,选择与你在 VRChat 中使用的行为不同的行为可能会导致这些自动操作出现异常。", - "title": "VRChat 麦克风行为" - }, - "modeOptions": { - "PUSH_TO_MUTE": "按住说话", - "TOGGLE": "按下切换" - }, "muteOptions": { "MUTE": "关闭", "NONE": "无", @@ -1922,4 +1913,4 @@ "description": "运行此自动化操作时,为音频设备设置的音量大小" } } -} +} \ No newline at end of file diff --git a/src-ui/assets/i18n/en.json b/src-ui/assets/i18n/en.json index ad025a9b..2f1888a1 100644 --- a/src-ui/assets/i18n/en.json +++ b/src-ui/assets/i18n/en.json @@ -1933,15 +1933,7 @@ "title": "Control microphone mute", "unmute": "Unmute\nmicrophone" }, - "description": "Automatically mute or unmute your microphone in VRChat when you fall asleep, or wake up! This can come in useful when you want to prevent others from hearing your snoring ;)\n\nNote that in order for this to work, it requires OSC to be enabled within VRChat.", - "mode": { - "description": "Select which mic behaviour you're using within VRChat. Note that selecting a different behaviour than the one you're using in VRChat could cause these automations to misbehave.", - "title": "VRChat microphone behaviour" - }, - "modeOptions": { - "PUSH_TO_MUTE": "Push to Talk", - "TOGGLE": "Toggle" - }, + "description": "Automatically mute or unmute your microphone in VRChat when you fall asleep, or wake up! This can come in useful when you want to prevent others from hearing your snoring ;)\n\nNote that in order for this to work, it requires OSC to be enabled within VRChat, and for your microphone behaviour to be set to \"Toggle\".", "muteOptions": { "MUTE": "Mute", "NONE": "None", diff --git a/src-ui/assets/i18n/es.json b/src-ui/assets/i18n/es.json index ffe6a9ed..0af9fba2 100644 --- a/src-ui/assets/i18n/es.json +++ b/src-ui/assets/i18n/es.json @@ -1994,15 +1994,6 @@ "title": "Controlar el silencio del micrófono", "unmute": "Unmute\nmicrofono" }, - "description": "Silencia o desactiva automáticamente tu micrófono en VRChat cuando te duermas o te despiertes. Esto puede ser útil cuando quieres evitar que otros oigan tus ronquidos ;)\n\nTen en cuenta que para que esto funcione, es necesario que OSC esté activado en VRChat.", - "mode": { - "description": "Selecciona el comportamiento de micrófono que utilizas en VRChat. Ten en cuenta que si seleccionas un comportamiento diferente al que utilizas en VRChat, estas automatizaciones podrían no funcionar correctamente.", - "title": "Comportamiento del micrófono VRChat" - }, - "modeOptions": { - "PUSH_TO_MUTE": "Pulsar para hablar", - "TOGGLE": "Toggle" - }, "muteOptions": { "MUTE": "Mute", "NONE": "None", diff --git a/src-ui/assets/i18n/fr.json b/src-ui/assets/i18n/fr.json index bd061c53..4256e081 100644 --- a/src-ui/assets/i18n/fr.json +++ b/src-ui/assets/i18n/fr.json @@ -896,4 +896,4 @@ "unknown": "Inconnu" } } -} +} \ No newline at end of file diff --git a/src-ui/assets/i18n/id.json b/src-ui/assets/i18n/id.json index 967147e1..809081bd 100644 --- a/src-ui/assets/i18n/id.json +++ b/src-ui/assets/i18n/id.json @@ -1621,15 +1621,6 @@ "title": "Kontrol mikrofon senyap", "unmute": "Bunyikan\nmikropon" }, - "description": "Secara otomatis menonaktifkan atau mengaktifkan mikrofon Anda di VRChat saat Anda tertidur, atau bangun! Ini bisa berguna ketika Anda ingin mencegah orang lain mendengar dengkuran Anda ;)\n\nPerhatikan bahwa agar ini berfungsi, OSC harus diaktifkan dalam VRChat.", - "mode": { - "description": "Pilih perilaku mikrofon yang Anda gunakan dalam VRChat. Perhatikan bahwa memilih perilaku yang berbeda dari yang Anda gunakan di VRChat dapat menyebabkan otomatisasi ini berperilaku buruk.", - "title": "Perilaku mikrofon VRChat" - }, - "modeOptions": { - "PUSH_TO_MUTE": "Push to Talk", - "TOGGLE": "Toggle" - }, "muteOptions": { "MUTE": "Mute", "NONE": "kosong", @@ -1655,4 +1646,4 @@ "unmuted": "Dibunyikan" } } -} +} \ No newline at end of file diff --git a/src-ui/assets/i18n/ja.json b/src-ui/assets/i18n/ja.json index d26ff726..9e89c59e 100644 --- a/src-ui/assets/i18n/ja.json +++ b/src-ui/assets/i18n/ja.json @@ -1899,15 +1899,6 @@ "title": "マイクミュートの制御", "unmute": "ミュート解除" }, - "description": "VRChatのマイクのミュートを切り替えられます。他の人にいびきを聞かせたくない場合などに便利です。 \n\nこれを動作させるには、VRChat内でOSCが有効になっている必要があります。", - "mode": { - "description": "マイク動作を選択します。VRChatで使用しているものと異なる動作を選択すると、誤作動の原因となります", - "title": "VRChatのマイク動作" - }, - "modeOptions": { - "PUSH_TO_MUTE": "プッシュトーク", - "TOGGLE": "トグル" - }, "muteOptions": { "MUTE": "ミュート", "NONE": "変更しない", @@ -2057,4 +2048,4 @@ } } } -} +} \ No newline at end of file diff --git a/src-ui/assets/i18n/ko.json b/src-ui/assets/i18n/ko.json index bb2c1be5..182cf374 100644 --- a/src-ui/assets/i18n/ko.json +++ b/src-ui/assets/i18n/ko.json @@ -2022,15 +2022,6 @@ "title": "마이크 음소거 제어", "unmute": "마이크\n음소거 해제" }, - "description": "잠들거나 깨어날 때 VRChat에서 자동으로 마이크를 음소거하거나 음소거 해제할 수 있어요! 다른 사람에게 코 고는 소리가 들리지 않도록 하고 싶을 때 유용하게 사용할 수 있습니다 ;)\n\n이 기능을 사용하려면 VRChat 내에서 OSC가 활성화되어 있어야 한다는 점에 유의하세요.", - "mode": { - "description": "VRChat 내에서 사용 중인 마이크 동작 방식을 선택해주세요. VRChat에서 사용 중인 동작 방식과 다른 방식을 선택하면 이러한 자동화가 오작동할 수 있다는 점에 유의하세요.", - "title": "VRChat 마이크 동작 방식" - }, - "modeOptions": { - "PUSH_TO_MUTE": "눌러서 말하기", - "TOGGLE": "토글" - }, "muteOptions": { "MUTE": "음소거", "NONE": "없음", diff --git a/src-ui/assets/i18n/nl.json b/src-ui/assets/i18n/nl.json index bec2a669..75d50416 100644 --- a/src-ui/assets/i18n/nl.json +++ b/src-ui/assets/i18n/nl.json @@ -2067,15 +2067,6 @@ "title": "Regel microfoon demping", "unmute": "Microfoon niet dempen" }, - "description": "Demp je microfoon automatisch in VRChat wanneer je in slaap valt, of wakker wordt! Dit kan handig zijn als je wilt voorkomen dat anderen je horen snurken ;)\n\nLet op dat om dit te kunnen gebruiken, je OSC ingeschakeld moet hebben in VRChat.", - "mode": { - "description": "Selecteer welke microfoon modus je gebruikt in VRChat. Als je hier iets anders selecteerd dan wat je in VRChat gebruikt, dan kunnen deze automatiseringen een ongewenst effect hebben.", - "title": "VRChat Microfoon Modus" - }, - "modeOptions": { - "PUSH_TO_MUTE": "Push to Talk", - "TOGGLE": "Toggle" - }, "muteOptions": { "MUTE": "Dempen", "NONE": "Geen", diff --git a/src-ui/assets/i18n/ru.json b/src-ui/assets/i18n/ru.json index bddc9ee1..f5e0d535 100644 --- a/src-ui/assets/i18n/ru.json +++ b/src-ui/assets/i18n/ru.json @@ -1844,15 +1844,6 @@ "title": "Управление отключением микрофона", "unmute": "Включить\nмикрофон" }, - "description": "Автоматически отключайте или включайте микрофон в VRChat, когда вы засыпаете или просыпаетесь! Это может пригодиться, если вы хотите, чтобы другие не услышали Ваш храп ;)\n\nОбратите внимание: для того, чтобы это работало, необходимо включить OSC в VRChat.", - "mode": { - "description": "Выберите, какое поведение микрофона вы используете в VRChat. Обратите внимание, что выбор поведения, отличного от того, которое вы используете в VRChat, может привести к неправильному поведению этих средств автоматизации.", - "title": "Поведение микрофона VRChat" - }, - "modeOptions": { - "PUSH_TO_MUTE": "Говорить при нажатии", - "TOGGLE": "Переключить" - }, "muteOptions": { "MUTE": "Выкл. звук микро", "NONE": "Ничего", @@ -1878,4 +1869,4 @@ "unmuted": "Звук включен" } } -} +} \ No newline at end of file diff --git a/src-ui/assets/i18n/tw.json b/src-ui/assets/i18n/tw.json index ba9859b7..420f0f12 100644 --- a/src-ui/assets/i18n/tw.json +++ b/src-ui/assets/i18n/tw.json @@ -1994,15 +1994,6 @@ "title": "控制麥克風靜音", "unmute": "解除靜音\n麥克風" }, - "description": "當你睡著或醒來時,在 VRChat 中自動將麥克風靜音或取消靜音!當你想防止別人聽到你的打呼聲時,這就派上用場了;)\n\n請注意,要使其正常工作,需要在 VRChat 中啟用 OSC", - "mode": { - "description": "選擇你在 VRChat 中使用的麥克風行為。請注意,選擇與你在 VRChat 中使用的行為不同的行為可能會導致這些自動操作出現異常", - "title": "VRChat 麥克風行為" - }, - "modeOptions": { - "PUSH_TO_MUTE": "按鍵發話", - "TOGGLE": "切換" - }, "muteOptions": { "MUTE": "靜音", "NONE": "無", @@ -2029,4 +2020,4 @@ }, "title": "VRChat 麥克風靜音自動化" } -} +} \ No newline at end of file