Code Monkey home page Code Monkey logo

elgatowavelinksdk's Introduction

ElgatoWaveLink-cSharp

Nuget (with prereleases)

SDK For Elgato Wave Link Software, based on the StreamDeck plugin for the WaveLink

Working:

  • Unit Tests
  • Event handlers
  • Get methods
  • Set Commands
    • setMonitorMixOutput
    • switchMonitoring
    • setMicrophoneSettings
    • setOutputMixer
    • switchMonitorMix
    • setInputMix
      • Necessary to pass in which mix you are setting (local vs stream), Looking to see how to change both at the same time as the JS library does have an "all" option
      • Setting filters is possible, but not tested as I'm not sure how to get a list of available filters

Left To Do:

  • Support more than just DotNetCore 6

elgatowavelinksdk's People

Contributors

professor-melvin avatar

Stargazers

Julien Ehrhart avatar David avatar Asoji avatar Alessandro Travi avatar  avatar Elias Stepanik avatar Oddbjørn Bakke avatar Benjamin avatar

Watchers

Oddbjørn Bakke avatar  avatar Elias Stepanik avatar

elgatowavelinksdk's Issues

SetInputMixer

Hello,
i would like to use the SetInputMixer Code.

You wrote "Need to look at the JS plugin for more details on this".
Could you give me a link to the JS plugin?

Can't change output mixer volume

When calling this:
var newSetting = await client.SetOutputMixer(1, false, 1, true);

The response is:

{
    "id": 10,
    "jsonrpc": "2.0",
    "result": {
        "isLocalOutMuted": false,
        "isStreamOutMuted": false,
        "localVolumeOut": 0,
        "streamVolumeOut": 0
    }
}

Expected response:

{
    "id": 10,
    "jsonrpc": "2.0",
    "result": {
        "isLocalOutMuted": false,
        "isStreamOutMuted": true,
        "localVolumeOut": 1,
        "streamVolumeOut": 1
    }
}

Wavelink Performance

Hi have you seen any performance issues with this SDK when running over time?

Trying to figure out if this is a issue with my plugin or with the SDK.
Audio crackling, slowdowns, Wave Link crashes etc., usually takes a couple of hours or so to occur.

See thread: oddbear/Loupedeck.WaveLink.Plugin#2 (comment)

And to quote CoreParadox Great work, I look forward to using it!
Since this is almost only your work, I need to forward this kudos to you... credit where credit is due...
So from me also: Great work. 👍

Reconnection not handled correctly

"I also found another bug that was interesting.
To reproduce, I close Wave Link, start it up again, then try to Connect to the client. It throws this exception:
Event Type Moniker Event Time Duration Thread
Exception thrown: 'ElgatoWaveSDK.Models.ElgatoException' in mscorlib.dll ("Looped through possible ports 2 times and couldn't connect [1824-1834]") Exception thrown: 'ElgatoWaveSDK.Models.ElgatoException' in mscorlib.dll ("Looped through possible ports 2 times and couldn't connect [1824-1834]") Hyperlink: Activate Historical Debugging 41,291.06s [3808] Worker Thread

However, if I run Disconnect, then Connects again, it does not."

Tests are all borked!

Tests are all working locally in VS but all are failing in pipeline and randomly some will fail locally when run with dotnet test

Add Version Checks

Add version checks and create version mismatch warnings to stop websocket changes from unknowingly breaking things

Wrong json structure?

I try to use your SDK for building a Loupedeck plugin.
It's awesome, but I had to do some changes: https://github.com/oddbear/ElgatoWaveLinkSDK/tree/net472

I have found some small bugs. I am on 1.5.0.2889 of the Wave Link software, and it seems like a JSON might have changed for the channelsChanged event. At my end the event is different, the list is in a channel property in the json. These makes the Deserialization fail.

I changed it to:

case "channelsChanged":
    obj = JsonConvert.DeserializeObject<List<ChannelInfo>>(baseObject.Obj?["channels"]?.ToString());

This seems to work.
Also if a deserialization of an event fails, the whole receive routine will stop working, but this might be by design?

All my changes to make it work:

  • changed to target .net 4.7.2 (limitations of the Loupedeck)
  • Fixed issue with deserialization return JsonConvert.DeserializeObject<OutT>(reply.Result?.ToString());, this seems to be fixed in your UI branch.
  • Issue explained over.

Oddbjørn

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.