Guest - Testers are needed for the reworked CDateTime core component. See... https://forum.kodi.tv/showthread.php?tid=378981 (September 29) x
[LINUX] Keystrokes en virtual remotes
#1
Hello,

I'm working on an Linux service to control an external DAC and amplifier combined with an xbmc plugin and a DBUS messagebus in between. The base is working. A client is called from a script connected to keystrokes volume up and volume down through keyboard.xml. (I want all volume handling completely in amplifier and not in XBMC or OS)

Before I continue I need to know if there is a way to get keystrokes out of a virtual remote. Otherwise it's of no use. Keyboard.xml is not used for input devices not working with keystrokes. Virtual remotes seem to work with built-in functions.

Is there a way to execute the scripts (for volume up and volume down in this case) from a virtual remote instead of directly calling built-in functions?

I hope someone can give me direction.

THX for the great software!!!
Scores
Reply
#2
Hi Scores,

I also was thinking about this idea but didn't got to look into it yet.
My idea was to learn from the CEC related code, libcec and implement a service that could handle volume control and also accept other commands.
If you write a good library for XBMC that only handles communication with external daemon but not with the hardware (thus the external daemon would talk directly to the hardware via usb/i2c/websocket ...) then your code might be accepted to XBMC mainline.
Reply
#3
I found a project named rs232server (github). Maybe that project is of use for you :-)
This is a promising project with a deamon and DBUS implemented.

Still same issue AFAIK: volume actions in XBMC need to be replaced bij scripts at all times. I still havent figured out how to do that for virtual remotes.
Appcommand.xml or remote.xml do not seem to be the right place. However I still dont know how to use appcommand.

In the meantime I understood that virtual remotes can act very differently using keystrokes, using built-in functions, combinations of these.

Is there anyone who can point me in right direction concerning appcommand and/or how to get virtual remotes working with my scripts when built-in functions are used?
Reply
#4
Quote:(I want all volume handling completely in amplifier and not in XBMC or OS)

If this is your goal, it is conceptionally wrong handling this with scripts and built-in functions. You would need to create an interface and register a service into xbmc which can instruct audio engine not to handle volume control but signal this to an external service.
Reply
#5
Hi FernetMenta,

Thank you for your reply! :-)

I have been looking at if it's possible to use direct through/passthrough functionality. Passthrough however seems to be only for DTS and AC3. In that case there is still no volume control from within XBMC to external equipment possible with commands over USB/serial. Volume is ofcourse only a few of the commands to send over.
From XBMC you also want to eg. switch on and off equipement, switch inputs, etc.

Your suggestion sounds interresting, but would there a possibility to control external equipment through an service? Are there example services that you might know of in this direction?
More important, how can I instruct AE in general or signal volume control to an external device some way?


I'm really trying to get into XBMC for quite some time now and also into XBMC coding to make changes. But I agree that this isnt the way XBMC was made for. The more I get into XBMC the more respect I get for the great piece of software made.
I hope you or someone else can give me some hint to get going again :-))))

Thx in advance!

Scores
Reply
#6
Hi,

Can someone point me in a directions to create an interface, register a service into xbmc as FernetMenta explaines?
How can I instruct Audio Engine not to handle volume control?

Any help is welcome! :-)

Scores
Reply
#7
You are walking on a green field here, there is no design which easily can be expanded to your needs. First you need to develop a concept. There may be more than a single valid approaches.
This is not trivial because you need to touch more than one component.

Quote:How can I instruct Audio Engine not to handle volume control?

This code has to be written first. Currently a sink signals to AE that it can handle volume. In this case AE won't touch it but passes volume level through. But I think this behavior does not fit you requirements.
Reply
#8
Hi,

Thanx for your reply :-)

Green field: for sure ;-)
In the meantime I have seen a lot of people searching for controlling external devices, some of them in combination with direct through capabilities. This because they want to control volume in the external device. Direct through however is an option you can only choose in case of DTS and AC3 (correct me if I'm wrong). It would be a step further if I knew how to handle direct through in every situation.

A different wat of approaching is through a possibility to change volume actions into scriptactions like you do with keyboard.xml for keystrokes.
I hoped that appcommand.xml would let met change vol_up or vol_down into scripts. I havent found a way to do that with appcommand.
Do you happen to know something for that? Then it is possible in case of virtual remote usage to stil use scripts under a certain command.

Any help is appreciated!! :-)

Regards,
Scores.
Reply

Logout Mark Read Team Forum Stats Members Help
[LINUX] Keystrokes en virtual remotes0