-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
21 changed files
with
1,233 additions
and
0 deletions.
There are no files selected for viewing
Large diffs are not rendered by default.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,21 @@ | ||
MIT License | ||
|
||
Copyright (c) 2022 Anthony Steiner | ||
|
||
Permission is hereby granted, free of charge, to any person obtaining a copy | ||
of this software and associated documentation files (the "Software"), to deal | ||
in the Software without restriction, including without limitation the rights | ||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||
copies of the Software, and to permit persons to whom the Software is | ||
furnished to do so, subject to the following conditions: | ||
|
||
The above copyright notice and this permission notice shall be included in all | ||
copies or substantial portions of the Software. | ||
|
||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE | ||
SOFTWARE. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,73 @@ | ||
# AudioSwitcher Loupedeck Plugin | ||
[![License](http://img.shields.io/:license-MIT-blue.svg?style=flat)](LICENSE) | ||
![forks](https://img.shields.io/github/forks/Steinerd/Loupedeck.AudioSwitcherPlugin?style=flat) | ||
![stars](https://img.shields.io/github/stars/Steinerd/Loupedeck.AudioSwitcherPlugin?style=flat) | ||
![issues](https://img.shields.io/github/issues/Steinerd/Loupedeck.AudioSwitcherPlugin?style=flat) | ||
[![downloads](https://img.shields.io/github/downloads/Steinerd/Loupedeck.AudioSwitcherPlugin/latest/total?style=flat)](https://github.com/Steinerd/Loupedeck.AudioSwitcherPlugin/compare) | ||
|
||
In short, this is a dynamically generated _folder_ accessible via "Audio Devices" button. | ||
|
||
As of (4/28/2022), an additional experiemental PTT (mic mute press-to-talk) button functionality was added. | ||
|
||
## Credits | ||
|
||
This plugin makes use of [Sean Chapman's/xenolightning](https://github.com/xenolightning) [AudioSwitcher](https://github.com/xenolightning/AudioSwitcher) project/NuGet Package. | ||
|
||
-------- | ||
|
||
# Table of Contents | ||
|
||
- [Installation](#installation) | ||
- [Usage](#usage) | ||
- [Support](#support) | ||
- [Contributing](#contributing) | ||
- [License](#license) | ||
|
||
# Installation | ||
|
||
<details><summary><b>Loupedeck Installation</b></summary> | ||
|
||
|
||
1. Go to [latest release](https://github.com/Steinerd/Loupedeck.AudioSwitcherPlugin/releases/latest), and download the `lplug4` file to you computer | ||
1. Open (normally double-click) to install, the Loupedeck software should take care of the rest | ||
1. Restart Loupedeck (if not handled by the installer) | ||
1. In the Loupedeck interface, enable **AudioSwitcher** by clicking <ins>Manage plugins</ins> | ||
1. Check the AudioSwitcher box on to enable | ||
1. Drag the desired control onto your layout | ||
|
||
Once click it will bring you to a dynamic playback device selection page. | ||
</details> | ||
|
||
<details><summary><b>IDE Installation</b></summary> | ||
Made with Visual Studio 2022, C# will likely only compile in VS2019 or greater. | ||
|
||
Assuming Loupedeck is already installed on your machine, make sure you've stopped it before you debug the project. | ||
|
||
Debugging _should_ build the solution, which will then output the DLL, config, and pdb into your `%LocalAppData%\Loupedeck\Plugins` directory. | ||
|
||
If all goes well, Loupedeck will then open and you can then debug. | ||
|
||
</details> | ||
|
||
# Usage | ||
|
||
Follow the __Loupedeck Installation__ instructions above, | ||
once completed you will then be able to drag the ***Audio Devices*** control onto any layout page or button in your Loupedeck. | ||
|
||
As of writing this (Apr 9th, 2022), there is only the one control. | ||
I'm hoping to add more for recording devices, and an auxiliary control that allows you to chance both recording and playback simultaneously. | ||
|
||
# Support | ||
|
||
[Submit an issue](https://github.com/Steinerd/Loupedeck.AudioSwitcherPlugin/issues/new) | ||
|
||
Fill out the template to the best of your abilities and send it through. | ||
|
||
# Contribute | ||
|
||
Easily done. Just [open a pull request](https://github.com/Steinerd/Loupedeck.AudioSwitcherPlugin/compare). | ||
|
||
Don't worry about specifics, I'll handle the minutia. | ||
|
||
# License | ||
The MIT-License for this plugin can be reviewed at [LICENSE](LICENSE) attached to this repo. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,242 @@ | ||
# Remove the line below if you want to inherit .editorconfig settings from higher directories | ||
root = true | ||
|
||
# C# files | ||
[*.cs] | ||
|
||
#### Core EditorConfig Options #### | ||
|
||
# Indentation and spacing | ||
indent_size = 4 | ||
indent_style = space | ||
tab_width = 4 | ||
|
||
# New line preferences | ||
end_of_line = crlf | ||
insert_final_newline = false | ||
|
||
#### .NET Coding Conventions #### | ||
|
||
# Organize usings | ||
dotnet_separate_import_directive_groups = true | ||
dotnet_sort_system_directives_first = true | ||
|
||
# this. and Me. preferences | ||
dotnet_style_qualification_for_event = true:warning | ||
dotnet_style_qualification_for_field = true:warning | ||
dotnet_style_qualification_for_method = true:warning | ||
dotnet_style_qualification_for_property = true:warning | ||
|
||
# Language keywords vs BCL types preferences | ||
dotnet_style_predefined_type_for_locals_parameters_members = false:warning | ||
dotnet_style_predefined_type_for_member_access = false:warning | ||
|
||
# Parentheses preferences | ||
dotnet_style_parentheses_in_arithmetic_binary_operators = never_if_unnecessary:warning | ||
dotnet_style_parentheses_in_other_binary_operators = always_for_clarity:warning | ||
dotnet_style_parentheses_in_other_operators = never_if_unnecessary:warning | ||
dotnet_style_parentheses_in_relational_binary_operators = always_for_clarity:warning | ||
|
||
# Modifier preferences | ||
dotnet_style_require_accessibility_modifiers = for_non_interface_members:silent | ||
|
||
# Expression-level preferences | ||
csharp_style_deconstructed_variable_declaration = true:suggestion | ||
csharp_style_inlined_variable_declaration = true:warning | ||
csharp_style_throw_expression = true:warning | ||
dotnet_style_coalesce_expression = true:warning | ||
dotnet_style_collection_initializer = true:warning | ||
dotnet_style_explicit_tuple_names = true:warning | ||
dotnet_style_null_propagation = true:warning | ||
dotnet_style_object_initializer = false:suggestion | ||
dotnet_style_prefer_auto_properties = true:warning | ||
dotnet_style_prefer_compound_assignment = true:warning | ||
dotnet_style_prefer_conditional_expression_over_assignment = true:warning | ||
dotnet_style_prefer_conditional_expression_over_return = true:warning | ||
dotnet_style_prefer_inferred_anonymous_type_member_names = true:suggestion | ||
dotnet_style_prefer_inferred_tuple_names = true:suggestion | ||
dotnet_style_prefer_is_null_check_over_reference_equality_method = true:warning | ||
|
||
# Field preferences | ||
dotnet_style_readonly_field = true:warning | ||
|
||
# Parameter preferences | ||
dotnet_code_quality_unused_parameters = all:warning | ||
|
||
#### C# Coding Conventions #### | ||
|
||
# var preferences | ||
csharp_style_var_elsewhere = true:silent | ||
csharp_style_var_for_built_in_types = true:warning | ||
csharp_style_var_when_type_is_apparent = true:warning | ||
|
||
# Expression-bodied members | ||
csharp_style_expression_bodied_accessors = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_constructors = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_indexers = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_lambdas = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_local_functions = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_methods = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_operators = when_on_single_line:suggestion | ||
csharp_style_expression_bodied_properties = when_on_single_line:suggestion | ||
|
||
# Pattern matching preferences | ||
csharp_style_pattern_matching_over_as_with_null_check = true:warning | ||
csharp_style_pattern_matching_over_is_with_cast_check = true:warning | ||
|
||
# Null-checking preferences | ||
csharp_style_conditional_delegate_call = true:warning | ||
|
||
# Modifier preferences | ||
csharp_prefer_static_local_function = false:warning | ||
csharp_preferred_modifier_order = public,private,protected,internal,static,extern,new,virtual,abstract,sealed,override,readonly,unsafe,volatile,async | ||
|
||
# Code-block preferences | ||
csharp_prefer_braces = true:warning | ||
csharp_prefer_simple_using_statement = false:warning | ||
|
||
# Expression-level preferences | ||
csharp_prefer_simple_default_expression = true:warning | ||
csharp_style_pattern_local_over_anonymous_function = true:warning | ||
csharp_style_prefer_index_operator = true:suggestion | ||
csharp_style_prefer_range_operator = true:suggestion | ||
csharp_style_unused_value_assignment_preference = discard_variable:suggestion | ||
csharp_style_unused_value_expression_statement_preference = discard_variable:suggestion | ||
|
||
# 'using' directive preferences | ||
csharp_using_directive_placement = inside_namespace:warning | ||
|
||
#### C# Formatting Rules #### | ||
|
||
# New line preferences | ||
csharp_new_line_before_catch = true | ||
csharp_new_line_before_else = true | ||
csharp_new_line_before_finally = true | ||
csharp_new_line_before_members_in_anonymous_types = true | ||
csharp_new_line_before_members_in_object_initializers = true | ||
csharp_new_line_before_open_brace = all | ||
csharp_new_line_between_query_expression_clauses = true | ||
|
||
# Indentation preferences | ||
csharp_indent_block_contents = true | ||
csharp_indent_braces = false | ||
csharp_indent_case_contents = true | ||
csharp_indent_case_contents_when_block = false | ||
csharp_indent_labels = one_less_than_current | ||
csharp_indent_switch_labels = true | ||
|
||
# Space preferences | ||
csharp_space_after_cast = false | ||
csharp_space_after_colon_in_inheritance_clause = true | ||
csharp_space_after_comma = true | ||
csharp_space_after_dot = false | ||
csharp_space_after_keywords_in_control_flow_statements = true | ||
csharp_space_after_semicolon_in_for_statement = true | ||
csharp_space_around_binary_operators = before_and_after | ||
csharp_space_around_declaration_statements = false | ||
csharp_space_before_colon_in_inheritance_clause = true | ||
csharp_space_before_comma = false | ||
csharp_space_before_dot = false | ||
csharp_space_before_open_square_brackets = false | ||
csharp_space_before_semicolon_in_for_statement = false | ||
csharp_space_between_empty_square_brackets = false | ||
csharp_space_between_method_call_empty_parameter_list_parentheses = false | ||
csharp_space_between_method_call_name_and_opening_parenthesis = false | ||
csharp_space_between_method_call_parameter_list_parentheses = false | ||
csharp_space_between_method_declaration_empty_parameter_list_parentheses = false | ||
csharp_space_between_method_declaration_name_and_open_parenthesis = false | ||
csharp_space_between_method_declaration_parameter_list_parentheses = false | ||
csharp_space_between_parentheses = false | ||
csharp_space_between_square_brackets = false | ||
|
||
# Wrapping preferences | ||
csharp_preserve_single_line_blocks = true | ||
csharp_preserve_single_line_statements = false | ||
|
||
#### Naming styles #### | ||
|
||
# Naming rules | ||
|
||
dotnet_naming_rule.interface_should_be_begins_with_i.severity = suggestion | ||
dotnet_naming_rule.interface_should_be_begins_with_i.symbols = interface | ||
dotnet_naming_rule.interface_should_be_begins_with_i.style = begins_with_i | ||
|
||
dotnet_naming_rule.types_should_be_pascal_case.severity = suggestion | ||
dotnet_naming_rule.types_should_be_pascal_case.symbols = types | ||
dotnet_naming_rule.types_should_be_pascal_case.style = pascal_case | ||
|
||
dotnet_naming_rule.non_field_members_should_be_pascal_case.severity = suggestion | ||
dotnet_naming_rule.non_field_members_should_be_pascal_case.symbols = non_field_members | ||
dotnet_naming_rule.non_field_members_should_be_pascal_case.style = pascal_case | ||
|
||
# Symbol specifications | ||
|
||
dotnet_naming_symbols.interface.applicable_kinds = interface | ||
dotnet_naming_symbols.interface.applicable_accessibilities = public, internal, private, protected, protected_internal | ||
dotnet_naming_symbols.interface.required_modifiers = | ||
|
||
dotnet_naming_symbols.types.applicable_kinds = class, struct, interface, enum | ||
dotnet_naming_symbols.types.applicable_accessibilities = public, internal, private, protected, protected_internal | ||
dotnet_naming_symbols.types.required_modifiers = | ||
|
||
dotnet_naming_symbols.non_field_members.applicable_kinds = property, event, method | ||
dotnet_naming_symbols.non_field_members.applicable_accessibilities = public, internal, private, protected, protected_internal | ||
dotnet_naming_symbols.non_field_members.required_modifiers = | ||
|
||
# Naming styles | ||
|
||
dotnet_naming_style.pascal_case.required_prefix = | ||
dotnet_naming_style.pascal_case.required_suffix = | ||
dotnet_naming_style.pascal_case.word_separator = | ||
dotnet_naming_style.pascal_case.capitalization = pascal_case | ||
|
||
dotnet_naming_style.begins_with_i.required_prefix = I | ||
dotnet_naming_style.begins_with_i.required_suffix = | ||
dotnet_naming_style.begins_with_i.word_separator = | ||
dotnet_naming_style.begins_with_i.capitalization = pascal_case | ||
|
||
#### Diagnostic configuration #### | ||
|
||
dotnet_diagnostic.CA1028.severity = none | ||
dotnet_diagnostic.CA1031.severity = none | ||
dotnet_diagnostic.CA1054.severity = none | ||
dotnet_diagnostic.CA1056.severity = none | ||
dotnet_diagnostic.CA1060.severity = none | ||
dotnet_diagnostic.CA1303.severity = none | ||
dotnet_diagnostic.CA1308.severity = none | ||
dotnet_diagnostic.CA1716.severity = none | ||
dotnet_diagnostic.CA1720.severity = none | ||
dotnet_diagnostic.CA2101.severity = none | ||
dotnet_diagnostic.CA2234.severity = none | ||
dotnet_diagnostic.CA5350.severity = none | ||
dotnet_diagnostic.CA9998.severity = none | ||
|
||
dotnet_diagnostic.CS1591.severity = none | ||
|
||
dotnet_diagnostic.IDE0002.severity = none | ||
dotnet_diagnostic.IDE0021.severity = warning | ||
dotnet_diagnostic.IDE0022.severity = warning | ||
dotnet_diagnostic.IDE0058.severity = none | ||
dotnet_diagnostic.IDE0059.severity = none | ||
|
||
dotnet_diagnostic.SA1108.severity = none | ||
dotnet_diagnostic.SA1117.severity = none | ||
dotnet_diagnostic.SA1121.severity = none | ||
dotnet_diagnostic.SA1122.severity = none | ||
dotnet_diagnostic.SA1131.severity = none | ||
dotnet_diagnostic.SA1201.severity = none | ||
dotnet_diagnostic.SA1202.severity = none | ||
dotnet_diagnostic.SA1203.severity = none | ||
dotnet_diagnostic.SA1204.severity = none | ||
dotnet_diagnostic.SA1214.severity = none | ||
dotnet_diagnostic.SA1309.severity = none | ||
dotnet_diagnostic.SA1512.severity = none | ||
dotnet_diagnostic.SA1513.severity = none | ||
dotnet_diagnostic.SA1600.severity = none | ||
dotnet_diagnostic.SA1601.severity = none | ||
dotnet_diagnostic.SA1602.severity = none | ||
dotnet_diagnostic.SA1629.severity = none | ||
dotnet_diagnostic.SA1633.severity = none | ||
|
||
dotnet_diagnostic.SX1309.severity = warning | ||
dotnet_diagnostic.SX1309S.severity = warning |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<Project> | ||
<PropertyGroup> | ||
<LangVersion>latest</LangVersion> | ||
<BaseIntermediateOutputPath>$(SolutionDir)..\obj\</BaseIntermediateOutputPath> | ||
<BaseOutputPath>$(SolutionDir)..\bin\</BaseOutputPath> | ||
</PropertyGroup> | ||
</Project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
Microsoft Visual Studio Solution File, Format Version 12.00 | ||
# Visual Studio Version 17 | ||
VisualStudioVersion = 17.8.34408.163 | ||
MinimumVisualStudioVersion = 10.0.40219.1 | ||
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Steinerd.AudioSwitcherPlugin", "Steinerd.AudioSwitcherPlugin\Steinerd.AudioSwitcherPlugin.csproj", "{E627C50A-0F88-45B5-9F07-93F8383FE83B}" | ||
EndProject | ||
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{9066CC41-024C-4159-A675-BDA3F020AC59}" | ||
ProjectSection(SolutionItems) = preProject | ||
..\.gitignore = ..\.gitignore | ||
Steinerd.AudioSwitcherPlugin\build-plugin.ps1 = Steinerd.AudioSwitcherPlugin\build-plugin.ps1 | ||
Directory.Build.props = Directory.Build.props | ||
..\LICENSE = ..\LICENSE | ||
..\README.md = ..\README.md | ||
EndProjectSection | ||
EndProject | ||
Global | ||
GlobalSection(SolutionConfigurationPlatforms) = preSolution | ||
Debug|Any CPU = Debug|Any CPU | ||
Release|Any CPU = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(ProjectConfigurationPlatforms) = postSolution | ||
{E627C50A-0F88-45B5-9F07-93F8383FE83B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU | ||
{E627C50A-0F88-45B5-9F07-93F8383FE83B}.Debug|Any CPU.Build.0 = Debug|Any CPU | ||
{E627C50A-0F88-45B5-9F07-93F8383FE83B}.Release|Any CPU.ActiveCfg = Release|Any CPU | ||
{E627C50A-0F88-45B5-9F07-93F8383FE83B}.Release|Any CPU.Build.0 = Release|Any CPU | ||
EndGlobalSection | ||
GlobalSection(SolutionProperties) = preSolution | ||
HideSolutionNode = FALSE | ||
EndGlobalSection | ||
GlobalSection(ExtensibilityGlobals) = postSolution | ||
SolutionGuid = {E1013608-F4CE-4B17-8769-4B52706A2061} | ||
EndGlobalSection | ||
EndGlobal |
Oops, something went wrong.