Skip to content

watfordjc/csharp-stream-controller

Repository files navigation

csharp-stream-controller

My WIP stream controller for live streaming.

Work In Progress

All of the projects in this Visual Studio solution are not yet in a usable state and the program is nowhere near the point where I use it for streaming.

Goals

The app I currently use for streaming is buggy, and is akin to a stream deck. While it does have some options for integration with the operating system and other programs, they are rather limited.

The main purpose of the solution in this repository is to create a connectivity hub for streaming. These are the things I am currently considering interfacing with:

  • OBS Studio (via obs-websocket)
  • Windows audio devices (via NAudio)
  • Windows networking devices
  • Twitter
  • Twitch
  • An Android app (via websockets)
  • A smartwatch app for live heart rate and stress level (how: TBD)

Solution Projects

Project names and purposes are subject to changes, and this README is likely to lag such changes.

The purpose of this library is to interface with the Windows audio devices via the NAudio library.

Its short name for milestones is NAWLib.

The purpose of this library is to interface with the Windows networking devices.

Its short name for milestones is NWLib.

The purpose of this library is to provide an obs-websocket specific implementation of WebSocketLibrary.GenericClient.

Its short name for milestones is OBSWSLib.

This library is for generating installers/releases.

This library is for classes that are used by other projects/libraries and will eventually be for classes that aren't dependent on other projects and are used across projects.

Its short name for milestones is SMLib.

This is the user interface project. All of the windows are contained in this project and it is also the thing the Setup project creates installers from.

Its short name for milestones is SC.

The purpose of this library is to provide a generic websocket client (GenericClient) using System.Net.WebSockets.ClientWebSocket.

Its short name for milestones is WSLib.

Branches

This branch is, for the time being, the only one suitable for forking from.

Feature Branches

Feature branches for issues follow the naming convention feature/issue-issueNumber/projectShortname-branchNumer where:

  • issueNumber is the Github issue number in this repository;
  • projectShortname is:
    • a11y for Accessibility
    • audio for Windows Audio
    • net for Networking
    • obs for OBS
    • twitch for Twitch
    • twitter for Twitter
    • gui for UI
  • branchNumber is the version number of that Repository Project's branch of the issue.

These branches are subject to rebasing, forced pushes, cherry-picking, and abandonment.

Feature branches get deleted after the master branch is fast-forwarded to the HEAD of the feature branch and the issue gets closed.

About

My WIP stream controller for live streaming

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages