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

Integration of ClemRemote ? #595

Closed
mbruel opened this issue Nov 20, 2020 · 9 comments
Closed

Integration of ClemRemote ? #595

mbruel opened this issue Nov 20, 2020 · 9 comments

Comments

@mbruel
Copy link

mbruel commented Nov 20, 2020

Hi,
Is strawberry still pulling from Clementine or is it a separate project now?
I'm finishing ClemRemote, I hope to release it on iOS and Android store by the end of the month or early December.
How far from Clementine are you? I don't see the networkremote folder in src. Are you not using it?

@jonaski
Copy link
Member

jonaski commented Nov 20, 2020

It's a separate project, and have been for almost 3 years.
Although the GUI looks very much the same, there are huge changes to the player and GStreamer engine code and many other things, there are also changes to the collection/library and playlist code, but that's more similar. There are many bug fixes and improvements to the code including complete compatibility with Qt 6, too much to summarize. The internet and the lyrics provider stuff is completely changed just to mention some of it. Too much to go into in details as the project as been in continuous development for the past 3 years. There are too many blockers for merging the project back into Clementine, so that's unlikely to happen now that it's gotten this far, the main probably is that the main author and most of the contributors have left, and it lacks governance, but there are also several specific code changes, some of the changes I've done to gstreamer engine code and the backend settings.
The networkremote code isn't included as we didn't have a network remote anyway, it was pretty pointless, and the codebase is large enough, while there are few contributors it was necessary to strip some things I either didn't want or didn't have time to maintain.
I e-mailed you almost a month ago if you wanted to adapt the networkremote for Strawberry. We could use one, but I don't have time or interest in it myself. But that changes if someone else want to work on it, and not only create the remote, but continue to maintain the codebase and also deal with bugs and answer support questions.
It's not too much work to bring back the networkremote code. But you need to rebrand the remote for Strawberry, so that it's published as Strawberry Remote. The QR code in the settings can point to your Android / Apple remote.
What I specifically like about your remote is that it's in C++/Qt instead of Java.
So if you want to adapt the remote for strawberry I can add the project to the organization and give you access.

@mbruel
Copy link
Author

mbruel commented Nov 20, 2020

Hi Jonas,

I didn't see any email from you, what was the title, I'll look for it...

Great to hear you're ready for Qt6. Have you change all the signal/slot connection to functor? that's so horrible the old way... if you change the signatures, the connection is not updated...

You're saying you're not going to merge back into Clementine, my question was the opposite, if you were able to pull. I suppose not since you say you've done some core changes.

Yeah why not, I'm willing to port Clementine network remote interface if it's not too much work. I suppose it should be quite straight forward but I'll have to check before committing. Their implementation is not ideal, there is no real protocol with acknowledgement, it's UDP style using google protocol buffer. I guess it is sufficient on a local network where the packets arrive in good order. So basically, I wouldn't touch it and try to keep the exact same behaviour than in Clementine (with the changes I've made)

I could then maintain this part but I'm not interested to help for the rest as I just don't have the time to dig the other parts of the code.

Yep, the QR code will point in Apple/Android/Windows/Linux remote. Hopefully it will also in Clementine but as you said, they're really not reactive. I don't understand, I got some comments on my pull requests but as soon as I asked for some kind of road map for their release the communication stopped... oO

I'm specialized professionally in C++/Qt. I don't like Java.... My last job was to port a Java app to C++, the result was more than twice faster! I've done ClemRemote to learn QML and be able to make all my apps with a native look and feel on mobiles and tablets. In fact QML is quite fun :)

Anyway, great to have a response so fast, drop me an email for the future discussions.
Good evening!

Edit: I've also done ClemRemote, cause I'll use it everyday to control my music at home ;)

@jonaski
Copy link
Member

jonaski commented Nov 20, 2020

The subject of the e-mail was just "Strawberry".
But you are not the only one with a Gmail address that have not received my e-mails. I run a private e-mail server and have reverse lookup, DMARC, SPF and DKIM set up correctly, it passes all tests when I check it on different sites, so I'm not sure why. I recently e-mailed a company where I ordered something, and they did not respond, and I found through their MX records they used Google, luckily they had a web form I could use. Anyway. I'll try to resend the e-mail without HTML.

@mbruel
Copy link
Author

mbruel commented Nov 20, 2020

ah yeah it arrives in Spam...

so the previous one was automatically deleted after 30 days...
A friend of mine is also running is own server and has the same issue. I've started setting up mine and I know it will be the same shit... Basically I think they put those email in Spam if you use let's encrypt. Maybe with a non free service it won't be the same.
I'm going to flag your mail as not spam and normally all the others will arrive in my inbox. The problem is the first email...

@jonaski
Copy link
Member

jonaski commented Nov 20, 2020

I only use the new methods for signal/slots in a few places where I use lambdas.
It still works with the old method in Qt 6. But the old method is probably more bug-prone.
There isn't too much going on with development in Clementine, so pulling changes from Clementine isn't necessary most of the time. But I have occasionally picked up bug fixes and improvements, but there rarely are any.

@mbruel
Copy link
Author

mbruel commented Nov 20, 2020

arf... the old method sucks... not bug-prone but headaches to find out that a connection is not working cause you added an argument to both your signal and slot methods BUT didn't update the connection. I had this on my work on Clementine...
I've switched to functors as soon as Qt made them and believe it's much better. It could have been a little hassle when you've several signatures but nowadays it's alright.
I hope for other projects, you won't keep this old method.
let's continue by email ;)

@mbruel mbruel closed this as completed Nov 20, 2020
@shaun-ba
Copy link

Guys, don't give up on this @jonaski I don't see why you find network remote pointless, is there another solution for what I'm hoping to use Strawberry for?

I'm already using it on my Linux desktop, and I have to say with my M400 DAC it sounds better that when using Roon.

Therefore I wanted to install super lightweight OS on an Intel NUC, and install Strawberry there so I can output to another DAC in my living room.

Because there is no video out here, I would have to use a mobile or something similar, so I could really use the network feature from Clem.

Alternatively, I guess I could use some kind of TV friendly OS and output via HDMI if you have any suggestions for one that Strawberry would work well with, seeing as I would be using a TV remote to control it

@fabianski7
Copy link

up to keep this issue open

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants