diff --git a/Doxyfile b/Doxyfile
index 1c87315..971890a 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.1"
# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
# base path where the generated documentation will be put.
diff --git a/HACKING b/HACKING
index 1b50596..dbd43c9 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
@@ -19,6 +23,8 @@ We use Semantic Versioning 2.0.0. Given a version number MAJOR.MINOR.PATCH, incr
* PATCH version when you make backwards-compatible bug fixes.
See http://semver.org/
+We want the 0 series to be backward-compatible. That means that a project created with MapMap 0.1 should still work with MapMap 0.99, if we ever get to such a version number. When we will break this backward-compatibilty, we will start the 1 series and provide a migration script. This script might be ran from the command-line or on the Web. The other thing we need to be backward-compatible is the OSC interface. The rest of the software can change. This includes the names of the menu items and the appearance of the user interface. We will try to keep these consistent, though.
+
Files
-----
* BUGS: List of bugs to fix. (or, again, use github for these)
@@ -30,3 +36,41 @@ 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.
+
+XML file version number
+-----------------------
+* update its minor number when you introduce new features.
+* update its major number when it's not backward-comptatible anymore with its previous versions
+* generally, we should follow the MapMap version, when new changes are introduced. (no need to increment it otherwise)
+* we will need to implement some fancy XML file version number checking in the future.
+
diff --git a/INSTALL b/INSTALL
index fe296f8..7dcf674 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/MainWindow.h b/MainWindow.h
index 69cdbe8..5907ffa 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.1"
+#define MAPMAP_EXTENSION "mmp"
/**
* This is the main window of MapMap. It acts as both a view and a controller interface.
diff --git a/Mapping.h b/Mapping.h
index f01cb05..4421c1a 100644
--- a/Mapping.h
+++ b/Mapping.h
@@ -18,20 +18,17 @@
* along with this program. If not, see .
*/
-
#ifndef MAPPING_H_
#define MAPPING_H_
#include
#include
-
#include "Shape.h"
#include "Paint.h"
-
#include "UidAllocator.h"
/**
- * Mapping is the central concept of Libremapping.
+ * Mapping is the central concept of this software.
*
* A Mapping represents a relationship between an input Paint and
* and output Shape where the paint (possibly modified by some other
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();
diff --git a/NEWS b/NEWS
index e69de29..46a772a 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.
+* Quad, meshes, triangles, circles.
+* Color paint.
+* Fullscreen output window.
+* MMP project XML file format version 0.1.
+
diff --git a/OSC b/OSC
index 09d1b15..3f93117 100644
--- a/OSC
+++ b/OSC
@@ -4,21 +4,21 @@ MapMap OSC Interface
API Reference
-------------
-/texture/uri
+/mapmap/paint/media/load
~~~~~~~~~~~~
Change a media URI::
- /texture/uri ,is
+ /mapmap/paint/media/load ,is
-URI: Path to a file. (WARNING: we will change this API soon.
paintID: A number. Usually 0, or 1 or 2... depending on how many paints you have in your project.
+path: Path to a file.
Examples
--------
-Change a media URI::
+Change a media path::
- osc-send osc.udp://localhost:12345 /texture/uri ,is 0 ~/Videos/clips_finaux_ok/lys_flou_net.mov
+ osc-send osc.udp://localhost:12345 /mapmap/paint/media/load ,is 0 ~/Videos/clips_finaux_ok/lys_flou_net.mov
See also
--------
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);
}
diff --git a/ProjectReader.cpp b/ProjectReader.cpp
index 830f645..cd5d982 100644
--- a/ProjectReader.cpp
+++ b/ProjectReader.cpp
@@ -41,8 +41,10 @@ bool ProjectReader::readFile(QIODevice *device)
}
QDomElement root = doc.documentElement();
- if (root.tagName() != "project" || root.attribute("version") != "1.0") {
- _xml.raiseError(QObject::tr("The file is not a mapmap version 1.0 file."));
+ // The handling of the version number will get fancier as we go.
+ if (root.tagName() != "project" || root.attribute("version") != "0.1")
+ {
+ _xml.raiseError(QObject::tr("The file is not a mapmap version 0.1 file."));
return false;
}
diff --git a/ProjectWriter.cpp b/ProjectWriter.cpp
index 7ea9b4a..5c4bd3d 100644
--- a/ProjectWriter.cpp
+++ b/ProjectWriter.cpp
@@ -33,7 +33,7 @@ bool ProjectWriter::writeFile(QIODevice *device)
_xml.writeStartDocument();
_xml.writeDTD("");
_xml.writeStartElement("project");
- _xml.writeAttribute("version", "1.0");
+ _xml.writeAttribute("version", "0.1"); // Similar to pkg-config version numbers.
_xml.writeStartElement("paints");
for (int i = 0; i < _manager->nPaints(); i++)
diff --git a/README b/README
index d1c5969..e7d36f7 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,
@@ -27,19 +26,22 @@ 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
-------
-* Alexandre Quessy
-* Sofian Audry
-* Mike Latona
-* Vasilis Liaskovitis
+* Alexandre Quessy: release manager, developer, technical writer, project manager.
+* Sofian Audry: lead developer, user interface designer, project manager.
Contributors
------------
-* Christian Ambaud
-* Maxime Damecour
-* Julien Keable
-* 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/TODO b/TODO
index da18912..e140000 100644
--- a/TODO
+++ b/TODO
@@ -1,6 +1,27 @@
To do in MapMap
===============
+TODO before 0.2.0
+-----------------
+* change xy position to integers?
+* "avec le soutien de l'Organisation internationale de la Francophonie", with the logo.
+* integration des icones de mike
+* shmsrc???? non... on a plutot autre chose.. c'est a dire, plus de formes.
+* traduction complete. multilinguisme fonctionnel.
+* video upside-down fixed
+* manuel de base, bilingue. (en HTML dans le Contents?)
+* save media URI when it's changed via OSC
+* remove name? (and re-add it soon)
+* allow the user to change the OSC port number user a menu item and a dialog.
+* be able to change the media source
+* is it really the closest vertex that is dragged?
+* how come paint quads don't have a dimension?
+* create more number boxes for points when we change the dimension of a quad texture mapping.
+* Be able to cancel a change when moving around a mapping.
+* Be able to change the color of a color paint.
+* Be able to undo deleting a mapping, and a paint.
+* implement name : dans l'inspecteur
+
Code
----
@@ -64,9 +85,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