Permalink
Browse files

Initial commit

  • Loading branch information...
0 parents commit c121c6027d1a81ba96cdae0404932b592a0a85b0 @joaquimrocha committed Apr 3, 2012
Showing with 1,923 additions and 0 deletions.
  1. +1 −0 AUTHORS
  2. +674 −0 COPYING
  3. +2 −0 ChangeLog
  4. +19 −0 Makefile.am
  5. 0 NEWS
  6. +39 −0 README
  7. +157 −0 autogen.sh
  8. +40 −0 configure.ac
  9. +25 −0 src/Makefile.am
  10. +966 −0 src/main.c
@@ -0,0 +1 @@
+Joaquim Rocha <jrocha@igalia.com> - Creator
674 COPYING

Large diffs are not rendered by default.

Oops, something went wrong.
@@ -0,0 +1,2 @@
+
+
@@ -0,0 +1,19 @@
+## Process this file with automake to produce Makefile.in
+## Created by Anjuta
+
+SUBDIRS = src
+
+skeltrackdesktopcontroldocdir = ${prefix}/doc/skeltrack-desktop-control
+skeltrackdesktopcontroldoc_DATA = \
+ README\
+ COPYING\
+ AUTHORS\
+ ChangeLog\
+ INSTALL\
+ NEWS
+
+EXTRA_DIST = $(skeltrackdesktopcontroldoc_DATA)
+
+# Remove doc directory on uninstall
+uninstall-local:
+ -rm -r $(skeltrackdesktopcontroldocdir)
0 NEWS
No changes.
39 README
@@ -0,0 +1,39 @@
+==========================
+Skeltrack Desktop Control
+==========================
+
+This demo is an example of what can be done with Skeltrack.
+
+It needs a Kinect device, to which it connects using GFreenect, and retrieves
+the head and hands' positions from Skeltrack. Then, the positions are
+interpreted as gestures which are mapped to events in the desktop using Xlib.
+
+This demo is not supposed to be a full-blown gesture interpretation system,
+so, the code is tailored to use cases in the GNOME 3 desktop.
+
+A video showing this demo in use can be watched at:
+
+http://vimeo.com/user1454556/skeltrackdesktopcontrol
+
+Gestures
+========
+
+The gestures are activated when the hands are at a certain distance in front
+of the head (around 30 cm); this is called the "action area".
+
+The following list shows what gestures are interpreted as commands:
+1) One hand moving: Move mouse pointer;
+2) While one hand is in the action area another one hand enters
+ it and quickly leaves: Perform a click;
+3) While one hand is in the action area another one hand enters and stays
+ there: Perform a mouse press (allowing the user to move things around
+ using the other hand);
+
+Apart from the list above, there are two modes when both hands enter the
+action area at about the same time. Those are:
+1) Steering Wheel Mode: Both hands are interpreted as if holding a steering
+ wheel. By default the up arrow key is pressed and the left or right arrow
+ keys are pressed according to the orientation of the hands.
+2) Pinch Mode: Both hands are interpreted as if performing a pinch gesture,
+ which results in a control + mouse wheel up/down event (because
+ this is usually interpreted as zoom in/out).
@@ -0,0 +1,157 @@
+#!/bin/sh
+# Run this to generate all the initial makefiles, etc.
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+DIE=0
+
+if [ -n "$GNOME2_DIR" ]; then
+ ACLOCAL_FLAGS="-I $GNOME2_DIR/share/aclocal $ACLOCAL_FLAGS"
+ LD_LIBRARY_PATH="$GNOME2_DIR/lib:$LD_LIBRARY_PATH"
+ PATH="$GNOME2_DIR/bin:$PATH"
+ export PATH
+ export LD_LIBRARY_PATH
+fi
+
+(test -f $srcdir/configure.ac) || {
+ echo -n "**Error**: Directory "\`$srcdir\'" does not look like the"
+ echo " top-level package directory"
+ exit 1
+}
+
+(autoconf --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`autoconf' installed."
+ echo "Download the appropriate package for your distribution,"
+ echo "or get the source tarball at ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+}
+
+(grep "^IT_PROG_INTLTOOL" $srcdir/configure.ac >/dev/null) && {
+ (intltoolize --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`intltool' installed."
+ echo "You can get it from:"
+ echo " ftp://ftp.gnome.org/pub/GNOME/"
+ DIE=1
+ }
+}
+
+(grep "^AM_PROG_XML_I18N_TOOLS" $srcdir/configure.ac >/dev/null) && {
+ (xml-i18n-toolize --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`xml-i18n-toolize' installed."
+ echo "You can get it from:"
+ echo " ftp://ftp.gnome.org/pub/GNOME/"
+ DIE=1
+ }
+}
+
+(grep "^LT_INIT" $srcdir/configure.ac >/dev/null) && {
+ (libtool --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`libtool' installed."
+ echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+ }
+}
+
+(grep "^AM_GLIB_GNU_GETTEXT" $srcdir/configure.ac >/dev/null) && {
+ (grep "sed.*POTFILES" $srcdir/configure.ac) > /dev/null || \
+ (glib-gettextize --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`glib' installed."
+ echo "You can get it from: ftp://ftp.gtk.org/pub/gtk"
+ DIE=1
+ }
+}
+
+(automake --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: You must have \`automake' installed."
+ echo "You can get it from: ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+ NO_AUTOMAKE=yes
+}
+
+
+# if no automake, don't bother testing for aclocal
+test -n "$NO_AUTOMAKE" || (aclocal --version) < /dev/null > /dev/null 2>&1 || {
+ echo
+ echo "**Error**: Missing \`aclocal'. The version of \`automake'"
+ echo "installed doesn't appear recent enough."
+ echo "You can get automake from ftp://ftp.gnu.org/pub/gnu/"
+ DIE=1
+}
+
+if test "$DIE" -eq 1; then
+ exit 1
+fi
+
+if test -z "$*"; then
+ echo "**Warning**: I am going to run \`configure' with no arguments."
+ echo "If you wish to pass any to it, please specify them on the"
+ echo \`$0\'" command line."
+ echo
+fi
+
+case $CC in
+xlc )
+ am_opt=--include-deps;;
+esac
+
+for coin in `find $srcdir -path $srcdir/CVS -prune -o -name configure.ac -print`
+do
+ dr=`dirname $coin`
+ if test -f $dr/NO-AUTO-GEN; then
+ echo skipping $dr -- flagged as no auto-gen
+ else
+ echo processing $dr
+ ( cd $dr
+
+ aclocalinclude="$ACLOCAL_FLAGS"
+
+ if grep "^AM_GLIB_GNU_GETTEXT" configure.ac >/dev/null; then
+ echo "Creating $dr/aclocal.m4 ..."
+ test -r $dr/aclocal.m4 || touch $dr/aclocal.m4
+ echo "Running glib-gettextize... Ignore non-fatal messages."
+ echo "no" | glib-gettextize --force --copy
+ echo "Making $dr/aclocal.m4 writable ..."
+ test -r $dr/aclocal.m4 && chmod u+w $dr/aclocal.m4
+ fi
+ if grep "^IT_PROG_INTLTOOL" configure.ac >/dev/null; then
+ echo "Running intltoolize..."
+ intltoolize --copy --force --automake
+ fi
+ if grep "^AM_PROG_XML_I18N_TOOLS" configure.ac >/dev/null; then
+ echo "Running xml-i18n-toolize..."
+ xml-i18n-toolize --copy --force --automake
+ fi
+ if grep "^LT_INIT" configure.ac >/dev/null; then
+ if test -z "$NO_LIBTOOLIZE" ; then
+ echo "Running libtoolize..."
+ libtoolize --force --copy
+ fi
+ fi
+ echo "Running aclocal $aclocalinclude ..."
+ aclocal $aclocalinclude
+ if grep "^A[CM]_CONFIG_HEADER" configure.ac >/dev/null; then
+ echo "Running autoheader..."
+ autoheader
+ fi
+ echo "Running automake --gnu $am_opt ..."
+ automake --add-missing --gnu $am_opt
+ echo "Running autoconf ..."
+ autoconf
+ )
+ fi
+done
+
+if test x$NOCONFIGURE = x; then
+ echo Running $srcdir/configure "$@" ...
+ $srcdir/configure "$@" \
+ && echo Now type \`make\' to compile. || exit 1
+else
+ echo Skipping configure process.
+fi
@@ -0,0 +1,40 @@
+dnl Process this file with autoconf to produce a configure script.
+dnl Created by Anjuta application wizard.
+
+m4_define([prj_name], [Skeltrack Desktop Control])
+m4_define([prj_short_name], [DesktopControl])
+m4_define([prj_home], [http://labs.igalia.com/skeltrack-desktop-control])
+
+AC_INIT([prj_name],
+ [prj_version],
+ [prj_home])
+
+AC_CONFIG_HEADERS([config.h])
+
+AM_INIT_AUTOMAKE([1.11])
+
+AM_SILENT_RULES([yes])
+
+PRJ_NAME="prj_short_name"
+AC_SUBST(PRJ_NAME)
+
+AC_PROG_CC
+
+SKELTRAC_REQUIRED=0.1.2
+GFREENECT_REQUIRED=0.1.4
+CLUTTER_REQUIRED=1.8.4
+GLIB_REQUIRED=2.28.0
+XTST_REQUIRED=1.2.0
+PKG_CHECK_MODULES(DEPS, gfreenect-0.1 >= GFREENECT_REQUIRED
+ skeltrack-0.1 >= SKELTRACK-0
+ clutter-1.0 >= CLUTTER_REQUIRED
+ glib-2.0 >= $GLIB_REQUIRED
+ gio-2.0 >= $GLIB_REQUIRED
+ gobject-2.0 >= $GLIB_REQUIRED
+ xtst >= XTST_REQUIRED)
+
+AC_OUTPUT([
+Makefile
+src/Makefile
+
+])
@@ -0,0 +1,25 @@
+## Process this file with automake to produce Makefile.in
+
+## Created by Anjuta
+
+AM_CPPFLAGS = \
+ -DPACKAGE_LOCALE_DIR=\""$(prefix)/$(DATADIRNAME)/locale"\" \
+ -DPACKAGE_SRC_DIR=\""$(srcdir)"\" \
+ -DPACKAGE_DATA_DIR=\""$(datadir)"\"
+
+AM_CFLAGS = \
+ $(DEPS_CFLAGS) \
+ -I$(top_srcdir)/@PRJ_NAME@
+ -Wall \
+ -g
+
+bin_PROGRAMS = skeltrack-desktop-control
+
+skeltrack_desktop_control_SOURCES = \
+ main.c
+
+skeltrack_desktop_control_LDFLAGS =
+
+skeltrack_desktop_control_LDADD = \
+ $(DEPS_LIBS)
+
Oops, something went wrong.

0 comments on commit c121c60

Please sign in to comment.