• Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Register
    • Login

    Building Strawberry in VS Code on OpenSUSE Leap 15.5

    Scheduled Pinned Locked Moved
    Development
    2
    14
    877
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • jonasJ
      jonas @athoopen
      last edited by

      @athoopen
      kdsingleapplication is available as a git submodule
      do: git submodule update --init --recursive

      1 Reply Last reply Reply Quote 0
      • athoopenA
        athoopen
        last edited by

        @jonas Thanks for the suggestion, however I just finished setting up thumbelweed virtual machine. Used the wiki to get all packages and the did the clone (as suggested) followed by the build instructions.
        However this gives an error related to TagLib:

        ...
        ... previous lines deleted
        ...
        -- Performing Test HAVE_QX11APPLICATION
        -- Performing Test HAVE_QX11APPLICATION - Success
        CMake Warning at CMakeLists.txt:274 (find_package):
          By not providing "FindTagLib.cmake" in CMAKE_MODULE_PATH this project has
          asked CMake to find a package configuration file provided by "TagLib", but
          CMake did not find one.
        
          Could not find a package configuration file provided by "TagLib" (requested
          version 2.0) with any of the following names:
        
            TagLibConfig.cmake
            taglib-config.cmake
        
          Add the installation prefix of "TagLib" to CMAKE_PREFIX_PATH or set
          "TagLib_DIR" to a directory containing one of the above files.  If "TagLib"
          provides a separate development package or SDK, be sure it has been
          installed.
        
        
        -- Checking for module 'taglib>=1.11.1'
        --   Package 'taglib', required by 'virtual:world', not found
        CMake Error at /usr/share/cmake/Modules/FindPkgConfig.cmake:619 (message):
          The following required packages were not found:
        
           - taglib>=1.11.1
        
        Call Stack (most recent call first):
          /usr/share/cmake/Modules/FindPkgConfig.cmake:841 (_pkg_check_modules_internal)
          CMakeLists.txt:281 (pkg_check_modules)
        
        
        -- Configuring incomplete, errors occurred!
        
        

        Any tips and trics to overcome this ...
        Cheers,
        Arjan

        jonasJ 1 Reply Last reply Reply Quote 0
        • jonasJ
          jonas @athoopen
          last edited by

          @athoopen said in Building Strawberry in VS Code on OpenSUSE Leap 15.5:

          taglib

          Install libtag-devel

          1 Reply Last reply Reply Quote 0
          • athoopenA
            athoopen
            last edited by

            This post is deleted!
            1 Reply Last reply Reply Quote 0
            • athoopenA
              athoopen
              last edited by

              @jonas I could do with some help, I have added radio stations, it compiles with no error and the UI behaves as expected. However, if I want to listen to one of my stations it gives the error File not Found:

              ../ext/soup/gstsouphttpsrc.c(1687): gst_soup_http_src_parse_status (): /GstPlayBin3:pipeline-1-pipeline/GstURIDecodeBin3:uridecodebin3/GstURISourceBin:urisourcebin0/GstSoupHTTPSrc:souphttpsrc0: File Not Found (404), URL: https://icecast.omroep.nl/radio1-bb-mp3/, Redirect to: (NULL)
              

              Please note the ending / in the url. I have not added this in the code:

              << RadioChannel(source_, "NPO Radio 1", QUrl("https://icecast.omroep.nl/radio1-bb-mp3"))
              

              So somewhere strawberry adds a / to the url (at least that is my conclusion). But I just can´t find it 😠
              Can you shine a light on this and help me finding the location where the / gets added to the url?

              TIA,
              Arjan

              jonasJ 1 Reply Last reply Reply Quote 0
              • jonasJ
                jonas @athoopen
                last edited by

                @athoopen said in Building Strawberry in VS Code on OpenSUSE Leap 15.5:

                QUrl("https://icecast.omroep.nl/radio1-bb-mp3"

                I don't know. Does the same thing happen with Radio Paradise?
                I suggest to debug it, check if QUrl does it, if so it's a Qt bug.
                Check the radio_channels table if it's saved like that too.
                There is a function here that converts the URL: https://github.com/strawberrymusicplayer/strawberry/blob/dd6b9bb38d1ffe620ee938b44aefefc9e7938f38/src/engine/gstengine.cpp#L705
                Check if the URL is passed to GStreamer like that here: https://github.com/strawberrymusicplayer/strawberry/blob/dd6b9bb38d1ffe620ee938b44aefefc9e7938f38/src/engine/gstenginepipeline.cpp#L363

                Anyway, I don't think hard-coding radio streams in the source code like this is a good idea. Only API's like Soma.fm should be a "service", and radio paradise and some others could be part of a dataset that is included.
                It would be better to implement a future where users can add/remove channels in the radio view. We might have some channels available, but that could be a resource file in json format or similar if there isn't a web service to retrieve them from.

                1 Reply Last reply Reply Quote 0
                • athoopenA
                  athoopen
                  last edited by

                  Thanks @jonas ! My skills at C++ are not that great so debugging will probably become hard. The strange thing is radio paradise does not suffer from this.
                  With having hard-coded radio streams inside strawberry being a bad idea is something I fully agree on. However, looking how "Radio" is currently implemented, I just followed this way of implementing. I took Radio Paradise as an example/template.

                  It would be much better if strawberry would give the user a possibility to import (via a .m3u or .pls file???) radio station streams where strawberry would store them in its database and show them under "Radio".

                  I'll see if I can fix it, but don't count on it. If it fails, I'll (ab)use playlist to get my favorite radio stations into strawberry.

                  Thanks for your time and effort on this!
                  Arjan

                  jonasJ 1 Reply Last reply Reply Quote 0
                  • jonasJ
                    jonas @athoopen
                    last edited by

                    @athoopen
                    Radio Paradise is fixed so it uses the API now: https://github.com/strawberrymusicplayer/strawberry/commit/05381096aa47b04117254f09d5954c0b2ab801ff

                    1 Reply Last reply Reply Quote 1
                    • athoopenA
                      athoopen
                      last edited by

                      There is nothing wrong with the code, after I removed the db and restarted strawberry the radio stations where all working.

                      I cannot explain this since, in my opinion, the stations are hard coded in the code so why should the (also) be in the db.

                      Nevertheless, got it working now 👍

                      1 Reply Last reply Reply Quote 0
                      • athoopenA
                        athoopen
                        last edited by

                        @jonas I am currently digging into the code of radio streams. There is one function I do not understand, or better, what the use of it is. In src/core/song.cpp there is a function called "SourceFromURL" (app. at line 850).
                        What is the use of this? What goes "wrong" if the return value is incorrect?

                        Could you elaborate a little bit about this function?

                        I also for see a challenge. There are many stations/streams who use a CDN (example: streamtheworld.com). To distinguish between stations, you can't use the url (it's always streamtheworld.com). The difference is within the path.

                        Any thoughts about this?

                        TIA,
                        Arjan

                        jonasJ 1 Reply Last reply Reply Quote 0
                        • jonasJ
                          jonas @athoopen
                          last edited by

                          @athoopen said in Building Strawberry in VS Code on OpenSUSE Leap 15.5:

                          SourceFromURL

                          The SourceFromURL function is used to determine source from URL when importing playlists.

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post
                          Powered by NodeBB | Contributors