Coder Social home page Coder Social logo

gablarski's People

Contributors

ermau avatar terite avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

rolenun jiazl2022

gablarski's Issues

Crash trying to close

System.ArgumentNullException: Value cannot be null.
at System.Threading.Monitor.ReliableEnter(Object obj, Boolean& lockTaken)
at System.Threading.Monitor.Enter(Object obj, Boolean& lockTaken)
at Gablarski.SpeechNotifier.SpeechRecognizer.StopRecognizing() in c:\TeamCity\buildAgent\work\59ee6bca9e9dce47\src\Gablarski.SpeechNotifier\SpeechRecognizer.cs:line 97
at Gablarski.Clients.Windows.MainForm.DisableInput() in c:\TeamCity\buildAgent\work\59ee6bca9e9dce47\src\Clients\WinForms\MainForm.cs:line 479
at Gablarski.Clients.Windows.MainForm.MainForm_FormClosing(Object sender, FormClosingEventArgs e) in c:\TeamCity\buildAgent\work\59ee6bca9e9dce47\src\Clients\WinForms\MainForm.cs:line 1061
at System.Windows.Forms.Form.OnFormClosing(FormClosingEventArgs e)
at System.Windows.Forms.Form.WmClose(Message& m)
at System.Windows.Forms.Form.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

"Set Binding" missing on new install

Installed using nightly installer on a computer that never had GB before.
There was a single binding, Talk, not bound to anything, with no link to "Set Binding"

To work around, the binding was removed and a new binding was added.

Running Windows 7x64

Can not send audio from a source you don't own

This is a race condition between the audio loop and the main client shutting down. If you are talking while being disconnected, your CurrentUser user ID will become 0, which will not match with the audio source you are trying to send from, resulting in the exception.

[ArgumentException: Can not send audio from a source you don't own Parameter name: source]
    Gablarski.Client.ClientSourceHandler.SendAudioDataAsync(AudioSource source, TargetType targetType, Int32[] targetIds, Byte[][] data) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:130
    Gablarski.Audio.AudioEngine.OnSamplesAvailable(Object sender, SamplesAvailableEventArgs e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioEngine.cs:587
    Gablarski.OpenAL.Providers.OpenALCaptureProvider.OnSamplesAvailable(Int32 samplesAvailable) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALCaptureProvider.cs:115
    Gablarski.OpenAL.Providers.OpenALCaptureProvider.Tick() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALCaptureProvider.cs:208
    Gablarski.OpenAL.Providers.OpenALRunner.UpdateCapture() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALRunner.cs:169
    Gablarski.OpenAL.Providers.OpenALRunner.Runner() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALRunner.cs:142
    System.Threading.ThreadHelper.ThreadStart_Context(Object state):20
    System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):112
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):0
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state):43
    System.Threading.ThreadHelper.ThreadStart():8

Support ALC_EXT_Disconnect

Support the OpenAL Soft extension ALC_EXT_Disconnect for checking whether devices are still connected or not

Spinners on settings screen

Now that the modules are loaded async, the settings screen needs a spinner until the current page finishes.

Should probably implement a Behavior for this so we can just attach it to any element and a BusyViewModel

ArgumentException receiving audio

[ArgumentException: An item with the same key has already been added.]
    System.ThrowHelper.ThrowArgumentException(ExceptionResource resource):16
    System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add):0
    System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value):0
    Gablarski.OpenAL.SourceBuffer.Generate(Int32 count) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\SourceBuffer.cs:166
    Gablarski.OpenAL.Providers.OpenALPlaybackProvider.PushBuffers(Stack`1 bufferStack, Int32 number) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALPlaybackProvider.cs:297
    Gablarski.OpenAL.Providers.OpenALPlaybackProvider.RequireBuffers(Stack`1 bufferStack, Source source, Int32 num) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALPlaybackProvider.cs:292
    Gablarski.OpenAL.Providers.OpenALPlaybackProvider.QueuePlayback(AudioSource audioSource, Byte[] data) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski.OpenAL\Providers\OpenALPlaybackProvider.cs:151
    Gablarski.Audio.AudioEngine.OnReceivedAudio(Object sender, ReceivedAudioEventArgs e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioEngine.cs:614
    System.EventHandler`1.Invoke(Object sender, TEventArgs e):-1
    Gablarski.Client.ClientSourceHandler.OnReceivedAudio(ReceivedAudioEventArgs e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:342
    Gablarski.Client.ClientSourceHandler.OnServerAudioDataMessage(MessageEventArgs`1 e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:309
    Tempest.ContextExtensions+<>c__DisplayClass1`1.<RegisterMessageHandler>b__0(MessageEventArgs e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Tempest.Social\Tempest\Desktop\Tempest\IContext.cs:107
    Tempest.TempestClient.MessageRunner() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Tempest.Social\Tempest\Desktop\Tempest\TempestClient.cs:202
    System.Threading.ThreadHelper.ThreadStart_Context(Object state):20
    System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):112
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):0
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state):43
    System.Threading.ThreadHelper.ThreadStart():8

ArgumentOutOfRangeException in SetupNotifications()

Windows 7 machine reporting supported formats for the TTS conflicting with the new setting boundaries for Opus. Need to split Opus from AudioSource.

[ArgumentOutOfRangeException: Specified argument was out of the range of valid values. Parameter name: value]
    Gablarski.Audio.AudioCodecArgs.set_FrameSize(Int16 value) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioCodecArgs.cs:134
    Gablarski.Audio.AudioCodecArgs..ctor(AudioFormat format, Int32 bitrate, Int16 frameSize, Byte complexity) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioCodecArgs.cs:75
    Gablarski.Audio.AudioSource..ctor(String name, Int32 sourceId, Int32 ownerId, AudioFormat format, Int32 bitrate, Int16 frameSize, Byte complexity, Boolean isMuted) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioSource.cs:66
    Gablarski.Audio.AudioSource..ctor(String name, Int32 sourceId, Int32 ownerId, AudioFormat format, Int32 bitrate, Int16 frameSize, Byte complexity) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Audio\AudioSource.cs:61
    Gablarski.Client.ClientSourceHandler.CreateFake(String name, AudioFormat format, Int16 frameSize) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:196
    Gablarski.Clients.Windows.MainForm.SetupNotifications() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Clients\Windows\MainForm.cs:169
    Gablarski.Clients.Windows.MainForm.SetupPlayback() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Clients\Windows\MainForm.cs:315
    Gablarski.Clients.Windows.MainForm.SourcesOnReceivedSourceList(Object sender, ReceivedListEventArgs`1 args) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Clients\Windows\MainForm.cs:185
    Gablarski.Client.ClientSourceHandler.OnReceivedSourceList(ReceivedListEventArgs`1 e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:356
    Gablarski.Client.ClientSourceHandler.OnSourceListReceivedMessage(MessageEventArgs`1 e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Gablarski\Client\ClientSourceHandler.cs:259
    Tempest.ContextExtensions+<>c__DisplayClass1`1.<RegisterMessageHandler>b__0(MessageEventArgs e) in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Tempest.Social\Tempest\Desktop\Tempest\IContext.cs:107
    Tempest.TempestClient.MessageRunner() in c:\TeamCity\buildAgent\work\5fb2337afe0d8eb5\src\Tempest.Social\Tempest\Desktop\Tempest\TempestClient.cs:202
    System.Threading.ThreadHelper.ThreadStart_Context(Object state):20
    System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):112
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx):0
    System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state):43
    System.Threading.ThreadHelper.ThreadStart():8

"Default" audio device

Add a default audio device that tracks the current default audio device, at least at start up (since OpenAL doesn't provide notifications).

TTS not working on Windows 8

On Windows 8.1, it seems that the voices do not report any supported formats, so Gablarski disables support for it.

The voices are still capable of working with a made up format, but sound terrible when speaking to a stream. Just calling the normal speak commands sounds OK.

Server management UI

  • Basic server settings:
    • Name
    • Logo
    • Server password
  • Pending registrations
  • User management
    • List of registered users
    • Unregister, ban, create users.
  • Channel management
    • CRUD channels

Admin query for pending registrations

A query (respecting PermissionName.ApproveRegistrations) that requests from the user provider pending registrations and returns them to the client.

Input manager

Need a input manager to handle:

  • Setting up the input and speech recognizer providers
  • Responding to settings and input binding changes
  • Issue commands when received from input

Incorrect usage of fixed()

There are a few incorrect usages of fixed() that cause the occasional crash, need to clean these up. (OpenAL and CELT).

Speech recognition error on startup

Error initializing speech recognition: System.InvalidOperationException: Already open
at Gablarski.SpeechNotifier.SpeechRecognizer.Open() in c:\TeamCity\buildAgent\work\59ee6bca9e9dce47\src\Gablarski.SpeechNotifier\SpeechRecognizer.cs:line 70
at Gablarski.Clients.Windows.MainForm.SetupInput() in c:\TeamCity\buildAgent\work\59ee6bca9e9dce47\src\Clients\WinForms\MainForm.cs:line 501

Abstract settings system

Need to abstract the settings system so settings can be requested from view models and still be testable.

Voice setup wizard

Use TTS and Speech recognition to drive a voice setup wizard:

  • "Can you hear me"?
    • Will accept UI input, or saying "Yes". If yes, can skip next step.
  • "Let's see if I can hear you"
  • Voice Activation level (or disable)

Create/edit server screen

  • Should automatically attempt to query servers when provided enough information.
    • Show status of query (success, fail, still querying [spinner])
    • Fill in server name with successful query if the user hasn't it set it already

Update notification

  • Check some file on gablarski.org for whether there's an update
  • Prompt the user to update
  • Open download page if they say yes

WPF Client

Rewrite the client in WPF, setup things properly for the long run.

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.