Pulseeffects: [Feature Request] Add Description of Streams to PE Applications Screen

Created on 23 Aug 2020  路  19Comments  路  Source: wwmm/pulseeffects

@wwmm I prefer pavucontrol, because in PE, sometimes, I'm not able to tell, which switch is what for...

Sn铆mka obrazovky z 2020-08-23 17-31-38

Sn铆mka obrazovky z 2020-08-23 17-33-29

_Originally posted by @Mlocik97 in https://github.com/wwmm/pulseeffects/issues/759#issuecomment-678788425_

enhancement

All 19 comments

I agree. And maybe we should replicate pavucontrol disposition aligning the app title to the left and blocklist checkbutton on the same grid to the right side.

In this way the volume slider can extend itself horizontally to the total window length.

The switchbutton should be moved to the left and maybe replaced with a checkbutton.

Tomorrow I will add the stream description to the structure that has each app info https://github.com/wwmm/pulseeffects/blob/9608eda5297b24bc45342fb954b9f456787f9b81/include/pulse_manager.hpp#L59. After that it will be just a matter of changing the user interface.

It seems that Pavucontrol gets those descriptions from the media.name property. @Mlocik97 run the command pactl list source-outputs while OBS is running and confirm if that is the case in you system.

The master branch has been updated with the media.name property:
Screenshot from 2020-08-24 11-37-55
As you can see not all audio players make good use of this property. Spotify for example just repeats the application name property in the media name. In these cases I am hiding the media label.

I did a quick test with these labels in the same line and right aligned but it seemed weird. And as the media name can be large it seemed better to give it its own line.

Good to see the description, but I don't like the interface. I'll try to change it and post here a preview with a better disposition if I'll manage to find one.

I think, switch can be at left, and after text, so it's alligned

The description could be very long: in this case should be wrapped. There should be something in GTK to do that, I'll make some tests.

Edit: especially if it's combined with the title on the same line.

There should be something in GTK to do that

It is the ellipsize property. I have already enabled it.

The mpv description in the image above is long but not long enough to trigger ellipsize when the label has a line only for it. If you place that label somewhere else GTK will cut part of it automatically.

Schermata del 2020-08-24 18-59-06

I'd like to test with the description hided, but don't have Spotify.

What do you think of this disposition? @wwmm @Mlocik97-issues

What do you think of this disposition?

I think it is better than before.

The fact the most apps do not put the media name to good use is disappointing. But there is nothing we can do about it.

Lollypop is another player that shows the media name like mpv. Of the apps I have installed Spotify seems to be the only one copying the app name to the media name.

I'll try to install Spotify to see how it shows with the description hided.

With description:

Schermata del 2020-08-24 20-03-17

Without:

Schermata del 2020-08-24 20-12-39

I will make to pull request.

it looks really nice

It seems that Pavucontrol gets those descriptions from the media.name property. @Mlocik97 run the command pactl list source-outputs while OBS is running and confirm if that is the case in you system.


pactl list source-outputs

mlocik97@mlocik97-G5-5590:~$ pactl list source-outputs
Source Output #0
    Driver: protocol-native.c
    Owner Module: 12
    Client: 17
    Source: 2
    Sample Specification: float32le 2k 44100Hz
    Channel Map: front-left,front-right
    Format: pcm, format.sample_format = "\"float32le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
    Corked: 谩no
    Mute: nie
    Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
            balance 0,00
    Buffer Latency: 0 usec
    Source Latency: 0 usec
    Resample method: copy
    Properties:
        application.id = "com.github.wwmm.pulseeffects.sinkinputs"
        media.name = "Record Stream"
        application.name = "PulseEffects"
        native-protocol.peer = "UNIX socket client"
        native-protocol.version = "32"
        application.icon_name = "pulseeffects"
        application.process.id = "6218"
        application.process.user = "mlocik97"
        application.process.host = "mlocik97-G5-5590"
        application.process.binary = "pulseeffects"
        application.language = "sk_SK.UTF-8"
        window.x11.display = ":0"
        application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
        application.process.session_id = "2"
        module-stream-restore.id = "source-output-by-application-id:com.github.wwmm.pulseeffects.sinkinputs"

Source Output #3
    Driver: protocol-native.c
    Owner Module: 12
    Client: 23
    Source: 0
    Sample Specification: s16le 2k 44100Hz
    Channel Map: front-left,front-right
    Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
    Corked: nie
    Mute: nie
    Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
            balance 0,00
    Buffer Latency: 81179 usec
    Source Latency: 0 usec
    Resample method: nedostupn茅
    Properties:
        application.name = "OBS"
        application.icon_name = "obs"
        media.role = "production"
        media.name = "Zvuk plochy"
        native-protocol.peer = "UNIX socket client"
        native-protocol.version = "32"
        application.process.id = "29914"
        application.process.user = "mlocik97"
        application.process.host = "mlocik97-G5-5590"
        application.process.binary = "obs"
        application.language = "sk_SK.UTF-8"
        window.x11.display = ":0"
        application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
        application.process.session_id = "2"
        module-stream-restore.id = "source-output-by-media-role:production"

Source Output #4
    Driver: protocol-native.c
    Owner Module: 12
    Client: 23
    Source: 1
    Sample Specification: s16le 2k 44100Hz
    Channel Map: front-left,front-right
    Format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
    Corked: nie
    Mute: nie
    Volume: front-left: 65536 / 100% / 0,00 dB,   front-right: 65536 / 100% / 0,00 dB
            balance 0,00
    Buffer Latency: 0 usec
    Source Latency: 238 usec
    Resample method: nedostupn茅
    Properties:
        application.name = "OBS"
        application.icon_name = "obs"
        media.role = "production"
        media.name = "Mik/Aux"
        native-protocol.peer = "UNIX socket client"
        native-protocol.version = "32"
        application.process.id = "29914"
        application.process.user = "mlocik97"
        application.process.host = "mlocik97-G5-5590"
        application.process.binary = "obs"
        application.language = "sk_SK.UTF-8"
        window.x11.display = ":0"
        application.process.machine_id = "32f363c7e88247aa9d69a67980517743"
        application.process.session_id = "2"
        module-stream-restore.id = "source-output-by-media-role:production"

so yes, that should help...

btw. sry for late reply, but these days, I'm "remodeling"/repairing the house

Unless I have missed something this issue is solved.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

servimo picture servimo  路  7Comments

Deividhp13 picture Deividhp13  路  3Comments

ZeroDot1 picture ZeroDot1  路  7Comments

Mlocik97-issues picture Mlocik97-issues  路  5Comments

mbb78 picture mbb78  路  3Comments