fix device index floating
This commit is contained in:
@@ -98,8 +98,8 @@ class SettingsManager:
|
||||
recorder.recordings_dir = self.get_settings('save_path')
|
||||
|
||||
audio_manager = WindowsAudioManager()
|
||||
audio_manager.set_default_input_device(self.get_settings('input_device')['index'])
|
||||
audio_manager.set_default_output_device(self.get_settings('output_device')['index'])
|
||||
audio_manager.set_default_input_device(self.get_settings('input_device'))
|
||||
audio_manager.set_default_output_device(self.get_settings('output_device'))
|
||||
|
||||
recorder.refresh_streams()
|
||||
|
||||
|
||||
@@ -75,34 +75,46 @@ class WindowsAudioManager:
|
||||
}
|
||||
]
|
||||
|
||||
def set_default_input_device(self, device_index):
|
||||
if(device_index is None):
|
||||
def set_default_input_device(self, device):
|
||||
if(device is None):
|
||||
return 0
|
||||
"""
|
||||
Set the default input audio device.
|
||||
|
||||
:param device_index: Index of the audio device
|
||||
:param device: Audio device information
|
||||
:return: Sample rate of the selected device
|
||||
"""
|
||||
sd.default.device[0] = device_index
|
||||
self.default_input = device_index
|
||||
corrected_device = None
|
||||
# set corrected device index based on the name of the device matching the provided device name
|
||||
for dev in self.devices:
|
||||
if dev['name'] == device['name']:
|
||||
corrected_device = dev['index']
|
||||
break
|
||||
sd.default.device[0] = corrected_device
|
||||
self.default_input = corrected_device
|
||||
|
||||
# Get the sample rate of the selected device
|
||||
device_info = sd.query_devices(device_index)
|
||||
device_info = sd.query_devices(corrected_device)
|
||||
return device_info['default_samplerate']
|
||||
|
||||
def set_default_output_device(self, device_index):
|
||||
if(device_index is None):
|
||||
def set_default_output_device(self, device):
|
||||
if(device is None):
|
||||
return self.get_current_output_device_sample_rate()
|
||||
"""
|
||||
Set the default output audio device.
|
||||
|
||||
:param device_index: Index of the audio device
|
||||
:param device: Audio device information
|
||||
:return: Sample rate of the selected device
|
||||
"""
|
||||
sd.default.device[1] = device_index
|
||||
self.default_output = device_index
|
||||
corrected_device = None
|
||||
# set corrected device index based on the name of the device matching the provided device name
|
||||
for dev in self.devices:
|
||||
if dev['name'] == device['name']:
|
||||
corrected_device = dev['index']
|
||||
break
|
||||
sd.default.device[1] = corrected_device
|
||||
self.default_output = corrected_device
|
||||
|
||||
# Get the sample rate of the selected device
|
||||
device_info = sd.query_devices(device_index)
|
||||
device_info = sd.query_devices(corrected_device)
|
||||
return device_info['default_samplerate']
|
||||
206
audio-service/test.json
Normal file
206
audio-service/test.json
Normal file
@@ -0,0 +1,206 @@
|
||||
[
|
||||
{
|
||||
"name": "Speakers (Realtek(R) Audio)",
|
||||
"index": 38,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Headset Earphone (4- Arctis 7 Chat)",
|
||||
"index": 39,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 1,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Line (Voicemod Virtual Audio Device (WDM))",
|
||||
"index": 40,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Headphones (Oculus Virtual Audio Device)",
|
||||
"index": 41,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "VM to Headset (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 42,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.002,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "VM to Discord (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 43,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.002,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "VM to OBS (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 44,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.002,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Headphones (4- Arctis 7 Game)",
|
||||
"index": 45,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Speakers (2- Focusrite USB Audio)",
|
||||
"index": 46,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 0,
|
||||
"max_output_channels": 2,
|
||||
"default_low_input_latency": 0.0,
|
||||
"default_low_output_latency": 0.003,
|
||||
"default_high_input_latency": 0.0,
|
||||
"default_high_output_latency": 0.01,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Headset Microphone (4- Arctis 7 Chat)",
|
||||
"index": 47,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 1,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Analogue 1 + 2 (2- Focusrite USB Audio)",
|
||||
"index": 48,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Voicemeeter Out B3 (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 49,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Microphone (Voicemod Virtual Audio Device (WDM))",
|
||||
"index": 50,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Voicemeeter Out A2 (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 51,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "VM Mic mix (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 52,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "VM Rec mix (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 53,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
},
|
||||
{
|
||||
"name": "Voicemeeter Out A1 (VB-Audio Voicemeeter VAIO)",
|
||||
"index": 54,
|
||||
"hostapi": 2,
|
||||
"max_input_channels": 2,
|
||||
"max_output_channels": 0,
|
||||
"default_low_input_latency": 0.003,
|
||||
"default_low_output_latency": 0.0,
|
||||
"default_high_input_latency": 0.01,
|
||||
"default_high_output_latency": 0.0,
|
||||
"default_samplerate": 48000.0
|
||||
}
|
||||
]
|
||||
@@ -265,6 +265,7 @@ namespace ClipTrimDotNet.Client
|
||||
public async void SaveClip()
|
||||
{
|
||||
if (socket is null) return;
|
||||
CheckPort();
|
||||
await socket.EmitAsync("record_clip", new List<object>() { });
|
||||
}
|
||||
|
||||
@@ -272,7 +273,7 @@ namespace ClipTrimDotNet.Client
|
||||
{
|
||||
if (socket is null) return;
|
||||
//Logger.Instance.LogMessage(TracingLevel.INFO, $"Checking port {socket}");
|
||||
if (currentHostname != HostName)
|
||||
if (currentHostname != HostName || !socket.Connected)
|
||||
{
|
||||
//Logger.Instance.LogMessage(TracingLevel.INFO, $"port {socket}");
|
||||
if (socket.Connected)
|
||||
|
||||
BIN
stream_deck_plugin/ClipTrimDotNet/ClipTrim.streamDeckProfile
Normal file
BIN
stream_deck_plugin/ClipTrimDotNet/ClipTrim.streamDeckProfile
Normal file
Binary file not shown.
@@ -6,8 +6,6 @@
|
||||
<LangVersion>10</LangVersion>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<PreBuildEvent>npm run stop</PreBuildEvent>
|
||||
<PostBuildEvent>npm run start</PostBuildEvent>
|
||||
<AssemblyTitle>ClipTrimDotNet</AssemblyTitle>
|
||||
<Product>ClipTrimDotNet</Product>
|
||||
<Copyright>Copyright © 2020</Copyright>
|
||||
@@ -18,9 +16,10 @@
|
||||
<OutputPath>bin\Debug\com.michal-courson.cliptrim.sdPlugin\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<OutputPath>bin\Release\ClipTrimDotNet.sdPlugin\</OutputPath>
|
||||
<OutputPath>bin\Release\com.michal-courson.cliptrim.sdPlugin\</OutputPath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<None Remove="ClipTrim.streamDeckProfile" />
|
||||
<None Remove="Images\app_icon.png" />
|
||||
<None Remove="Images\back.png" />
|
||||
<None Remove="Images\category_icon.png" />
|
||||
@@ -71,6 +70,9 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Content Include="!!README!!.txt" />
|
||||
<Content Include="ClipTrim.streamDeckProfile">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
<Content Include="Images\app_icon.png">
|
||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||
</Content>
|
||||
|
||||
Reference in New Issue
Block a user