From 73308ab117efcd7573a1bc15562b690419480069 Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 14:14:22 -0400 Subject: [PATCH 01/15] Prepare 0.1.0: update version number --- Doxyfile | 2 +- MainWindow.h | 4 ++-- NEWS | 13 +++++++++++++ mapmap.pro | 22 ++++++++++++++++++++-- 4 files changed, 36 insertions(+), 5 deletions(-) diff --git a/Doxyfile b/Doxyfile index 1c87315..b235414 100644 --- a/Doxyfile +++ b/Doxyfile @@ -31,7 +31,7 @@ PROJECT_NAME = "MapMap" # This could be handy for archiving the generated documentation or # if some version control system is used. -PROJECT_NUMBER = "0.0.1" +PROJECT_NUMBER = "0.1.0" # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) # base path where the generated documentation will be put. diff --git a/MainWindow.h b/MainWindow.h index d3ec21a..406ea5e 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -40,8 +40,8 @@ #include "qttreepropertybrowser.h" #include "qtgroupboxpropertybrowser.h" -#define MAPMAP_VERSION "0.0.9" -#define MAPMAP_EXTENSION "mpm" +#define MAPMAP_VERSION "0.1.0" +#define MAPMAP_EXTENSION "mmp" /** * This is the main window of MapMap. It acts as both a view and a controller interface. diff --git a/NEWS b/NEWS index e69de29..584ea4c 100644 --- a/NEWS +++ b/NEWS @@ -0,0 +1,13 @@ +Release notes for MapMap +======================== + +2014-04-30 - MapMap 0.1.0 +------------------------- +* Initial release. +* Qt user interface. +* Video mapping with GStreamer. +* State saving in XML. +* Quad, meshes, triangles, circles. +* Color paint. +* Fullscreen output window. + diff --git a/mapmap.pro b/mapmap.pro index 095efe1..0145259 100644 --- a/mapmap.pro +++ b/mapmap.pro @@ -1,5 +1,6 @@ CONFIG += qt debug TEMPLATE = app +VERSION = 0.1.0 TARGET = mapmap QT += gui opengl xml CONFIG += qt debug @@ -15,7 +16,6 @@ HEADERS = \ MappingManager.h \ Maths.h \ MediaImpl.h \ - Paint.h \ OscInterface.h \ OscReceiver.h \ OutputGLWindow.h \ @@ -29,8 +29,8 @@ HEADERS = \ SOURCES = \ DestinationGLCanvas.cpp \ - MainWindow.cpp \ MainApplication.cpp \ + MainWindow.cpp \ Mapper.cpp \ MapperGLCanvas.cpp \ Mapping.cpp \ @@ -52,6 +52,8 @@ QT += gui opengl xml RESOURCES = mapmap.qrc TRANSLATIONS = mapmap_fr.ts include(contrib/qtpropertybrowser/src/qtpropertybrowser.pri) + +# Add the docs target: docs.depends = $(HEADERS) $(SOURCES) docs.commands = (cat Doxyfile; echo "INPUT = $?") | doxygen - QMAKE_EXTRA_TARGETS += docs @@ -92,6 +94,7 @@ unix:!mac { # Mac OS X-specific: mac { + TARGET = MapMap DEFINES += MACOSX INCLUDEPATH += \ /opt/local/include/ \ @@ -142,3 +145,18 @@ win32 { CONFIG += console } +# Adds the tarball target +tarball.target = mapmap-$${VERSION}.tar.gz +tarball.commands = git archive --format=tar.gz -9 --prefix=mapmap-$${VERSION}/ --output=mapmap-$${VERSION}.tar.gz HEAD +tarball.depends = .git +QMAKE_EXTRA_TARGETS += tarball + +# Show various messages +message("MapMap version: $${VERSION}") +# message("Qt version: $$[QT_VERSION]") +# message("LIBS: $${LIBS}") +# message("PKGCONFIG: $${PKGCONFIG}") +# message("The project contains the following files: $${SOURCES} $${HEADERS}}") +# message("To create a tarball, run `make tarball`") +# message("To build the documentation, run `make docs`") + From 1cadec6d27e40c92a9ab6e9ddbae42e4d1f5edb7 Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 14:19:25 -0400 Subject: [PATCH 02/15] update doc for making releases --- HACKING | 35 +++++++++++++++++++++++++++++++++++ INSTALL | 6 ++++++ README | 20 ++++++++++---------- sh_make_tarball.sh | 6 ++++++ 4 files changed, 57 insertions(+), 10 deletions(-) create mode 100755 sh_make_tarball.sh diff --git a/HACKING b/HACKING index 1b50596..3e57ddc 100644 --- a/HACKING +++ b/HACKING @@ -1,6 +1,10 @@ Contribute to MapMap ==================== +Build software, doc and the translations +---------------------------------------- +See INSTALL. + Coding style ------------ * indent with 2 spaces @@ -30,3 +34,34 @@ Files * images/: Images part of the GUI. * prototypes/ : Contains prototypes. Please ask the project maintainer before removing some of these. +Code management with Git +------------------------ +* We develop in the develop branch. The master branch is only for the latest tag. +* Create a branch for each new features. Merge it to develop. +* Create release-x.y.z branch for releases. +* If possible, avoid merges, and use git rebase instead. (like in the GNOME projects) +* Create a x.y branch for each x.y major.minor version series. +* For a new release, merge develop to master (or your branch to the major.minor branch if it's a bugfix release) and then tag it there. +* In doubt, ask the release manager. + +Make a release +-------------- +* If it's a new feature, increment minor. If it's bugfix, increment micro. If it's not backward-compatible, increment major. +* Create a release-x.y.z branch +* Verify the version number: + * VERSION in mapmap.pro + * PROJECT_NUMBER in Doxyfile + * MAPMAP_VERSION in MainWindow.h + * MAPMAP_VERSION in sh_make_tarball.sh (until we fixe the tarball target in .pro) +* Edit NEWS +* run make +* run ./sh_build_doc.sh +* merge to master, or to the major.minor branch +* run ./sh_make_tarball.sh +* then untar it, cd to that dir and build the whole thing to see if it works +* git tag x.y.z +* go back to your release branch +* increment micro (or minor) version number in the files above. +* merge into develop. +* keep developing. + diff --git a/INSTALL b/INSTALL index 01e2cf1..b43053e 100644 --- a/INSTALL +++ b/INSTALL @@ -13,6 +13,11 @@ Dependencies: * liblo * gstreamer-0.10 +Non-mandatory: + + * doxygen + * graphviz + Build it:: ./build.sh @@ -29,6 +34,7 @@ Do this:: For extras:: sudo apt-get install -y \ + graphviz \ doxygen To edit translations diff --git a/README b/README index dfdb96f..1431374 100644 --- a/README +++ b/README @@ -1,6 +1,5 @@ MapMap -============ - +====== MapMap is a free video mapping software. Projection mapping, also known as video mapping and spatial augmented reality, @@ -29,15 +28,16 @@ See the INSTALL file. Authors ------- -* Alexandre Quessy -* Julien Keable -* Sofian Audry -* Vasilis Liaskovitis +* Sofian Audry, lead developer, project manager. +* Alexandre Quessy, release manager, developer, technical writer, project manager. Contributors ------------ -* Mike Latona -* Maxime Damecour -* Christian Ambaud -* Sylvain Cormier +* Mike Latona, user interface designer. +* Vasilis Liaskovitis, developer. +* Maxime Damecour, inspiration. +* Christian Ambaud, sponsor, inspiration. +* Louis Desjardins, project manager. +* Julien Keable, developer. +* Sylvain Cormier, developer. diff --git a/sh_make_tarball.sh b/sh_make_tarball.sh new file mode 100755 index 0000000..305697b --- /dev/null +++ b/sh_make_tarball.sh @@ -0,0 +1,6 @@ +#!/bin/bash + +MAPMAP_VERSION=0.1.0 + +git archive --format=tar.gz -9 --prefix=mapmap-${MAPMAP_VERSION}/ --output=mapmap-${MAPMAP_VERSION}.tar.gz HEAD + From d72a386ed2824da83a2de03223c5dc7687e2a82c Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 21:27:02 -0400 Subject: [PATCH 03/15] set env vars if needed (for OS X) --- main.cpp | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/main.cpp b/main.cpp index 28e7acc..21cab63 100644 --- a/main.cpp +++ b/main.cpp @@ -6,10 +6,25 @@ #include "Common.h" #include "MainWindow.h" #include "MainApplication.h" +#include +#include + +static void set_env_vars_if_needed() +{ +#ifdef __MACOSX_CORE__ + std::cout << "OS X detected. Set environment for GStreamer-SDK support." << std::endl; + if (0 == setenv("GST_PLUGIN_PATH", "/Library/Frameworks/GStreamer.framework/Libraries", 1)) + std::cout << " * GST_PLUGIN_PATH=Library/Frameworks/GStreamer.framework/Libraries" << std::endl; + if (0 == setenv("GST_DEBUG", "2", 1)) + std::cout << " * GST_DEBUG=2" << std::endl; + //setenv("LANG", "C", 1); +#endif // __MACOSX_CORE__ +} int main(int argc, char *argv[]) { - // TODO: avoid segfaults when OSC port is busy + set_env_vars_if_needed(); + MainApplication app(argc, argv); if (! QGLFormat::hasOpenGL()) @@ -23,9 +38,7 @@ int main(int argc, char *argv[]) app.installTranslator(&translator); MainWindow win; - //win.setLocale(QLocale("fr")); - win.show(); return app.exec(); From 79583fbe1f6037f2aafa225031c7995a7b57c1d1 Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 21:37:24 -0400 Subject: [PATCH 04/15] less verbose --- MediaImpl.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/MediaImpl.cpp b/MediaImpl.cpp index 9947054..a1e8107 100644 --- a/MediaImpl.cpp +++ b/MediaImpl.cpp @@ -431,7 +431,7 @@ bool MediaImpl::runVideo() { } _videoNewBufferCounter--; - std::cout << "VideoImpl::runVideo: read frame #" << _videoNewBufferCounter << std::endl; + //std::cout << "VideoImpl::runVideo: read frame #" << _videoNewBufferCounter << std::endl; } _postRun(); From 199351ee20c876b3bc11968cf35e3bae62ae4ee0 Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 21:37:34 -0400 Subject: [PATCH 05/15] more instructions for OS X --- README | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README b/README index d1c5969..ff2979f 100644 --- a/README +++ b/README @@ -27,7 +27,9 @@ Build and install ----------------- See the INSTALL file. -On Mac OS X, you need GStreamer: http://cdn.gstreamer.com/osx/universal/gstreamer-sdk-2013.6-universal.pkg +To use this software on Mac OS X: +* Install Qt5. You can get it from http://qt-project.org/downloads and choose the default location. +* Install the GStreamer SDK Runtime files from http://docs.gstreamer.com/display/GstSDK/Installing+on+Mac+OS+X Authors ------- From 35d53ef502cc5d507ff0c8f56b9d7e4cba98614c Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 21:37:48 -0400 Subject: [PATCH 06/15] update hard-coded path in a prototype... --- prototypes/sh-osx-gst-test.sh | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/prototypes/sh-osx-gst-test.sh b/prototypes/sh-osx-gst-test.sh index c1da9c2..9405310 100755 --- a/prototypes/sh-osx-gst-test.sh +++ b/prototypes/sh-osx-gst-test.sh @@ -2,9 +2,9 @@ set -o verbose #export GST_PLUGIN_PATH=/Library/Frameworks/GStreamer.framework/Libraries export LANG=C -export GST_DEBUG=3 -FILEPATH=/Users/aalex/Desktop/mapmap-videos/BonneFete.mov -#FILEPATH=/Users/aalex/Downloads/sintel_trailer-480p.ogv +# export GST_DEBUG=3 +#FILEPATH=/Users/aalex/Desktop/mapmap-videos/BonneFete.mov +FILEPATH=/Users/aalex/Downloads/sintel_trailer-480p.ogv gst-launch-0.10 uridecodebin uri=file://${FILEPATH} ! ffmpegcolorspace ! autovideosink From 1fc835c5472a6c488ac7c64654f6f1d08f55835b Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 22:13:31 -0400 Subject: [PATCH 07/15] change OSC signature for release --- OscInterface.cpp | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/OscInterface.cpp b/OscInterface.cpp index 96955dc..fc742de 100644 --- a/OscInterface.cpp +++ b/OscInterface.cpp @@ -211,12 +211,11 @@ void OscInterface::applyOscCommand(MainWindow &main_window, QVariantList & comma std::string typetags = command.at(1).toString().toStdString(); // Handle all OSC messages here - if (path == "/texture/uri" && typetags == "is") + if (path == "/mapmap/paint/media/load" && typetags == "is") { int paint_id = command.at(2).toInt(); std::string image_uri = command.at(3).toString().toStdString(); - //std::cout << "TODO load /image/uri " << image_id << " " << image_uri << std::endl; - // TODO: + //std::cout << "load /mapmap/paint/media/load " << paint_id << " " << image_uri << std::endl; main_window.setTextureUri(paint_id, image_uri); } From dbc93d803cae72e4e668d96035288395db4bea59 Mon Sep 17 00:00:00 2001 From: Alexandre Quessy Date: Wed, 30 Apr 2014 22:13:44 -0400 Subject: [PATCH 08/15] update TODO --- TODO | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/TODO b/TODO index da18912..bd139e0 100644 --- a/TODO +++ b/TODO @@ -64,9 +64,9 @@ You should make sure to block all incoming messages on that port if you don't wa /mapmap/project/load ,s /mapmap/project/save ,s /mapmap/paint/color/rgba ,iffff (each channel within [0,1]) -/mapmap/paint/texture/load ,is -/mapmap/paint/texture/speed ,if (1.0 means 100% speed) -/mapmap/paint/texture/seek ,il