Make visualisations optional.
Update issue #394 Status: Fixed There's now an ENABLE_VISUALISATIONS option that you can set to cmake with cmake -DENABLE_VISUALISATIONS=OFF, or with ccmake or cmake-gui.
This commit is contained in:
parent
15df3b90a3
commit
76f0803b81
39
3rdparty/libprojectm/CMakeLists.txt
vendored
39
3rdparty/libprojectm/CMakeLists.txt
vendored
@ -7,36 +7,27 @@ include(CheckCXXCompilerFlag)
|
||||
cmake_policy(SET CMP0005 OLD)
|
||||
|
||||
|
||||
OPTION (USE_DEVIL "Use devIL for image loading rather than the builtin SOIL library" OFF)
|
||||
|
||||
OPTION (USE_FBO "Use Framebuffer Objects for increased rendering quality. Disable this for OpenGL ES 1.x or if you are experiencing problems on older or poorly supported hardware." ON)
|
||||
|
||||
OPTION(USE_FTGL "Use FTGL for on-screen fonts (found on your system)" OFF)
|
||||
|
||||
OPTION (USE_GLES1 "Use OpenGL ES 1.x" OFF)
|
||||
|
||||
OPTION (USE_THREADS "Use threads for parallelization" OFF)
|
||||
|
||||
OPTION (USE_OPENMP "Use OpenMP and OMPTL for multi-core parallelization" ON)
|
||||
|
||||
OPTION (USE_NATIVE_GLEW "Use projectM's native implemention of GLEW." OFF)
|
||||
|
||||
OPTION (USE_CG "Use Cg for Pixel Shader support" OFF)
|
||||
|
||||
OPTION (BUILD_PROJECTM_STATIC "Build the projectM target library in the platform's native static (NOT shared) format." ON)
|
||||
|
||||
OPTION (DISABLE_NATIVE_PRESETS "Turn off support for native (C++ style) presets" OFF)
|
||||
OPTION (DISABLE_MILKDROP_PRESETS "Turn off support for Milkdrop (.milk / .prjm) presets" OFF)
|
||||
set(USE_DEVIL OFF)
|
||||
set(USE_FBO ON)
|
||||
set(USE_FTGL OFF)
|
||||
set(USE_GLES1 OFF)
|
||||
set(USE_THREADS OFF)
|
||||
set(USE_OPENMP ON)
|
||||
set(USE_NATIVE_GLEW OFF)
|
||||
set(USE_CG OFF)
|
||||
set(BUILD_PROJECTM_STATIC ON)
|
||||
set(DISABLE_NATIVE_PRESETS OFF)
|
||||
set(DISABLE_MILKDROP_PRESETS OFF)
|
||||
|
||||
ADD_DEFINITIONS(-DCMAKE_INSTALL_PREFIX="\\\"${CMAKE_INSTALL_PREFIX}\\\"")
|
||||
|
||||
if (USE_NATIVE_GLEW)
|
||||
ADD_DEFINITIONS(-DUSE_NATIVE_GLEW)
|
||||
SET(GLEW_SOURCES glew.h glew.c)
|
||||
SET(GLEW_LINK_TARGETS )
|
||||
SET(GLEW_LIBRARIES )
|
||||
else(USE_NATIVE_GLEW)
|
||||
SET(GLEW_SOURCES )
|
||||
find_library(GLEW_LINK_TARGETS NAMES glew GLEW glew32)
|
||||
find_library(GLEW_LIBRARIES NAMES glew GLEW glew32)
|
||||
endif(USE_NATIVE_GLEW)
|
||||
|
||||
SET(projectM_SOURCES projectM.cpp PCM.cpp Preset.cpp fftsg.cpp KeyHandler.cpp
|
||||
@ -150,10 +141,10 @@ else(MSVC)
|
||||
endif(MSVC)
|
||||
|
||||
if(BUILD_PROJECTM_STATIC)
|
||||
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} ${MATH_LIBRARIES} ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
|
||||
TARGET_LINK_LIBRARIES(projectM ${GLEW_LIBRARIES} ${MATH_LIBRARIES} ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
|
||||
else(BUILD_PROJECTM_STATIC)
|
||||
|
||||
TARGET_LINK_LIBRARIES(projectM ${GLEW_LINK_TARGETS} ${MATH_LIBRARIES} ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
|
||||
TARGET_LINK_LIBRARIES(projectM ${GLEW_LIBRARIES} ${MATH_LIBRARIES} ${FTGL_LINK_TARGETS} ${OPENGL_LIBRARIES} ${IMAGE_LINK_TARGETS} ${CG_LINK_TARGETS} ${PRESET_FACTORY_LINK_TARGETS})
|
||||
|
||||
endif(BUILD_PROJECTM_STATIC)
|
||||
|
||||
|
@ -107,6 +107,12 @@ if(NOT GETTEXT_XGETTEXT_EXECUTABLE)
|
||||
message(FATAL_ERROR "Could not find xgettext executable")
|
||||
endif(NOT GETTEXT_XGETTEXT_EXECUTABLE)
|
||||
|
||||
# Optional bits
|
||||
option(ENABLE_VISUALISATIONS "Use libprojectm visualisations" ON)
|
||||
if(ENABLE_VISUALISATIONS)
|
||||
add_subdirectory(3rdparty/libprojectm)
|
||||
endif(ENABLE_VISUALISATIONS)
|
||||
|
||||
# Subdirectories
|
||||
add_subdirectory(3rdparty/qtsingleapplication)
|
||||
add_subdirectory(3rdparty/qtiocompressor)
|
||||
@ -115,7 +121,6 @@ if (NOT APPLE)
|
||||
add_subdirectory(3rdparty/qxt)
|
||||
endif (NOT APPLE)
|
||||
add_subdirectory(3rdparty/universalchardet)
|
||||
add_subdirectory(3rdparty/libprojectm)
|
||||
add_subdirectory(tests)
|
||||
add_subdirectory(dist)
|
||||
|
||||
|
@ -113,12 +113,6 @@ set(SOURCES
|
||||
ui/settingsdialog.cpp
|
||||
ui/systemtrayicon.cpp
|
||||
|
||||
visualisations/projectmpresetmodel.cpp
|
||||
visualisations/projectmvisualisation.cpp
|
||||
visualisations/visualisationcontainer.cpp
|
||||
visualisations/visualisationoverlay.cpp
|
||||
visualisations/visualisationselector.cpp
|
||||
|
||||
widgets/autoexpandingtreeview.cpp
|
||||
widgets/busyindicator.cpp
|
||||
widgets/equalizerslider.cpp
|
||||
@ -215,12 +209,6 @@ set(HEADERS
|
||||
ui/settingsdialog.h
|
||||
ui/systemtrayicon.h
|
||||
|
||||
visualisations/projectmpresetmodel.h
|
||||
visualisations/projectmvisualisation.h
|
||||
visualisations/visualisationcontainer.h
|
||||
visualisations/visualisationoverlay.h
|
||||
visualisations/visualisationselector.h
|
||||
|
||||
widgets/autoexpandingtreeview.h
|
||||
widgets/busyindicator.h
|
||||
widgets/equalizerslider.h
|
||||
@ -265,9 +253,6 @@ set(UI
|
||||
ui/mainwindow.ui
|
||||
ui/settingsdialog.ui
|
||||
|
||||
visualisations/visualisationoverlay.ui
|
||||
visualisations/visualisationselector.ui
|
||||
|
||||
widgets/equalizerslider.ui
|
||||
widgets/errordialog.ui
|
||||
widgets/fileview.ui
|
||||
@ -321,6 +306,28 @@ add_engine(xine LIBXINE "${XINE_ENGINE_SRC}" "${XINE_ENGINE_MOC}" OFF)
|
||||
add_engine(qt-phonon QT_PHONON engines/phononengine.cpp engines/phononengine.h OFF)
|
||||
print_engines()
|
||||
|
||||
# Visualisations
|
||||
if(ENABLE_VISUALISATIONS)
|
||||
list(APPEND SOURCES
|
||||
visualisations/projectmpresetmodel.cpp
|
||||
visualisations/projectmvisualisation.cpp
|
||||
visualisations/visualisationcontainer.cpp
|
||||
visualisations/visualisationoverlay.cpp
|
||||
visualisations/visualisationselector.cpp
|
||||
)
|
||||
list(APPEND HEADERS
|
||||
visualisations/projectmpresetmodel.h
|
||||
visualisations/projectmvisualisation.h
|
||||
visualisations/visualisationcontainer.h
|
||||
visualisations/visualisationoverlay.h
|
||||
visualisations/visualisationselector.h
|
||||
)
|
||||
list(APPEND UI
|
||||
visualisations/visualisationoverlay.ui
|
||||
visualisations/visualisationselector.ui
|
||||
)
|
||||
endif(ENABLE_VISUALISATIONS)
|
||||
|
||||
# OSDs
|
||||
if(APPLE)
|
||||
list(APPEND SOURCES widgets/osd_mac.mm)
|
||||
@ -390,7 +397,6 @@ target_link_libraries(clementine_lib
|
||||
qtsingleapplication
|
||||
qtiocompressor
|
||||
chardet
|
||||
projectM
|
||||
${GOBJECT_LIBRARIES}
|
||||
${GLIB_LIBRARIES}
|
||||
${TAGLIB_LIBRARIES}
|
||||
@ -399,6 +405,10 @@ target_link_libraries(clementine_lib
|
||||
${LASTFM_LIBRARIES}
|
||||
)
|
||||
|
||||
if(ENABLE_VISUALISATIONS)
|
||||
target_link_libraries(clementine_lib projectM)
|
||||
endif(ENABLE_VISUALISATIONS)
|
||||
|
||||
if (APPLE)
|
||||
target_link_libraries(clementine_lib
|
||||
${GROWL}
|
||||
|
@ -25,6 +25,8 @@
|
||||
|
||||
#define CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}"
|
||||
|
||||
#cmakedefine ENABLE_VISUALISATIONS
|
||||
|
||||
#cmakedefine HAVE_GSTREAMER
|
||||
#cmakedefine HAVE_LIBVLC
|
||||
#cmakedefine HAVE_LIBXINE
|
||||
|
@ -14,7 +14,6 @@
|
||||
along with Clementine. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "mainwindow.h"
|
||||
#include "ui_mainwindow.h"
|
||||
#include "core/commandlineoptions.h"
|
||||
@ -50,7 +49,6 @@
|
||||
#include "ui/iconloader.h"
|
||||
#include "ui/settingsdialog.h"
|
||||
#include "ui/systemtrayicon.h"
|
||||
#include "visualisations/visualisationcontainer.h"
|
||||
#include "widgets/errordialog.h"
|
||||
#include "widgets/multiloadingindicator.h"
|
||||
#include "widgets/osd.h"
|
||||
@ -60,6 +58,10 @@
|
||||
# include "engines/gstengine.h"
|
||||
#endif
|
||||
|
||||
#ifdef ENABLE_VISUALISATIONS
|
||||
# include "visualisations/visualisationcontainer.h"
|
||||
#endif
|
||||
|
||||
#include <QFileSystemModel>
|
||||
#include <QSortFilterProxyModel>
|
||||
#include <QUndoStack>
|
||||
@ -118,7 +120,9 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
transcode_dialog_(new TranscodeDialog),
|
||||
global_shortcuts_dialog_(new GlobalShortcutsDialog(global_shortcuts_)),
|
||||
error_dialog_(new ErrorDialog),
|
||||
#ifdef ENABLE_VISUALISATIONS
|
||||
visualisation_(new VisualisationContainer),
|
||||
#endif
|
||||
playlist_menu_(new QMenu(this)),
|
||||
library_sort_model_(new QSortFilterProxyModel(this)),
|
||||
track_position_timer_(new QTimer(this)),
|
||||
@ -155,9 +159,11 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
#ifdef HAVE_GSTREAMER
|
||||
if (GstEngine* engine = qobject_cast<GstEngine*>(player_->GetEngine())) {
|
||||
settings_dialog_->SetGstEngine(engine);
|
||||
visualisation_->SetEngine(engine);
|
||||
# ifdef ENABLE_VISUALISATIONS
|
||||
visualisation_->SetEngine(engine);
|
||||
# endif
|
||||
}
|
||||
#endif
|
||||
#endif // HAVE_GSTREAMER
|
||||
|
||||
// Models
|
||||
library_sort_model_->setSourceModel(library_->model());
|
||||
@ -237,7 +243,6 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
connect(ui_->action_configure_global_shortcuts, SIGNAL(triggered()), global_shortcuts_dialog_.get(), SLOT(show()));
|
||||
connect(ui_->action_jump, SIGNAL(triggered()), ui_->playlist->view(), SLOT(JumpToCurrentlyPlayingTrack()));
|
||||
connect(ui_->action_update_library, SIGNAL(triggered()), library_, SLOT(IncrementalScan()));
|
||||
connect(ui_->action_visualisations, SIGNAL(triggered()), visualisation_.get(), SLOT(show()));
|
||||
|
||||
// Give actions to buttons
|
||||
ui_->forward_button->setDefaultAction(ui_->action_next_track);
|
||||
@ -249,8 +254,17 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
ui_->clear_playlist_button->setDefaultAction(ui_->action_clear_playlist);
|
||||
ui_->playlist->SetActions(ui_->action_new_playlist, ui_->action_save_playlist,
|
||||
ui_->action_load_playlist);
|
||||
|
||||
#ifdef ENABLE_VISUALISATIONS
|
||||
visualisation_->SetActions(ui_->action_previous_track, ui_->action_play_pause,
|
||||
ui_->action_stop, ui_->action_next_track);
|
||||
connect(ui_->action_visualisations, SIGNAL(triggered()), visualisation_.get(), SLOT(show()));
|
||||
connect(player_, SIGNAL(Stopped()), visualisation_.get(), SLOT(Stopped()));
|
||||
connect(player_, SIGNAL(ForceShowOSD(Song)), visualisation_.get(), SLOT(SongMetadataChanged(Song)));
|
||||
connect(playlists_, SIGNAL(CurrentSongChanged(Song)), visualisation_.get(), SLOT(SongMetadataChanged(Song)));
|
||||
#else
|
||||
ui_->action_visualisations->setEnabled(false);
|
||||
#endif
|
||||
|
||||
// Add the shuffle and repeat action groups to the menu
|
||||
ui_->action_shuffle_mode->setMenu(playlist_sequence_->shuffle_menu());
|
||||
@ -283,15 +297,12 @@ MainWindow::MainWindow(NetworkAccessManager* network, Engine::Type engine, QWidg
|
||||
|
||||
connect(player_, SIGNAL(Paused()), osd_, SLOT(Paused()));
|
||||
connect(player_, SIGNAL(Stopped()), osd_, SLOT(Stopped()));
|
||||
connect(player_, SIGNAL(Stopped()), visualisation_.get(), SLOT(Stopped()));
|
||||
connect(player_, SIGNAL(PlaylistFinished()), osd_, SLOT(PlaylistFinished()));
|
||||
connect(player_, SIGNAL(VolumeChanged(int)), osd_, SLOT(VolumeChanged(int)));
|
||||
connect(player_, SIGNAL(VolumeChanged(int)), ui_->volume, SLOT(setValue(int)));
|
||||
connect(player_, SIGNAL(ForceShowOSD(Song)), SLOT(ForceShowOSD(Song)));
|
||||
connect(player_, SIGNAL(ForceShowOSD(Song)), visualisation_.get(), SLOT(SongMetadataChanged(Song)));
|
||||
connect(playlists_, SIGNAL(CurrentSongChanged(Song)), osd_, SLOT(SongChanged(Song)));
|
||||
connect(playlists_, SIGNAL(CurrentSongChanged(Song)), player_, SLOT(CurrentMetadataChanged(Song)));
|
||||
connect(playlists_, SIGNAL(CurrentSongChanged(Song)), visualisation_.get(), SLOT(SongMetadataChanged(Song)));
|
||||
connect(playlists_, SIGNAL(PlaylistChanged()), player_, SLOT(PlaylistChanged()));
|
||||
connect(playlists_, SIGNAL(EditingFinished(QModelIndex)), SLOT(PlaylistEditFinished(QModelIndex)));
|
||||
connect(playlists_, SIGNAL(Error(QString)), error_dialog_.get(), SLOT(ShowMessage(QString)));
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include <QSettings>
|
||||
#include <QSystemTrayIcon>
|
||||
|
||||
#include "config.h"
|
||||
#include "engines/engine_fwd.h"
|
||||
#include "library/librarymodel.h"
|
||||
#include "playlist/playlistitem.h"
|
||||
@ -177,7 +178,10 @@ class MainWindow : public QMainWindow {
|
||||
boost::scoped_ptr<TranscodeDialog> transcode_dialog_;
|
||||
boost::scoped_ptr<GlobalShortcutsDialog> global_shortcuts_dialog_;
|
||||
boost::scoped_ptr<ErrorDialog> error_dialog_;
|
||||
|
||||
#ifdef ENABLE_VISUALISATIONS
|
||||
boost::scoped_ptr<VisualisationContainer> visualisation_;
|
||||
#endif
|
||||
|
||||
QMenu* playlist_menu_;
|
||||
QAction* playlist_play_pause_;
|
||||
|
Loading…
x
Reference in New Issue
Block a user