Code Monkey home page Code Monkey logo

m00dawg / xlights Goto Github PK

View Code? Open in Web Editor NEW

This project forked from xlightssequencer/xlights

0.0 2.0 0.0 106.46 MB

xLights is a sequencer for Lights. xLights has usb and E1.31 drivers. You can create sequences in this object oriented program. You can create playlists, schedule them, test your hardware, convert between different sequencers.

License: GNU General Public License v3.0

Makefile 1.33% Awk 0.16% Batchfile 0.09% Shell 0.02% C 35.46% C++ 62.72% CMake 0.01% Objective-C 0.06% Objective-C++ 0.05% Inno Setup 0.10%

xlights's Introduction

xLights/Nutcracker Version 2016.x Linux build instructions
------------------------------------------------------------------------------

xLights/Nutcracker can be built and run on Linux, Mac OS/X, or Windows. This
document describes how **developers** should set up their tool chain to build
xLights/Nutcracker on Linux.
Ubuntu packages are provided for users at https://code.launchpad.net/~chris-debenham/+archive/ubuntu/xlights

xLights/Nutcracker is written in C++ and uses the wxWidgets library as a
compatibility layer across operating systems.  The minimum required version
of wxWidgets for xLights/Nutcracker is v3.1.  This can be compiled from
source or installed via packages if they are available for your distribution.
The provided makefile will download and build wxWidgets if needed - including application of a small patch from the end of this file to fix the sizing of bitmap buttons.
Please note that wxWidgets needs to use Gtk2 rather than Gtk3 currently due to issues in some controls.

These instructions have been tested on the following distributions:

  - Ubuntu 16.04
  - Fedora 24

Instructions for other Linux distributions will vary. 

  a) Using Software Manager (or apt-get or rpm), install the following packages.
     (Fedora packages will be named differently and have 'devel' instead of 'dev'
     in their name)

     build-essential
     libgtk2.0-dev
     libgstreamer1.0-dev
     libgstreamer-plugins-base1.0-dev
     freeglut3-dev
     libavcodec-dev
     libavformat-dev
     libswscale-dev
     libsdl1.2-dev
     liblog4cpp5-dev

     Example command to install packages on Ubuntu

     sudo apt-get install build-essential libgtk2.0-dev libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev freeglut3-dev libmpg123-dev libavcodec-dev libavformat-dev libswscale-dev libsdl1.2-dev liblog4cpp5-dev

     Example commands to install packages on Fedora 24

     sudo dnf install https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
     sudo dnf install gcc-c++ gtk2-devel gstreamer1-devel gstreamer1-plugins-base-devel freeglut-devel gstreamer1-plugins-bad-free-devel ffmpeg-devel SDL-devel log4cpp-devel


  b) Get the xLights/Nutcracker source code by opening a terminal window and
     typing the following:

     git clone https://github.com/smeighan/xLights.git xLights


xLights/Nutcracker can be built 2 ways on Linux. First, you can use the
supplied makefile to build it. This is sufficient to get xLights/Nutcracker
running, but you will be limited in what source code modifications you can
make.  Minor code changes or enhancements will be OK.  The second way to
build is to install the Code::Blocks IDE and compile xLights/Nutcracker
within the IDE. If you plan on modifying xLights/Nutcracker yourself, this
may be the easiest way to go.

To build xLights using the supplied makefile proceed to step 'c'.  To build
using Code::Blocks, proceed to step 'd'.:


  c) Build xLights using the supplied makefiles:

     Build using the simplified top-level Makefile in the main xLights
     directory.
     If wxWidgets 3.1 is not available then as part of this wxWidgets 3.1
     will be downloaded, compiled statically linked to xLights

           $ make

         Then install xLights to the default /usr/local/bin location as root:

           # make install

         To run the clean command:

           $ make clean

         To uninstall the xLights binary as root:

           # make uninstall

     You may get some compiler warnings, however, the executable 'xLights'
     should get built in the ./bin directory.  The proper dependencies are
     not currently setup in the makefile to trigger rebuilds when some
     files are modified, so you may have to run the clean command if your
     code does not build properly after making modifications to the source.

     If you want to build using Code::Blocks, proceed to step 'd'.

  d) Building xLights using Code::Blocks

     Install the Code::Blocks IDE using your distribution's package
     manager as long as it is version 16.01 or later.  Otherwise,
     you can try downloading it directly from the Code::Blocks web site:
        http://www.codeblocks.org/downloads
     Also, you may need to install libwxsmithlib0 to 
     enable visual layout.

     Now you are ready to use Code::Blocks to build xLights
     by double-clicking on the xLights.cbp file.
     In order for the double-click to work, you may need 
     to first right-click on the cbp file, select properties,
     and uncheck the box indicating that the file is runnable.
     Make sure you set the target to "Release Linux" before you build.

That should be all you need to build xLights/Nutcracker.
If you get missing decoder messages related to gstreamer, a couple of things to try are:
- sudo apt-get install ubuntu-restricted-extras  (substitute as appropriate for other *nices)
- install "Play it slowly"  - this app includes some gstreamer dependencies


==============================================================================

If it is necessary to rebuild the xLights.cbp.mak makefile such as when new
source files are added to the project, the command used to run cbp2make is:

cbp2make -in xLights.cbp -cfg ../cbp2make.cfg -out xLights.cbp.mak --with-deps --keep-outdir --keep-objdir

This will be run automatically at compile time if cbp2make is installed.

==============================================================================

== Patch required for wxWidgets 3.1 due to http://trac.wxwidgets.org/ticket/17683 ==
127c127
<     if (style & wxNO_BORDER)
---
>     if (style & wxNO_BORDER) {
128a129,135
>        GtkStyle *style = gtk_widget_get_style(GTK_WIDGET(m_widget));
>        style->xthickness=0;
>        style->ythickness=0;
>        gtk_widget_set_style(GTK_WIDGET(m_widget), style);
>        gtk_widget_set_can_default(GTK_WIDGET(m_widget), false);
>        gtk_widget_set_can_focus(GTK_WIDGET(m_widget), false);
>     }
== End of patch ==

xlights's People

Contributors

dkulp avatar smeighan avatar azgilrock avatar cjd avatar djulien avatar keithsw1111 avatar pharhp avatar dowdybrown avatar cpinkham avatar materdaddy avatar j-d-u avatar stevegiron avatar cp16net avatar billlutton avatar darylc avatar m00dawg avatar

Watchers

 avatar James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.