Nothing special, fighting agains GUI issues... :)

git-svn-id: svn://svn.code.sf.net/p/wiigee/code/trunk@97 c7eff9ee-dd40-0410-8832-91a4d88773cf
This commit is contained in:
bepo23
2009-07-01 07:23:01 +00:00
parent a0dd8b32ce
commit 496a6262ea
5 changed files with 242 additions and 182 deletions

View File

@@ -20,6 +20,13 @@ is divided into following sections:
--> -->
<project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="wiigee-lib-impl"> <project xmlns:j2seproject1="http://www.netbeans.org/ns/j2se-project/1" xmlns:j2seproject3="http://www.netbeans.org/ns/j2se-project/3" xmlns:jaxrpc="http://www.netbeans.org/ns/j2se-project/jax-rpc" basedir=".." default="default" name="wiigee-lib-impl">
<fail message="Please build using Ant 1.7.1 or higher.">
<condition>
<not>
<antversion atleast="1.7.1"/>
</not>
</condition>
</fail>
<target depends="test,jar,javadoc" description="Build and test whole project." name="default"/> <target depends="test,jar,javadoc" description="Build and test whole project." name="default"/>
<!-- <!--
====================== ======================
@@ -43,14 +50,16 @@ is divided into following sections:
</pathconvert> </pathconvert>
<basename file="${libraries.1.path}" property="libraries.1.basename" suffix=".properties"/> <basename file="${libraries.1.path}" property="libraries.1.basename" suffix=".properties"/>
<touch file="${libraries.1.dir}/${libraries.1.basename}-private.properties"/> <touch file="${libraries.1.dir}/${libraries.1.basename}-private.properties"/>
<loadproperties srcfile="${libraries.1.dir}/${libraries.1.basename}-private.properties"> <loadproperties encoding="ISO-8859-1" srcfile="${libraries.1.dir}/${libraries.1.basename}-private.properties">
<filterchain> <filterchain>
<replacestring from="$${base}" to="${libraries.1.dir}"/> <replacestring from="$${base}" to="${libraries.1.dir}"/>
<escapeunicode/>
</filterchain> </filterchain>
</loadproperties> </loadproperties>
<loadproperties srcfile="${libraries.1.path}"> <loadproperties encoding="ISO-8859-1" srcfile="${libraries.1.path}">
<filterchain> <filterchain>
<replacestring from="$${base}" to="${libraries.1.dir}"/> <replacestring from="$${base}" to="${libraries.1.dir}"/>
<escapeunicode/>
</filterchain> </filterchain>
</loadproperties> </loadproperties>
</target> </target>
@@ -171,10 +180,18 @@ is divided into following sections:
<attribute default="${includes}" name="includes"/> <attribute default="${includes}" name="includes"/>
<attribute default="${excludes}" name="excludes"/> <attribute default="${excludes}" name="excludes"/>
<attribute default="${javac.debug}" name="debug"/> <attribute default="${javac.debug}" name="debug"/>
<attribute default="/does/not/exist" name="sourcepath"/> <attribute default="${empty.dir}" name="sourcepath"/>
<attribute default="${empty.dir}" name="gensrcdir"/>
<element name="customize" optional="true"/> <element name="customize" optional="true"/>
<sequential> <sequential>
<property location="${build.dir}/empty" name="empty.dir"/>
<mkdir dir="${empty.dir}"/>
<javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}"> <javac debug="@{debug}" deprecation="${javac.deprecation}" destdir="@{destdir}" encoding="${source.encoding}" excludes="@{excludes}" includeantruntime="false" includes="@{includes}" source="${javac.source}" sourcepath="@{sourcepath}" srcdir="@{srcdir}" target="${javac.target}">
<src>
<dirset dir="@{gensrcdir}" erroronmissingdir="false">
<include name="*"/>
</dirset>
</src>
<classpath> <classpath>
<path path="@{classpath}"/> <path path="@{classpath}"/>
</classpath> </classpath>
@@ -290,6 +307,8 @@ is divided into following sections:
<java classname="@{classname}" dir="${work.dir}" fork="true"> <java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg line="${debug-args-line}"/> <jvmarg line="${debug-args-line}"/>
<jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/> <jvmarg value="-Xrunjdwp:transport=${debug-transport},address=${jpda.address}"/>
<jvmarg value="-Dfile.encoding=${source.encoding}"/>
<redirector errorencoding="${source.encoding}" inputencoding="${source.encoding}" outputencoding="${source.encoding}"/>
<jvmarg line="${run.jvmargs}"/> <jvmarg line="${run.jvmargs}"/>
<classpath> <classpath>
<path path="@{classpath}"/> <path path="@{classpath}"/>
@@ -306,12 +325,15 @@ is divided into following sections:
<target name="-init-macrodef-java"> <target name="-init-macrodef-java">
<macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1"> <macrodef name="java" uri="http://www.netbeans.org/ns/j2se-project/1">
<attribute default="${main.class}" name="classname"/> <attribute default="${main.class}" name="classname"/>
<attribute default="${run.classpath}" name="classpath"/>
<element name="customize" optional="true"/> <element name="customize" optional="true"/>
<sequential> <sequential>
<java classname="@{classname}" dir="${work.dir}" fork="true"> <java classname="@{classname}" dir="${work.dir}" fork="true">
<jvmarg value="-Dfile.encoding=${source.encoding}"/>
<redirector errorencoding="${source.encoding}" inputencoding="${source.encoding}" outputencoding="${source.encoding}"/>
<jvmarg line="${run.jvmargs}"/> <jvmarg line="${run.jvmargs}"/>
<classpath> <classpath>
<path path="${run.classpath}"/> <path path="@{classpath}"/>
</classpath> </classpath>
<syspropertyset> <syspropertyset>
<propertyref prefix="run-sys-prop."/> <propertyref prefix="run-sys-prop."/>
@@ -351,10 +373,15 @@ is divided into following sections:
<!-- You can override this target in the ../build.xml file. --> <!-- You can override this target in the ../build.xml file. -->
</target> </target>
<target if="do.depend.true" name="-compile-depend"> <target if="do.depend.true" name="-compile-depend">
<j2seproject3:depend/> <pathconvert property="build.generated.subdirs">
<dirset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="*"/>
</dirset>
</pathconvert>
<j2seproject3:depend srcdir="${src.dir}:${build.generated.subdirs}"/>
</target> </target>
<target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile"> <target depends="init,deps-jar,-pre-pre-compile,-pre-compile,-compile-depend" if="have.sources" name="-do-compile">
<j2seproject3:javac/> <j2seproject3:javac gensrcdir="${build.generated.sources.dir}"/>
<copy todir="${build.classes.dir}"> <copy todir="${build.classes.dir}">
<fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/> <fileset dir="${src.dir}" excludes="${build.classes.excludes},${excludes}" includes="${includes}"/>
</copy> </copy>
@@ -371,7 +398,7 @@ is divided into following sections:
<target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single"> <target depends="init,deps-jar,-pre-pre-compile" name="-do-compile-single">
<fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail> <fail unless="javac.includes">Must select some files in the IDE or set javac.includes</fail>
<j2seproject3:force-recompile/> <j2seproject3:force-recompile/>
<j2seproject3:javac excludes="" includes="${javac.includes}" sourcepath="${src.dir}"/> <j2seproject3:javac excludes="" gensrcdir="${build.generated.sources.dir}" includes="${javac.includes}" sourcepath="${src.dir}"/>
</target> </target>
<target name="-post-compile-single"> <target name="-post-compile-single">
<!-- Empty placeholder for easier customization. --> <!-- Empty placeholder for easier customization. -->
@@ -437,11 +464,29 @@ is divided into following sections:
<property location="${dist.jar}" name="dist.jar.resolved"/> <property location="${dist.jar}" name="dist.jar.resolved"/>
<echo>java -jar "${dist.jar.resolved}"</echo> <echo>java -jar "${dist.jar.resolved}"</echo>
</target> </target>
<target depends="init,compile,-pre-pre-jar,-pre-jar" if="libs.CopyLibs.classpath" name="-do-jar-with-libraries-without-manifest" unless="manifest.available+main.class">
<property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
<pathconvert property="run.classpath.without.build.classes.dir">
<path path="${run.classpath}"/>
<map from="${build.classes.dir.resolved}" to=""/>
</pathconvert>
<pathconvert pathsep=" " property="jar.classpath">
<path path="${run.classpath.without.build.classes.dir}"/>
<chainedmapper>
<flattenmapper/>
<globmapper from="*" to="lib/*"/>
</chainedmapper>
</pathconvert>
<taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
<copylibs compress="${jar.compress}" jarfile="${dist.jar}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
<fileset dir="${build.classes.dir}"/>
</copylibs>
</target>
<target name="-post-jar"> <target name="-post-jar">
<!-- Empty placeholder for easier customization. --> <!-- Empty placeholder for easier customization. -->
<!-- You can override this target in the ../build.xml file. --> <!-- You can override this target in the ../build.xml file. -->
</target> </target>
<target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-post-jar" description="Build JAR." name="jar"/> <target depends="init,compile,-pre-jar,-do-jar-with-manifest,-do-jar-without-manifest,-do-jar-with-mainclass,-do-jar-with-libraries,-do-jar-with-libraries-without-manifest,-post-jar" description="Build JAR." name="jar"/>
<!-- <!--
================= =================
EXECUTION SECTION EXECUTION SECTION
@@ -461,6 +506,10 @@ is divided into following sections:
<fail unless="run.class">Must select one file in the IDE or set run.class</fail> <fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}"/> <j2seproject1:java classname="${run.class}"/>
</target> </target>
<target depends="init,-do-not-recompile,compile-test-single" name="run-test-with-main">
<fail unless="run.class">Must select one file in the IDE or set run.class</fail>
<j2seproject1:java classname="${run.class}" classpath="${run.test.classpath}"/>
</target>
<!-- <!--
================= =================
DEBUGGING SECTION DEBUGGING SECTION
@@ -469,6 +518,9 @@ is divided into following sections:
<target depends="init" if="netbeans.home" name="-debug-start-debugger"> <target depends="init" if="netbeans.home" name="-debug-start-debugger">
<j2seproject1:nbjpdastart name="${debug.class}"/> <j2seproject1:nbjpdastart name="${debug.class}"/>
</target> </target>
<target depends="init" if="netbeans.home" name="-debug-start-debugger-main-test">
<j2seproject1:nbjpdastart classpath="${debug.test.classpath}" name="${debug.class}"/>
</target>
<target depends="init,compile" name="-debug-start-debuggee"> <target depends="init,compile" name="-debug-start-debuggee">
<j2seproject3:debug> <j2seproject3:debug>
<customize> <customize>
@@ -486,6 +538,11 @@ is divided into following sections:
<j2seproject3:debug classname="${debug.class}"/> <j2seproject3:debug classname="${debug.class}"/>
</target> </target>
<target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/> <target depends="init,-do-not-recompile,compile-single,-debug-start-debugger,-debug-start-debuggee-single" if="netbeans.home" name="debug-single"/>
<target depends="init,compile-test-single" if="netbeans.home" name="-debug-start-debuggee-main-test">
<fail unless="debug.class">Must select one file in the IDE or set debug.class</fail>
<j2seproject3:debug classname="${debug.class}" classpath="${debug.test.classpath}"/>
</target>
<target depends="init,-do-not-recompile,compile-test-single,-debug-start-debugger-main-test,-debug-start-debuggee-main-test" if="netbeans.home" name="debug-test-with-main"/>
<target depends="init" name="-pre-debug-fix"> <target depends="init" name="-pre-debug-fix">
<fail unless="fix.includes">Must set fix.includes</fail> <fail unless="fix.includes">Must set fix.includes</fail>
<property name="javac.includes" value="${fix.includes}.java"/> <property name="javac.includes" value="${fix.includes}.java"/>
@@ -508,6 +565,9 @@ is divided into following sections:
<fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}"> <fileset dir="${src.dir}" excludes="${excludes}" includes="${includes}">
<filename name="**/*.java"/> <filename name="**/*.java"/>
</fileset> </fileset>
<fileset dir="${build.generated.sources.dir}" erroronmissingdir="false">
<include name="**/*.java"/>
</fileset>
</javadoc> </javadoc>
</target> </target>
<target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview"> <target depends="init,-javadoc-build" if="netbeans.home" name="-javadoc-browse" unless="no.javadoc.preview">
@@ -569,7 +629,7 @@ is divided into following sections:
<j2seproject3:junit testincludes="**/*Test.java"/> <j2seproject3:junit testincludes="**/*Test.java"/>
</target> </target>
<target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run"> <target depends="init,compile-test,-pre-test-run,-do-test-run" if="have.tests" name="-post-test-run">
<fail if="tests.failed">Some tests failed; see details above.</fail> <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target> </target>
<target depends="init" if="have.tests" name="test-report"/> <target depends="init" if="have.tests" name="test-report"/>
<target depends="init" if="netbeans.home+have.tests" name="-test-browse"/> <target depends="init" if="netbeans.home+have.tests" name="-test-browse"/>
@@ -582,7 +642,7 @@ is divided into following sections:
<j2seproject3:junit excludes="" includes="${test.includes}"/> <j2seproject3:junit excludes="" includes="${test.includes}"/>
</target> </target>
<target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single"> <target depends="init,compile-test-single,-pre-test-run-single,-do-test-run-single" if="have.tests" name="-post-test-run-single">
<fail if="tests.failed">Some tests failed; see details above.</fail> <fail if="tests.failed" unless="ignore.failing.tests">Some tests failed; see details above.</fail>
</target> </target>
<target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/> <target depends="init,-do-not-recompile,compile-test-single,-pre-test-run-single,-do-test-run-single,-post-test-run-single" description="Run single unit test." name="test-single"/>
<!-- <!--

View File

@@ -4,5 +4,5 @@ build.xml.stylesheet.CRC32=958a1d3e
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=afb4810b nbproject/build-impl.xml.data.CRC32=afb4810b
nbproject/build-impl.xml.script.CRC32=eed6b88e nbproject/build-impl.xml.script.CRC32=7668b6e9
nbproject/build-impl.xml.stylesheet.CRC32=65b8de21 nbproject/build-impl.xml.stylesheet.CRC32=5c621a33@1.26.1.45

View File

@@ -8,6 +8,7 @@ build.classes.excludes=**/*.java,**/*.form
# This directory is removed when the project is cleaned: # This directory is removed when the project is cleaned:
build.dir=build build.dir=build
build.generated.dir=${build.dir}/generated build.generated.dir=${build.dir}/generated
build.generated.sources.dir=${build.dir}/generated-sources
# Only compile against the classpath explicitly listed here: # Only compile against the classpath explicitly listed here:
build.sysclasspath=ignore build.sysclasspath=ignore
build.test.classes.dir=${build.dir}/test/classes build.test.classes.dir=${build.dir}/test/classes

View File

@@ -21,7 +21,6 @@
* with this program; if not, write to the Free Software Foundation, Inc., * with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/ */
package org.wiigee.device; package org.wiigee.device;
import java.io.IOException; import java.io.IOException;
@@ -41,63 +40,65 @@ import org.wiigee.filter.*;
*/ */
public class Device { public class Device {
// Fixed number values. // Fixed number values.
public static final int MOTION = 0; public static final int MOTION = 0;
// Buttons for action coordination // Buttons for action coordination
protected int recognitionbutton; protected int recognitionbutton;
protected int trainbutton; protected int trainbutton;
protected int closegesturebutton; protected int closegesturebutton;
// Functional // Functional
protected boolean accelerationenabled; protected boolean accelerationenabled;
// Filters, can filter the data stream // Filters, can filter the data stream
protected Vector<Filter> accfilters = new Vector<Filter>(); protected Vector<Filter> accfilters = new Vector<Filter>();
// Listeners, receive generated events // Listeners, receive generated events
protected Vector<AccelerationListener> accelerationlistener = new Vector<AccelerationListener>(); protected Vector<AccelerationListener> accelerationlistener = new Vector<AccelerationListener>();
protected Vector<ButtonListener> buttonlistener = new Vector<ButtonListener>(); protected Vector<ButtonListener> buttonlistener = new Vector<ButtonListener>();
protected ProcessingUnit processingunit = new TriggeredProcessingUnit();
public Device(boolean autofiltering) { // Processing unit to analyze the data
if(autofiltering) { protected ProcessingUnit processingunit = new TriggeredProcessingUnit();
public Device(boolean autofiltering) {
if (autofiltering) {
this.addAccelerationFilter(new IdleStateFilter()); this.addAccelerationFilter(new IdleStateFilter());
this.addAccelerationFilter(new MotionDetectFilter(this)); this.addAccelerationFilter(new MotionDetectFilter(this));
this.addAccelerationFilter(new DirectionalEquivalenceFilter()); this.addAccelerationFilter(new DirectionalEquivalenceFilter());
} }
this.addAccelerationListener(this.processingunit); this.addAccelerationListener(this.processingunit);
this.addButtonListener(this.processingunit); this.addButtonListener(this.processingunit);
} }
/** /**
* Adds a Filter for processing the acceleration values. * Adds a Filter for processing the acceleration values.
* @param filter The Filter instance. * @param filter The Filter instance.
*/ */
public void addAccelerationFilter(Filter filter) { public void addAccelerationFilter(Filter filter) {
this.accfilters.add(filter); this.accfilters.add(filter);
} }
/** /**
* Resets all the accfilters, which are resetable. * Resets all the accfilters, which are resetable.
* Sometimes they have to be resettet if a new gesture starts. * Sometimes they have to be resettet if a new gesture starts.
*/ */
public void resetAccelerationFilters() { public void resetAccelerationFilters() {
for(int i=0; i<this.accfilters.size(); i++) { for (int i = 0; i < this.accfilters.size(); i++) {
this.accfilters.elementAt(i).reset(); this.accfilters.elementAt(i).reset();
} }
} }
/** /**
* Adds an AccelerationListener to the Device. Everytime an acceleration * Adds an AccelerationListener to the Device. Everytime an acceleration
* on the Device is performed the AccelerationListener would receive * on the Device is performed the AccelerationListener would receive
* an event of this action. * an event of this action.
* *
* @param listener The Listener. * @param listener The Listener.
*/ */
public void addAccelerationListener(AccelerationListener listener) { public void addAccelerationListener(AccelerationListener listener) {
this.accelerationlistener.add(listener); this.accelerationlistener.add(listener);
} }
/** /**
* Adds a ButtonListener to the Device. Everytime a Button has been * Adds a ButtonListener to the Device. Everytime a Button has been
@@ -110,56 +111,56 @@ public class Device {
this.buttonlistener.add(listener); this.buttonlistener.add(listener);
} }
/** /**
* Adds a GestureListener to the Device. Everytime a gesture * Adds a GestureListener to the Device. Everytime a gesture
* is performed the GestureListener would receive an event of * is performed the GestureListener would receive an event of
* this gesture. * this gesture.
* *
* @param listener The Listener. * @param listener The Listener.
*/ */
public void addGestureListener(GestureListener listener) { public void addGestureListener(GestureListener listener) {
this.processingunit.addGestureListener(listener); this.processingunit.addGestureListener(listener);
} }
public int getRecognitionButton() { public int getRecognitionButton() {
return this.recognitionbutton; return this.recognitionbutton;
} }
public void setRecognitionButton(int b) { public void setRecognitionButton(int b) {
this.recognitionbutton=b; this.recognitionbutton = b;
} }
public int getTrainButton() { public int getTrainButton() {
return this.trainbutton; return this.trainbutton;
} }
public void setTrainButton(int b) { public void setTrainButton(int b) {
this.trainbutton=b; this.trainbutton = b;
} }
public int getCloseGestureButton() { public int getCloseGestureButton() {
return this.closegesturebutton; return this.closegesturebutton;
} }
public void setCloseGestureButton(int b) { public void setCloseGestureButton(int b) {
this.closegesturebutton=b; this.closegesturebutton = b;
} }
public ProcessingUnit getProcessingUnit() { public ProcessingUnit getProcessingUnit() {
return this.processingunit; return this.processingunit;
} }
public boolean accelerationEnabled() { public boolean accelerationEnabled() {
return this.accelerationenabled; return this.accelerationenabled;
} }
public void enableAccelerationSensors() throws IOException { public void enableAccelerationSensors() throws IOException {
this.accelerationenabled=true; this.accelerationenabled = true;
} }
public void disableAccelerationSensors() throws IOException { public void disableAccelerationSensors() throws IOException {
this.accelerationenabled=false; this.accelerationenabled = false;
} }
public void loadGesture(String filename) { public void loadGesture(String filename) {
this.processingunit.loadGesture(filename); this.processingunit.loadGesture(filename);
@@ -169,75 +170,73 @@ public class Device {
this.processingunit.saveGesture(id, filename); this.processingunit.saveGesture(id, filename);
} }
// ###### Event-Methoden // ###### Event-Methoden
/** Fires an acceleration event.
/** Fires an acceleration event. * @param vector Consists of three values:
* @param vector Consists of three values:
* acceleration on X, Y and Z axis. * acceleration on X, Y and Z axis.
*/ */
public void fireAccelerationEvent(double[] vector) { public void fireAccelerationEvent(double[] vector) {
for(int i=0; i<this.accfilters.size(); i++) { for (int i = 0; i < this.accfilters.size(); i++) {
vector = this.accfilters.get(i).filter(vector); vector = this.accfilters.get(i).filter(vector);
// cannot return here if null, because of time-dependent accfilters // cannot return here if null, because of time-dependent accfilters
} }
// don't need to create an event if filtered away // don't need to create an event if filtered away
if(vector!=null) { if (vector != null) {
// calculate the absolute value for the accelerationevent // calculate the absolute value for the accelerationevent
double absvalue = Math.sqrt((vector[0]*vector[0])+ double absvalue = Math.sqrt((vector[0] * vector[0]) +
(vector[1]*vector[1])+(vector[2]*vector[2])); (vector[1] * vector[1]) + (vector[2] * vector[2]));
AccelerationEvent w = new AccelerationEvent(this, AccelerationEvent w = new AccelerationEvent(this,
vector[0], vector[1], vector[2], absvalue); vector[0], vector[1], vector[2], absvalue);
for(int i=0; i<this.accelerationlistener.size(); i++) { for (int i = 0; i < this.accelerationlistener.size(); i++) {
this.accelerationlistener.get(i).accelerationReceived(w); this.accelerationlistener.get(i).accelerationReceived(w);
} }
} }
} // fireaccelerationevent } // fireaccelerationevent
/** Fires a button pressed event. /** Fires a button pressed event.
* @param button * @param button
* Integer value of the pressed button. * Integer value of the pressed button.
*/ */
public void fireButtonPressedEvent(int button) { public void fireButtonPressedEvent(int button) {
ButtonPressedEvent w = new ButtonPressedEvent(this, button); ButtonPressedEvent w = new ButtonPressedEvent(this, button);
for(int i=0; i<this.buttonlistener.size(); i++) { for (int i = 0; i < this.buttonlistener.size(); i++) {
this.buttonlistener.get(i).buttonPressReceived(w); this.buttonlistener.get(i).buttonPressReceived(w);
} }
if(w.isRecognitionInitEvent() || w.isTrainInitEvent()) { if (w.isRecognitionInitEvent() || w.isTrainInitEvent()) {
this.resetAccelerationFilters(); this.resetAccelerationFilters();
} }
} }
/** Fires a button released event. /** Fires a button released event.
*/ */
public void fireButtonReleasedEvent() { public void fireButtonReleasedEvent() {
ButtonReleasedEvent w = new ButtonReleasedEvent(this); ButtonReleasedEvent w = new ButtonReleasedEvent(this);
for(int i=0; i<this.buttonlistener.size(); i++) { for (int i = 0; i < this.buttonlistener.size(); i++) {
this.buttonlistener.get(i).buttonReleaseReceived(w); this.buttonlistener.get(i).buttonReleaseReceived(w);
} }
} }
/** /**
* Fires a motion start event. * Fires a motion start event.
*/ */
public void fireMotionStartEvent() { public void fireMotionStartEvent() {
MotionStartEvent w = new MotionStartEvent(this); MotionStartEvent w = new MotionStartEvent(this);
for(int i=0; i<this.accelerationlistener.size(); i++) { for (int i = 0; i < this.accelerationlistener.size(); i++) {
this.accelerationlistener.get(i).motionStartReceived(w); this.accelerationlistener.get(i).motionStartReceived(w);
} }
} }
/**
* Fires a motion stop event.
*/
public void fireMotionStopEvent() {
MotionStopEvent w = new MotionStopEvent(this);
for(int i=0; i<this.accelerationlistener.size(); i++) {
this.accelerationlistener.get(i).motionStopReceived(w);
}
}
/**
* Fires a motion stop event.
*/
public void fireMotionStopEvent() {
MotionStopEvent w = new MotionStopEvent(this);
for (int i = 0; i < this.accelerationlistener.size(); i++) {
this.accelerationlistener.get(i).motionStopReceived(w);
}
}
} }

View File

@@ -36,7 +36,7 @@ public class ClassifierTest extends TestCase {
public void testClassifyGesture() { public void testClassifyGesture() {
// create a pseudo-device // create a pseudo-device
Device d = new Device(); Device d = new Device(true);
// create 3 gestures // create 3 gestures
Gesture g0 = new Gesture(); Gesture g0 = new Gesture();