< Summary

Class:DCL.SettingsCommon.SettingsControllers.SpecificControllers.InputAudioDeviceControlController
Assembly:SettingsControllers
File(s):/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Settings/SettingsControllers/SpecificControllers/InputAudioDeviceControlController.cs
Covered lines:8
Uncovered lines:19
Coverable lines:27
Total lines:68
Line coverage:29.6% (8 of 27)
Covered branches:0
Total branches:0

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity NPath complexity Sequence coverage
Initialize()0%2.092071.43%
OnPointerClicked(...)0%6200%
DeviceNames()0%6200%
GetStoredValue()0%110100%
UpdateSetting(...)0%3.192033.33%

File(s)

/tmp/workspace/unity-renderer/unity-renderer/Assets/Scripts/MainScripts/DCL/Controllers/Settings/SettingsControllers/SpecificControllers/InputAudioDeviceControlController.cs

#LineLine coverage
 1using DCL.Services;
 2using DCL.SettingsCommon.SettingsControllers.BaseControllers;
 3using UnityEngine;
 4using UnityEngine.EventSystems;
 5
 6namespace DCL.SettingsCommon.SettingsControllers.SpecificControllers
 7{
 8    [CreateAssetMenu(menuName = "Settings/Controllers/Controls/Input Audio Device", fileName = nameof(InputAudioDeviceCo
 9    public class InputAudioDeviceControlController : SpinBoxSettingsControlController
 10    {
 11        private IAudioDevicesService audioDevicesService;
 12
 13        public override void Initialize()
 14        {
 115            base.Initialize();
 16
 117            audioDevicesService = Environment.i.serviceLocator.Get<IAudioDevicesService>();
 18
 119            if (audioDevicesService.HasReceivedKernelMessage)
 20            {
 021                RaiseOnOverrideIndicatorLabel(DeviceNames());
 022                UpdateSetting(GetStoredValue());
 23            }
 24            else
 125                audioDevicesService.AudioDeviceCached += OnAudioDevicesCached;
 26
 27            void OnAudioDevicesCached()
 28            {
 029                audioDevicesService.AudioDeviceCached -= OnAudioDevicesCached;
 30
 031                RaiseOnOverrideIndicatorLabel(DeviceNames());
 032                UpdateSetting(GetStoredValue());
 033            }
 134        }
 35
 36        public override void OnPointerClicked(PointerEventData eventData)
 37        {
 038            if (!audioDevicesService.HasReceivedKernelMessage)
 039                audioDevicesService.RequestAudioDevices();
 040        }
 41
 42        private string[] DeviceNames()
 43        {
 044            string[] deviceNames = new string[audioDevicesService.InputDevices.Length];
 045            for (int i = 0; i < audioDevicesService.InputDevices.Length; i++)
 046                deviceNames[i] = audioDevicesService.InputDevices[i].label;
 47
 048            string cleanDeafult = deviceNames[0].Replace("Default", "").Replace(" - ", "");
 049            deviceNames[0] = $"Default ({cleanDeafult})";
 50
 051            return deviceNames;
 52        }
 53
 54        public override object GetStoredValue() =>
 155            currentAudioSettings.inputDevice;
 56
 57        public override void UpdateSetting(object newValue)
 58        {
 159            if (currentAudioSettings.inputDevice == (int)newValue)
 160                return;
 61
 062            currentAudioSettings.inputDevice = (int)newValue;
 063            ApplySettings();
 64
 065            audioDevicesService.SetInputDevice((int)newValue);
 066        }
 67    }
 68}