Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. General talk
  3. Showcase
  4. AIVCtrl a new control point based on Qt5 to manage UPnP (DLNA) media severs and renderers
QtWS25 Last Chance

AIVCtrl a new control point based on Qt5 to manage UPnP (DLNA) media severs and renderers

Scheduled Pinned Locked Moved Showcase
8 Posts 3 Posters 4.0k Views
  • 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.
  • ptstreamP Offline
    ptstreamP Offline
    ptstream
    wrote on last edited by
    #1

    Re: [QtUPnP a C++ framework](based on QT5)

    After publishing QtUPnP with its test program "chupnp", I published AIVCtrl.
    AIVCtrl is a control point to browse media servers and to drive media renderer. Of course it is based on QtUPnP library.
    Its orientation is user, chupnp was developer.
    AIVCtrl is built like a phone or a remote control. It is similar at a player on mobil systems. The main functionalities are:

    • Discover and show servers and renderers.
    • Browse the servers content.
    • Manage renderers like a player (volume, seek, mute, suffle, repeat, cover, previous, next...).
    • Manage audio, image, video playlists and favorites.
    • Verify playlist elements.
    • And a lot of another things.

    In the same way as the framework QtUPnP, it is based on QT5 and use only QT API, no other system dependent API.
    The source codes are available at https://github.com/ptstream/QtUPnP.

    To test easily AIVCtrl, some installers are available at: https://drive.google.com/drive/folders/1buJLY6XTpp-wZo90_Iixgs8oof-Ij1yu?usp=sharing

    - Windows 7 to 10: Download install-AIVCtrl-100.exe and double click on it to install.
      Tested with Windows 10. To use Vista the application must be rebuilt with Qt 5.6.
      
    - Kubuntu and Ubuntu: Download aivctrl-1.0.0-beta-1.deb double click on it to install.
      Tested with Kubuntu 17.10, and Ubuntu 16.04 LTS (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl).
      
    - All Linux: Download aivctrl-1.0.0-beta-1.zip for a manual installation.
      Not tested (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl).
      
    - Documentation in English and French.
    

    I look forward to your remarks, test results...
    Good luck.

    1 Reply Last reply
    5
    • ptstreamP Offline
      ptstreamP Offline
      ptstream
      wrote on last edited by
      #2

      A new version of AIVCtrl is available. Installers can be downbloaded at: https://drive.google.com/drive/folde...yu?usp=sharing

      • Windows 7 to 10: Download install-AIVCtrl-101.exe and double click on it to install.
        Tested with Windows 10. To use Vista the application must be rebuilt with Qt 5.6.

      • Kubuntu and Ubuntu: Download aivctrl-1.0.1.deb double click on it to install.
        Tested with Kubuntu 17.10, and Ubuntu 16.04 LTS (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl).

      • All Linux: Download aivctrl-1.0.1.zip for a manual installation.
        Not tested (for this, use preferably /user/share/aivctrl/aivctrl.run.desktop to launch AIVCtrl).

      • Documentation in English and French.

      I look forward to your remarks, test results...
      Have a nice day.

      1 Reply Last reply
      3
      • VRoninV Offline
        VRoninV Offline
        VRonin
        wrote on last edited by
        #3

        Might be worth noticing license is GPL

        "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
        ~Napoleon Bonaparte

        On a crusade to banish setIndexWidget() from the holy land of Qt

        ptstreamP 1 Reply Last reply
        1
        • K Offline
          K Offline
          Konstantin Tokarev
          wrote on last edited by
          #4

          FWIW, I'm using minissdp daemon from BSD-licensed miniupnp project [1]. It runs independently from the application and keeps track of all UPnP devices in the network, and then it's queries via IPC from main application (I've embedded slightly modified part of miniupnpc client and use it as a library).

          Benefits:

          • Permissive license
          • Mature, proven solution. Note that making quality implementation of SSDP protocol from scratch is not so easy task, it should not create excessive traffic and carefully track when discovered devices should be considered offline
          • Process separation allows to manipulate minissdp daemon from console client, may be useful for debugging

          Drawbacks:

          • DLNA layer is not implemented, you need soap client (QtSoap is sufficient) to interact with device, and do some HTTP requests and XML parsing (not that complex if your usage of UPnP/DLNA is not sofisticated)

          [1] https://github.com/miniupnp/miniupnp/tree/master/minissdpd

          ptstreamP 1 Reply Last reply
          2
          • K Konstantin Tokarev

            FWIW, I'm using minissdp daemon from BSD-licensed miniupnp project [1]. It runs independently from the application and keeps track of all UPnP devices in the network, and then it's queries via IPC from main application (I've embedded slightly modified part of miniupnpc client and use it as a library).

            Benefits:

            • Permissive license
            • Mature, proven solution. Note that making quality implementation of SSDP protocol from scratch is not so easy task, it should not create excessive traffic and carefully track when discovered devices should be considered offline
            • Process separation allows to manipulate minissdp daemon from console client, may be useful for debugging

            Drawbacks:

            • DLNA layer is not implemented, you need soap client (QtSoap is sufficient) to interact with device, and do some HTTP requests and XML parsing (not that complex if your usage of UPnP/DLNA is not sofisticated)

            [1] https://github.com/miniupnp/miniupnp/tree/master/minissdpd

            ptstreamP Offline
            ptstreamP Offline
            ptstream
            wrote on last edited by ptstream
            #5

            @Konstantin-Tokarev
            Thanks Konstantin for your remarks.
            Indeed, I examined minissdp. I may have missed something but I did not find anything about Apple systems.
            In fact, the purpose of this library is to create a simple wrapper for UPnP/AV control point (SSDP, SOAP, UPnP Eventing...) totally autonomous. QtUPnP use only standard QT libararies and no other code.
            I agree with you making quality implementation of SSDP protocol from scratch is not so easy task. It is true for SOAP and even more for the AV part of UPnP/AV due to the strange implementation of certain UPnP/AV servers and renderers.

            1 Reply Last reply
            0
            • VRoninV VRonin

              Might be worth noticing license is GPL

              ptstreamP Offline
              ptstreamP Offline
              ptstream
              wrote on last edited by
              #6

              @VRonin
              Thanks VRonin for your reply.
              My knowledge of licenses and English is very poor.
              Maybe I made a mistake choosing GPL?

              1 Reply Last reply
              0
              • VRoninV Offline
                VRoninV Offline
                VRonin
                wrote on last edited by
                #7

                In a nutshell:
                GPL: can only be used in open source and free projects
                LGPL: can also be used in closed source and/or commercial products

                "La mort n'est rien, mais vivre vaincu et sans gloire, c'est mourir tous les jours"
                ~Napoleon Bonaparte

                On a crusade to banish setIndexWidget() from the holy land of Qt

                1 Reply Last reply
                1
                • ptstreamP Offline
                  ptstreamP Offline
                  ptstream
                  wrote on last edited by
                  #8

                  A new version of QtUPnP and AIVCtrl are now available (version 1.1.2).
                  The major improvements are:

                  • New system compatibility

                    • Raspberry PI 3 (tested with Rasbian Stretch).
                    • MacOS.
                  • Better devices discovery.

                    • Save the device list and try to restore it.
                    • Limit the subscription at a subset of services to limit the network trafic.

                  Of course the source codes are available at https://github.com/ptstream/QtUPnP.
                  To test easily AIVCtrl, the installers are available at: https://drive.google.com/drive/folders/1buJLY6XTpp-wZo90_Iixgs8oof-Ij1yu?usp=sharing in English and French.

                  I look forward to your remarks, test results...
                  Have a nice day.

                  1 Reply Last reply
                  2

                  • Login

                  • Login or register to search.
                  • First post
                    Last post
                  0
                  • Categories
                  • Recent
                  • Tags
                  • Popular
                  • Users
                  • Groups
                  • Search
                  • Get Qt Extensions
                  • Unsolved