Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Connection status client and gui can get out of sync. #2519

Open
pgScorpio opened this issue Mar 18, 2022 · 1 comment · May be fixed by #3364
Open

Connection status client and gui can get out of sync. #2519

pgScorpio opened this issue Mar 18, 2022 · 1 comment · May be fixed by #3364
Labels
bug Something isn't working

Comments

@pgScorpio
Copy link
Contributor

Describe the bug

There are several occasions where Client connection and GUI can get out of sync.
If this is the case the gui will show connected state (and disconnect button) while still connected or the gui will show disconnected state (and connect button) while not connected.
Also there are cases where GUI shows the "Disconnect" button, but opens the "Connect" dialog when pressed.

To Reproduce

This mostly happens when you change to an invalid device while connected.
It also happens in other cases of device errors but these are harder to reproduce.

Expected behavior

GUI should always show the correct state.

Screenshots

Operating system

Version of Jamulus
All Jamulus versions

Additional context

I finally found the problem (after a long time), And there are two causes:
1: Connect/Disconnect is implemented in the CClientDlg code, with a lot of calls to CClient (Doesn't belong here, since this is not GUI functionality.)
2: Some functions in CCLient have ambiguous names, so wrong functions are used to check if connected (actually checking Sound.IsStarted)

This issue will be solved in my "sound re-design" repo.

@pgScorpio pgScorpio added the bug Something isn't working label Mar 18, 2022
@pgScorpio pgScorpio mentioned this issue Mar 18, 2022
5 tasks
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Mar 25, 2022
In this first stage I just renamed some functions in CClient to make the problem clear.
See "---> pgScorpio:" comments in the problem area's.
The next stage will actually change the code to solve this issue.
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Mar 26, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Mar 28, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Mar 28, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Apr 5, 2022
In this first stage I just renamed some functions in CClient to make the problem clear.
See "---> pgScorpio:" comments in the problem area's.
The next stage will actually change the code to solve this issue.
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Apr 5, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Apr 5, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Apr 5, 2022
Moved Connect/Disconnect code from CClientdlg to CClient.
Now using the proper connected checks in several places.
Added bDisconnectAndDisable to CChannel. (For a Client now
Channel.Disconnect() will block audio data and auto disable the channel on disconnected)
pgScorpio added a commit to pgScorpio/jamulus that referenced this issue Apr 6, 2022
In this first stage I just renamed some functions in CClient to make the problem clear.
See "---> pgScorpio:" comments in the problem area's.
The next stage will actually change the code to solve this issue.
@ann0see
Copy link
Member

ann0see commented Sep 7, 2024

Which we also see in #3249

I hope we'll get to a better design in Jamulus 4

ann0see added a commit to ann0see/jamulus that referenced this issue Sep 8, 2024
@ann0see ann0see linked a pull request Sep 8, 2024 that will close this issue
5 tasks
ann0see added a commit to ann0see/jamulus that referenced this issue Sep 8, 2024
ann0see added a commit to ann0see/jamulus that referenced this issue Sep 8, 2024
ann0see added a commit to ann0see/jamulus that referenced this issue Sep 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
Status: Triage
Development

Successfully merging a pull request may close this issue.

2 participants