audio device button icons

This commit is contained in:
ntr committed 2022-06-16 11:14:05 +10:00
1 parent e78d9c9d48
commit e885e019fa
14 files changed
+325 -5068

No files matched your search

+22 -6
View File
@@ -1,7 +1,8 @@
using Assets.WasapiAudio.Scripts.Core;
using UnityEngine;
using UnityEngine.UI;
[ExecuteInEditMode]
[ExecuteAlways]
public class AudioSource : MonoBehaviour {
public WasapiCaptureType CaptureType = WasapiCaptureType.Loopback;
public int SpectrumSize = 32;
@@ -11,6 +12,8 @@ public class AudioSource : MonoBehaviour {
public WasapiAudioFilter[] Filters;
public Preferences preferences;
public Texture speakerTexture;
public Texture micTexture;
private WasapiAudio _wasapiAudio;
private float[] _spectrumData;
@@ -20,16 +23,18 @@ public class AudioSource : MonoBehaviour {
? WasapiCaptureType.Loopback
: WasapiCaptureType.Microphone;
Debug.Log($"Pref: {preferences.data.useLoopback} {CaptureType}");
// Debug.Log($"Pref: {preferences.data.useLoopback} {CaptureType}");
Initialise();
}
void Initialise() {
bool isLoopback = CaptureType == WasapiCaptureType.Loopback;
SetImageTexture(isLoopback);
_wasapiAudio?.StopListen();
_wasapiAudio = new WasapiAudio(CaptureType, SpectrumSize, ScalingStrategy, MinFrequency, MaxFrequency, Filters, spectrumData =>
{
_wasapiAudio = new WasapiAudio(CaptureType, SpectrumSize, ScalingStrategy, MinFrequency, MaxFrequency, Filters, spectrumData => {
_spectrumData = spectrumData;
});
@@ -45,15 +50,26 @@ public class AudioSource : MonoBehaviour {
}
public void ToggleCaptureType() {
if (CaptureType == WasapiCaptureType.Loopback) {
bool isLoopback = CaptureType == WasapiCaptureType.Loopback;
if (isLoopback) {
CaptureType = WasapiCaptureType.Microphone;
preferences.SetUseLoopback(false);
} else {
CaptureType = WasapiCaptureType.Loopback;
preferences.SetUseLoopback(true);
}
Initialise();
}
void SetImageTexture(bool useLoopback) {
RawImage image = GetComponent<RawImage>();
if (!image) return;
image.texture = useLoopback
? speakerTexture
: micTexture;
}
}