jamulussoftware / jamulussoftware/jamulus

Allow mono input device and channel selection for stereo input devices.

Offen
#2,344 29 Kommentare 2 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

feature request
Vorherrschende Sprache
C
Sterne
1.1k
Forks
248
Ø Merge
2 T. 3 Std.
Gemergte PRs (30 T.)
9

Beschreibung

**Describe the bug**

Momentarily it is impossible to use a mono input device and also impossible to select input channels for stereo devices, though there seems to be no reason why this should not be possible, since it is possible to select twice the same input channel with devices with more than two input channels.
Also in some cases it would be handy to swap L/R output channels which is currently also impossible for two channel devices.

**To Reproduce**

Just try different devices:
mono input device: Error not 2 ch.
stereo input device: no input/output selection possible
more than 2 channel device: all is possible.

**Expected behavior**

Always being able to select L/R channels for input and output. (and for mono input devices always select twice the same mono input)

**Screenshots**

n.a.

**Operating system**

All OS'es

**Version of Jamulus**

All versions

**Additional context**

Also discussed on [discussion #2268](https://github.com/jamulussoftware/jamulus/discussions/2268#discussioncomment-2114430)

changes for v3.8.1 windows release:

Add in sound.h:
(In my opinion these and some other definitions in sound.h should actually be defined in global.h since they are client, and not OS, related, but are of the same category as MAX_NUM_IN_OUT_CHANNELS which is defined in global.h)
```
42 #define MIN_IN_CHANNELS 1
43 #define MIN_OUT_CHANNELS 2

```
Chances in sound.cpp:
```
168 if ( ( lNumInChan < MIN_IN_CHANNELS ) || ( lNumOutChan < MIN_OUT_CHANNELS ) )

586 vSelectedInputChannels[1] = GetNumInputChannels() > 1 ? 1 : 0;

588 vSelectedOutputChannels[1] = GetNumOutputChannels() > 1 ? 1 : 0;
```
Same (alike) changes also have to be done for Mac/Linux/Android sound.cpp, sound.h

Chance in clientsettingsdlg.cpp
```
823 if ( ( iNumInChannels < MIN_IN_CHANNELS ) || ( iNumOutChannels < MIN_OUT_CHANNELS ) )

```
I don't think there is any other impact on the GUI, but that has to be further checked/tested.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne mit sound.h, den plattformspezifischen Dateien sound.cpp und clientsettingsdlg.cpp und konzentriere dich auf die im Issue identifizierten Prüfungen der Kanalanzahl und die Initialisierung des ausgewählten Kanals. Reproduziere das Verhalten mit Mono-, Stereo- und Mehrkanalgeräten auf den betroffenen Plattformen und überprüfe anschließend, dass die Auswahl der Eingangs- und Ausgangskanäle wie beschrieben funktioniert, ohne bestehende Geräte zu beeinträchtigen.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
cpp
Bereich
audio-video-rtc
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.