Open Dual01 opened 2 years ago
Hi, I would have a look at ohPipeline/OpenHome/Av/Tests/TestMediaPlayer.cpp to see how is invoked ProtocolFactory::NewTidal
Thanks for this valuable hint. However, my programming skills in C++ are too low in order to get this implemented. Any help is appreciated. Dieter
ok noted, i'll check next week
Hi, I've checked and were able to build with Tidal adapting Exemple.cpp but now I have an issue to connect to Tidal As ProtocolFactory::NewTidal arguments changed I have some difficulties to understand the signification of the arguments, do some have some informations to share regarding : appClientId, appClientSecret, apps,
This is what I found: This seems to be related to the Tidal OAUTH2 login procedure. The client /secret combination allows the app to access the tidal web service (homepage) where the user can enter his login data. The client id and secret combination has nothing to do with the users TIDAL account. I found "It is the authorization to use a specific REST API to access the TIDAL Web services (for instance: user login, get list of new tracks, get list of own playlists, get a stream URL to play a track/video, and so on)". There are many different id/secret combinations for the TIDAL API because there are a lot of devices which are able to play TIDAL music. The API is documented here: https://github.com/Fokka-Engineering/TIDAL/wiki.
When I compile ohplayer 1.32 on an RPI, I get the several errors:
make -f Makefile.raspbian make[1]: Entering directory '/home/dietpi/ohPlayer/linux' g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c ConfigGTKKeyStore.cpp -o raspbian/objs/ConfigGTKKeyStore.o g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c RamStore.cpp -o raspbian/objs/RamStore.o g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c Libav.cpp -o raspbian/objs/Libav.o g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c Volume.cpp -o raspbian/objs/Volume.o g++ -c -Wall -std=c++0x -I/usr/include/glib-2.0 -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include -DTARG_ARCH=Linux-armhf -fstack-protector -fstack-check -DDEFINE_LITTLE_ENDIAN -I../dependencies/Linux-armhf/ohMediaPlayer/include -I../dependencies/Linux-armhf/ohNetmon/include -I../dependencies/Linux-armhf/openssl/include -I../dependencies/Linux-armhf/ohNetGenerated-Linux-armhf-Release/include/ohnet/OpenHome/Net/Core -I../dependencies/Linux-armhf/ohNet-Linux-armhf-Release/include/ohnet -c ExampleMediaPlayer.cpp -o raspbian/objs/ExampleMediaPlayer.o In file included from ExampleMediaPlayer.cpp:25: ExampleMediaPlayer.h: In function ‘OpenHome::TBool OpenHome::Av::CompareIPv6Addrs(TIpAddress, TIpAddress)’: ExampleMediaPlayer.h:55:38: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] && memcmp((TByte)addr1.iV6[0], (TByte)addr2.iV6[0], 16) == 0; ^ ExampleMediaPlayer.h:55:60: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast] && memcmp((TByte)addr1.iV6[0], (TByte)addr2.iV6[0], 16) == 0; ^ ExampleMediaPlayer.cpp: In member function ‘void OpenHome::Av::ExampleMediaPlayer::RegisterPlugins(OpenHome::Environment&)’: ExampleMediaPlayer.cpp:331:58: error: no matching function for call to ‘OpenHome::Media::ProtocolFactory::NewTidal(OpenHome::Environment&, OpenHome::Brn, OpenHome::Av::MediaPlayer&)’ iMediaPlayer)); ^ In file included from ExampleMediaPlayer.cpp:6: ../dependencies/Linux-armhf/ohMediaPlayer/include/OpenHome/Media/Protocol/ProtocolFactory.h:39:22: note: candidate: ‘static OpenHome::Media::Protocol OpenHome::Media::ProtocolFactory::NewTidal(OpenHome::Environment&, OpenHome::SslContext&, const OpenHome::Brx&, const OpenHome::Brx&, const OpenHome::Brx&, std::vector&, OpenHome::Av::IMediaPlayer&)’
static Protocol* NewTidal(Environment& aEnv, SslContext& aSsl, const Brx& aPartnerId, const Brx& aClientId, const Brx& aClientSecret, std::vector& aAppDetails, Av::IMediaPlayer& aMediaPlayer);
^
~~~ ../dependencies/Linux-armhf/ohMediaPlayer/include/OpenHome/Media/Protocol/ProtocolFactory.h:39:22: note: candidate expects 7 arguments, 3 provided make[1]: [Makefile.raspbian:115: raspbian/objs/ExampleMediaPlayer.o] Error 1 make[1]: Leaving directory '/home/dietpi/ohPlayer/linux' make: [Makefile:28: raspbian] Error 2Any help would be greatly appreciated. Best regards Dieter