mixxxdj / mixxx

Mixxx is Free DJ software that gives you everything you need to perform live mixes.
http://mixxx.org
Other
4.38k stars 1.26k forks source link

Qt5 affects abilty to find window in AltaCast #9327

Open mixxxbot opened 2 years ago

mixxxbot commented 2 years ago

Reported by: wunjo Date: 2018-06-04T22:56:09Z Status: In Progress Importance: Low Launchpad Issue: lp1775095 Tags: broadcast, qt5 Attachments: Qt5_Find_Window_AltaCast.PNG, output_file.txt, [Cyrillic in questinmarks](https://bugs.launchpad.net/bugs/1775095/+attachment/5150413/+files/Cyrillic in questinmarks), output_file.txt, [library can't print player do](https://bugs.launchpad.net/bugs/1775095/+attachment/5150881/+files/library can't print player do), [AltaCast printscreen.PNG](https://bugs.launchpad.net/bugs/1775095/+attachment/5150902/+files/AltaCast printscreen.PNG)


After the change to Qt5 I can't grab metadata from the mainwindow of Mixxx no more using AltaCast for streaming. Windows 7-64

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-04T22:56:09Z Attachments: Qt5_Find_Window_AltaCast.PNG

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-05T16:46:18Z


We are currently implementing more metadata output. I consider trading the window title as an ugly havk. Which other interfaces can be used by AltaCast? To which one do you like to switch for Mixxx 2.2?

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-06T14:25:27Z


Does Altacast let you use a file to grab the metadata? Or can it use the MPRIS interface?

mixxxbot commented 2 years ago

Commented by: Be-ing Date: 2018-06-06T15:10:36Z


Why do you use a separate program to broadcast instead of broadcasting from Mixxx?

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-06T20:45:40Z


@ Daniel; grabbing is ugly, but it did the job
@ David; a plain text file can be used, MPRIS is unknown to me
@ Be; I'm using Stereotool for compessing/expanding/enhancing etc. Routed by VBCable. DSP support would also be useful.

Thanks for your support!

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-06T21:05:45Z


@ David; found a Python script for MPRIS in Clementine, ok for Linux, Windows don't use dbus

https://github.com/clementine-player/Clementine/wiki/Controlling-Clementine-from-the-commandline-with-DBus-and-MPRIS

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-06T21:14:19Z


Could you file a separate bug for you effect request. Maybe we have already a LV2 solution in upcoming Mixxx 2.2 or we could integrate your needs natively...

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-07T10:00:07Z


@Peter, what format does the file have to be?

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-08T10:13:36Z Attachments: output_file.txt


@ David I formerly used Sam Broadcaster, however they took another road. They use a .txt file, see attachment

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-08T10:16:59Z


@ Daniel I will :-)

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-08T13:52:03Z


Can you provide a file with non ASCII characters like umlauts or Cyrillic cjaracters as well?

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-08T14:08:37Z


For writing to the file, I use QTextStream's operator << QString, which encodes the string with the locale codec. So if the author or the title are in Unicode I don't see a reason for it to not print non ASCII characters: http://doc.qt.io/qt-5/qtextstream.html#operator-lt-lt-12
mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-08T15:25:24Z


If the local8bit codec is latin1, you cannot print Cyrillic titles. I am not sure what is the default 8 bit codec in windows there is also cp848 or such things. I know we had similar issues with m3u playlists. They are defined as latin1. Because that does not work for any track, we have a successor that is m3u8 Wich is utf8. Unfortunately the reader app cannot or hard distinguish utf8 from Latin one. If it fails, you get the famous ü. If this is an issue, we need a preference option for the character encoding.

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-08T22:17:40Z Attachments: [Cyrillic in questinmarks](https://bugs.launchpad.net/mixxx/+bug/1775095/+attachment/5150413/+files/Cyrillic in questinmarks)


SAM can print umlauts but can't print Cyrillic. In Cyrillic I get a string of questionmarks see attatchment

btw Sam uses an inputfile too, containing: $song.artist$ - $song.title$ 
mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-09T12:05:32Z


@Daniel, we an allow for the user to set the codec, no problem. However, if broadcast apps can read UTF-8, I think we should prefer that, because it allows for every language.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-09T14:51:41Z


Yes, right. I am only afraid that the majority of windows apps expect latin1. And I am also afraid that the evetage user does not know the difference between latin1 and utf8. The issue is that it can be only identified at runtime, when suddenly an umlauts track is played. This might be too late. How about add a test mode, sending a fake umlauts track and ask the user if it is decided right.

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-09T15:58:45Z


Maybe, but before all of that, shouldn't we need to know which encoding the broadcast app uses? It doesn't matter if the title is not displayed correctly if we don't know how to do it.

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2018-06-09T16:26:46Z


Yes, right. It is not utf8, because of the question marks in Peters file.

Peter: can you attach an other SAM example with an umlauts title and €.

Critical are these as well: €‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ.

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-10T13:25:01Z Attachments: output_file.txt


@ Daniel The question marks are added by SAM when importing in its library I made a tag with the string provided by you, the library (mySQL) can't print them, but the payers do and also the output-file do. Two attachments

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-10T13:27:02Z Attachments: [library can't print player do](https://bugs.launchpad.net/mixxx/+bug/1775095/+attachment/5150881/+files/library can't print player do)


screenshot SAM

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-10T13:56:03Z Attachments: [AltaCast printscreen.PNG](https://bugs.launchpad.net/mixxx/+bug/1775095/+attachment/5150902/+files/AltaCast printscreen.PNG)


btw forgot most important one :-) see attatchment

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-06-18T18:22:40Z


We can summarize that AltaCast users are probably Western users. For Windows I was happy to find a free gui-based streamer with metadata capabilities, they are rare. Utf8 will cover most of its users.

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-06-26T15:44:06Z


I would like to test my code with a streaming service that allows files to input metadata. However, AltaCast is for Windows and I don't want to subscribe to SAM Broadcaster. Is there anything for Linux that's free / open source?

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-07-07T22:35:36Z


Hi David, I'm back from vacation.

Rivendell is an open source Linux radio automation app. However, I have no experience with it.
As a free streaming service in Windows I use StreamerP2P; streamerp2p.com - You can download the broadcast version there. Feed it with AltaCast using your testbuild for Windows. 
I hope this can help you out?
mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-07-10T21:41:27Z


https://github.com/mixxxdj/mixxx/pull/1675 Seen your progress, however it's most abracadabra to me. Thanks!

mixxxbot commented 2 years ago

Commented by: davidhm Date: 2018-07-10T21:55:18Z


Is there anything for Linux? The file listener is implemented and the only thing left is to test it.

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-07-11T06:43:50Z


I'll try to find something in vbox, takes some time however

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-07-11T16:07:09Z


DarkIce must do the same as AltaCast in Windows however no metadata support. https://github.com/rafael2k/darkice IceCast does have such function, though it is an audio server https://icecast.org/docs/icecast-trunk/admin_interface/ Ices is an input module for IceCast, it can handle metadata https://icecast.org/ices/docs/ices-2.0.1/inputs.html

Maybe you can send me a link to a windows testbuild to test it?

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-07-11T21:09:11Z


Butt will also do the job http://danielnoethen.de/manual.html see 6 streaming section

some more see http://www.icecast.org/apps/

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2018-09-27T18:22:26Z


in progress see; https://github.com/mixxxdj/mixxx/pull/1675
mixxxbot commented 2 years ago

Commented by: daschuer Date: 2019-09-14T23:29:53Z


The original issue can be fixed by setting a different Window Class than the default.

The default is defined here: https://github.com/qt/qtbase/blob/c7b3c5a082d9099e7995006f033c3017bfa7f19c/src/plugins/platforms/windows/qwindowscontext.cpp#L533

I have no idea if we can change this afterwards.

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2019-12-16T23:11:27Z


<quote>The original issue can be fixed by setting a different Window Class than the default.</quote>

Indeed there are to many instances called Qt5QWindiwIcon, only one is the usable one.

some googling:

https://doc.qt.io/qt-5/qwindow.html#details

https://doc.qt.io/qt-5/qstring.html

Hope someone can find a fix :-)

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2019-12-16T23:26:56Z


https://doc.qt.io/qt-5/qxmlstreamwriter.html could maybe useful

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2019-12-16T23:45:38Z


https://vitux.com/compiling-your-first-qt-program-in-ubuntu/ quite an challenge to me...

mixxxbot commented 2 years ago

Commented by: daschuer Date: 2019-12-17T07:17:04Z


Here is a pretty straight forward guide to build Mixxx on Linux. https://www.mixxx.org/wiki/doku.php/compiling_on_linux

If you are still struggling, I will help you out on https://mixxx.zulipchat.com/

In general this is a good start to read: ,https://mixxx.org/wiki/doku.php/bugfix_workflow

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2020-06-01T10:02:10Z


Issue solved probably during recent changes in QT name assignment for windows. There are now only two same assignments. Preferences and the main window.

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2020-06-11T21:14:23Z


I was a bit to eager. It wasn't fixed in the Deere skin, there were 5 same named windows...

mixxxbot commented 2 years ago

Commented by: wunjo Date: 2020-06-11T21:30:07Z


I'm using the Tango skin on mixxx-2.4.0-alpha-pre-master-git7412-release-x64, win 10 pro

It's about the Window Class Qt5QWindowIcon. If there is one instace of it, it is found by Altacast Also checked Shade skin, is ok, Latenight ok too.