Opened 13 years ago

Closed 13 years ago

#2307 closed enhancement (fixed)

Add "libvisual" support to MythMusic

Reported by: mythtv@… Owned by: paulh
Priority: minor Milestone: 0.21
Component: mythmusic Version: head
Severity: medium Keywords:
Cc: Ticket locked: no

Description

The attached archive libvisualplugin-0.1.tgz contains a first pass at adding support for "libvisual" music visualisation plugins to MythMusic. This version isn't ready for inclusion in SVN yet. I merely wish to see if this is something that would be of interest to anyone before I attempt to tackle some of the other integration issues...

Contents of archive

  • libvisualplugin.patch - patch file covering modifications to existing files
    • .\configure - add an "--enable-visual" configuration option.
    • .\mythmusic\mythmusic\mythmusic.pro - add two new files to the build.
    • .\mythmusic\mythmusic\mainvisual.cpp - register factory class.
  • .\mythmusic\mythmusic\libvisualplugin.h - new header file.
  • .\mythmusic\mythmusic\libvisualplugin.cpp - new source file.

Prerequesits for patch

The patch comes pre-configured to use the ProjectM libvisual plugin, this requires:-

Installation Instructions

  • Unpack libvisualplugin-0.1.tgz archive to the root of the mythplugins folder (this should place the new source files in the correct place.
  • Apply the libvisualplugin.patch
  • Add --enable-sdl and --enable-visual to the options supplied to the "configure" script.
  • Build as normal.

Once installed, simply add "LibVisual?" to the list of visualisation plugins listed in the MythMusic "Player Settings" page of setup.

The configuration portion of this patch is yet to be done. If you wish to change the libvisual plugin that is employed then this may be achieved by editing the libvisualplugin.cpp file, modifying the PluginName? constant on line 11 (a list of available libvisual plugins can be obtained by commenting in the code at line 40 of the file and checking the console when the LibVisual? plugin in loaded by MythMusic).

Disclaimer

I didn't really know what I was doing when I knocked this up. It's basically a munging of the MythGoom? code and the libvisual code from AmaroK http://amarok.kde.org/ . Hopefully it will work for you, if it doesn't let me know, but your guess may well be as good as mine ;-)

Attachments (3)

libvisualplugin-0.1.tgz (3.7 KB) - added by mythtv@… 13 years ago.
Archive containing libvisualplugin files.
libvisualplugin-0.2.tgz (3.8 KB) - added by mythtv@… 13 years ago.
libvisualplugin-0.3.tgz (3.8 KB) - added by mythtv@… 13 years ago.
Patch refresh against head revision 12786

Download all attachments as: .zip

Change History (10)

Changed 13 years ago by mythtv@…

Attachment: libvisualplugin-0.1.tgz added

Archive containing libvisualplugin files.

comment:1 Changed 13 years ago by Isaac Richards

Resolution: invalid
Status: newclosed

Discussions belong on the mailing lists, not trac.

comment:2 Changed 13 years ago by mythtv@…

Resolution: invalid
Status: closedreopened
Version: head

As suggested on the dev-list (and hopefully agreed) I’m re-opening this ticket with an updated patch…

This new patch depends on the patches attached to Ticket #2594 and Ticket #2595.

Changed 13 years ago by mythtv@…

Attachment: libvisualplugin-0.2.tgz added

comment:3 Changed 13 years ago by mythtv atsign babysimon dot co dot uk

This patch is great fun!

I had to modify it slightly to get it to compile - I had to move the mythcontext.h include before the libvisualplugin.h one in libvisualplugin.cpp, otherwise I get:

/usr/include/mythtv/mythsocket.h:27: error: default argument for parameter of type 'MythSocketCBs*' has type 'void*'

I'm using g++ (GCC) 4.1.2 20060901 (prerelease) (Debian 4.1.1-13).

comment:4 Changed 13 years ago by wilhelm.eger@…

I get this with current svn:

libvisualplugin.cpp: In constructor `LibVisualPluginFactoryFactory::LibVisualPluginFactoryFactory?()': libvisualplugin.cpp:239: Fehler: es kann kein Objekt des Typs »LibVisualPluginFactory?« belegt werden libvisualplugin.cpp:239: Fehler: denn die folgenden virtuellen Funktionen sind abstrakt: mainvisual.h:143: Fehler: virtual const QString& VisFactory::description() const mainvisual.h:144: Fehler: virtual VisualBase?* VisFactory::create(MainVisual?*, long int) make[2]: * [libvisualplugin.o] Fehler 1 make[2]: Leaving directory `/root/mythtv/trunk/mythplugins/mythmusic/mythmusic' make[1]: * [sub-mythmusic] Fehler 2 make[1]: Leaving directory `/root/mythtv/trunk/mythplugins/mythmusic' make: * [sub-mythmusic] Fehler 2

In English:

Failure: Object »LibVisualPluginFactory?« can't be definded because the following functions are not abstract (virtual?) mainvisual.h:143: Fehler: virtual const QString& VisFactory::description() const mainvisual.h:144: Fehler: virtual VisualBase?* VisFactory::create(MainVisual?*, long int)

Is this a bug or am I missing some thing?

Recent gentoo with gcc-Version 3.4.6 (Gentoo 3.4.6-r1, ssp-3.4.5-1.0, pie-8.7.9)

Changed 13 years ago by mythtv@…

Attachment: libvisualplugin-0.3.tgz added

Patch refresh against head revision 12786

comment:5 in reply to:  4 Changed 13 years ago by mythtv@…

Replying to wilhelm.eger@uni-jena.de:

I get this with current svn:

Failure: Object »LibVisualPluginFactory?« can't be definded because the following functions are not abstract (virtual?) mainvisual.h:143: Fehler: virtual const QString& VisFactory::description() const mainvisual.h:144: Fehler: virtual VisualBase?* VisFactory::create(MainVisual?*, long int)

Is this a bug or am I missing some thing?

I believe that the errors that you are receiving are consistent with not having previously applied the patch attached to ticket #2595 (which in turn relies upon the patches attached to ticket #2594).

comment:6 Changed 13 years ago by paulh

Milestone: unknown0.21
Owner: changed from Isaac Richards to paulh
Status: reopenednew

comment:7 Changed 13 years ago by paulh

Resolution: fixed
Status: newclosed

(In [13269]) Add "libvisual" support to MythMusic.

If the option to add libvisual support is enabled in configure it allows MythMusic to use any visualizer supported by the libvisual library.

Any new visualizers added to your libvisual setup will automatically appear in MythMusic's list of available visualizers without having to do any recompiling of MythMusic. You just need to add them to the list of visuals you want MythMusic to use on the playback settings screen.

This adds libvisual as an optional dependency for MythMusic. You can choose to enable or disable libvisual support from the configure script. It's enabled by default if libvisual and SDL are found by configure. Add --disable-libvisual if don't want it.

This commit requires that you rerun the mythplugins ./configure script.

Closes #2307.

Note: See TracTickets for help on using tickets.