diff --git a/example_android_ipcamera/.classpath b/example_android_ipcamera/.classpath
new file mode 100644
index 0000000..2b29ada
--- /dev/null
+++ b/example_android_ipcamera/.classpath
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/example_android_ipcamera/.cproject b/example_android_ipcamera/.cproject
new file mode 100644
index 0000000..3b5ca13
--- /dev/null
+++ b/example_android_ipcamera/.cproject
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example_android_ipcamera/.project b/example_android_ipcamera/.project
new file mode 100644
index 0000000..bd9066b
--- /dev/null
+++ b/example_android_ipcamera/.project
@@ -0,0 +1,97 @@
+
+
+ ofxHTTPAndroidCamera
+
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.genmakebuilder
+ clean,full,incremental,
+
+
+ ?name?
+
+
+
+ org.eclipse.cdt.make.core.append_environment
+ true
+
+
+ org.eclipse.cdt.make.core.buildArguments
+
+
+
+ org.eclipse.cdt.make.core.buildCommand
+ make
+
+
+ org.eclipse.cdt.make.core.cleanBuildTarget
+ CleanRelease PLATFORM_OS=Android
+
+
+ org.eclipse.cdt.make.core.contents
+ org.eclipse.cdt.make.core.activeConfigSettings
+
+
+ org.eclipse.cdt.make.core.enableAutoBuild
+ false
+
+
+ org.eclipse.cdt.make.core.enableCleanBuild
+ true
+
+
+ org.eclipse.cdt.make.core.enableFullBuild
+ true
+
+
+ org.eclipse.cdt.make.core.fullBuildTarget
+ Release PLATFORM_OS=Android
+
+
+ org.eclipse.cdt.make.core.stopOnError
+ true
+
+
+ org.eclipse.cdt.make.core.useDefaultBuildCmd
+ false
+
+
+
+
+ com.android.ide.eclipse.adt.ResourceManagerBuilder
+
+
+
+
+ com.android.ide.eclipse.adt.PreCompilerBuilder
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ com.android.ide.eclipse.adt.ApkBuilder
+
+
+
+
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder
+ full,incremental,
+
+
+
+
+
+ com.android.ide.eclipse.adt.AndroidNature
+ org.eclipse.jdt.core.javanature
+ org.eclipse.cdt.core.cnature
+ org.eclipse.cdt.core.ccnature
+ org.eclipse.cdt.managedbuilder.core.managedBuildNature
+ org.eclipse.cdt.managedbuilder.core.ScannerConfigNature
+
+
diff --git a/example_android_ipcamera/.settings/org.eclipse.cdt.codan.core.prefs b/example_android_ipcamera/.settings/org.eclipse.cdt.codan.core.prefs
new file mode 100644
index 0000000..810101e
--- /dev/null
+++ b/example_android_ipcamera/.settings/org.eclipse.cdt.codan.core.prefs
@@ -0,0 +1,67 @@
+eclipse.preferences.version=1
+org.eclipse.cdt.codan.checkers.errnoreturn=Warning
+org.eclipse.cdt.codan.checkers.errnoreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.checkers.errreturnvalue=Error
+org.eclipse.cdt.codan.checkers.errreturnvalue.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.checkers.noreturn=Error
+org.eclipse.cdt.codan.checkers.noreturn.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},implicit\=>false}
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation=-Error
+org.eclipse.cdt.codan.internal.checkers.AbstractClassCreation.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.AmbiguousProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.AssignmentInConditionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem=Error
+org.eclipse.cdt.codan.internal.checkers.AssignmentToItselfProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.CaseBreakProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},no_break_comment\=>"no break",last_case_param\=>true,empty_case_param\=>false}
+org.eclipse.cdt.codan.internal.checkers.CatchByReference=Warning
+org.eclipse.cdt.codan.internal.checkers.CatchByReference.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},unknown\=>false,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.CircularReferenceProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization=Warning
+org.eclipse.cdt.codan.internal.checkers.ClassMembersInitialization.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},skip\=>true}
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.FieldResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.FunctionResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments=-Error
+org.eclipse.cdt.codan.internal.checkers.InvalidArguments.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.InvalidTemplateArgumentsProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.LabelStatementNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.MemberDeclarationNotFoundProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.MethodResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker=-Info
+org.eclipse.cdt.codan.internal.checkers.NamingConventionFunctionChecker.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},pattern\=>"^[a-z]",macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.NonVirtualDestructorProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.OverloadProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.RedeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.RedefinitionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ReturnStyleProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem=-Warning
+org.eclipse.cdt.codan.internal.checkers.ScanfFormatStringSecurityProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.StatementHasNoEffectProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>()}
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuggestedParenthesisProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},paramNot\=>false}
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.SuspiciousSemicolonProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},else\=>false,afterelse\=>false}
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.TypeResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedFunctionDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedStaticFunctionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true}
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem=Warning
+org.eclipse.cdt.codan.internal.checkers.UnusedVariableDeclarationProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true},macro\=>true,exceptions\=>("@(\#)","$Id")}
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem=-Error
+org.eclipse.cdt.codan.internal.checkers.VariableResolutionProblem.params={launchModes\=>{RUN_ON_FULL_BUILD\=>true,RUN_ON_INC_BUILD\=>true,RUN_ON_FILE_OPEN\=>false,RUN_ON_FILE_SAVE\=>false,RUN_AS_YOU_TYPE\=>true,RUN_ON_DEMAND\=>true}}
diff --git a/example_android_ipcamera/.settings/org.eclipse.jdt.core.prefs b/example_android_ipcamera/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8000cd6
--- /dev/null
+++ b/example_android_ipcamera/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,11 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
diff --git a/example_android_ipcamera/AndroidManifest.xml b/example_android_ipcamera/AndroidManifest.xml
new file mode 100644
index 0000000..37a648f
--- /dev/null
+++ b/example_android_ipcamera/AndroidManifest.xml
@@ -0,0 +1,31 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example_android_ipcamera/Makefile b/example_android_ipcamera/Makefile
new file mode 100644
index 0000000..7a7fe8b
--- /dev/null
+++ b/example_android_ipcamera/Makefile
@@ -0,0 +1,13 @@
+# Attempt to load a config.make file.
+# If none is found, project defaults in config.project.make will be used.
+ifneq ($(wildcard config.make),)
+ include config.make
+endif
+
+# make sure the the OF_ROOT location is defined
+ifndef OF_ROOT
+ OF_ROOT=../../..
+endif
+
+# call the project makefile!
+include $(OF_ROOT)/libs/openFrameworksCompiled/project/makefileCommon/compile.project.mk
diff --git a/example_android_ipcamera/addons.make b/example_android_ipcamera/addons.make
new file mode 100644
index 0000000..ddc178d
--- /dev/null
+++ b/example_android_ipcamera/addons.make
@@ -0,0 +1,7 @@
+ofxAndroid
+ofxAccelerometer
+ofxHTTP
+ofxIO
+ofxMediaType
+ofxSSLManager
+ofxTaskQueue
diff --git a/example_android_ipcamera/build.xml b/example_android_ipcamera/build.xml
new file mode 100644
index 0000000..024f138
--- /dev/null
+++ b/example_android_ipcamera/build.xml
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/example_android_ipcamera/config.make b/example_android_ipcamera/config.make
new file mode 100644
index 0000000..836fce7
--- /dev/null
+++ b/example_android_ipcamera/config.make
@@ -0,0 +1,141 @@
+################################################################################
+# CONFIGURE PROJECT MAKEFILE (optional)
+# This file is where we make project specific configurations.
+################################################################################
+
+################################################################################
+# OF ROOT
+# The location of your root openFrameworks installation
+# (default) OF_ROOT = ../../..
+################################################################################
+# OF_ROOT = ../../..
+
+################################################################################
+# PROJECT ROOT
+# The location of the project - a starting place for searching for files
+# (default) PROJECT_ROOT = . (this directory)
+#
+################################################################################
+# PROJECT_ROOT = .
+
+################################################################################
+# PROJECT SPECIFIC CHECKS
+# This is a project defined section to create internal makefile flags to
+# conditionally enable or disable the addition of various features within
+# this makefile. For instance, if you want to make changes based on whether
+# GTK is installed, one might test that here and create a variable to check.
+################################################################################
+# None
+
+################################################################################
+# PROJECT EXTERNAL SOURCE PATHS
+# These are fully qualified paths that are not within the PROJECT_ROOT folder.
+# Like source folders in the PROJECT_ROOT, these paths are subject to
+# exlclusion via the PROJECT_EXLCUSIONS list.
+#
+# (default) PROJECT_EXTERNAL_SOURCE_PATHS = (blank)
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXTERNAL_SOURCE_PATHS =
+
+################################################################################
+# PROJECT EXCLUSIONS
+# These makefiles assume that all folders in your current project directory
+# and any listed in the PROJECT_EXTERNAL_SOURCH_PATHS are are valid locations
+# to look for source code. The any folders or files that match any of the
+# items in the PROJECT_EXCLUSIONS list below will be ignored.
+#
+# Each item in the PROJECT_EXCLUSIONS list will be treated as a complete
+# string unless teh user adds a wildcard (%) operator to match subdirectories.
+# GNU make only allows one wildcard for matching. The second wildcard (%) is
+# treated literally.
+#
+# (default) PROJECT_EXCLUSIONS = (blank)
+#
+# Will automatically exclude the following:
+#
+# $(PROJECT_ROOT)/bin%
+# $(PROJECT_ROOT)/obj%
+# $(PROJECT_ROOT)/%.xcodeproj
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_EXCLUSIONS =
+
+################################################################################
+# PROJECT LINKER FLAGS
+# These flags will be sent to the linker when compiling the executable.
+#
+# (default) PROJECT_LDFLAGS = -Wl,-rpath=./libs
+#
+# Note: Leave a leading space when adding list items with the += operator
+#
+# Currently, shared libraries that are needed are copied to the
+# $(PROJECT_ROOT)/bin/libs directory. The following LDFLAGS tell the linker to
+# add a runtime path to search for those shared libraries, since they aren't
+# incorporated directly into the final executable application binary.
+################################################################################
+# PROJECT_LDFLAGS=-Wl,-rpath=./libs
+
+################################################################################
+# PROJECT DEFINES
+# Create a space-delimited list of DEFINES. The list will be converted into
+# CFLAGS with the "-D" flag later in the makefile.
+#
+# (default) PROJECT_DEFINES = (blank)
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_DEFINES =
+
+################################################################################
+# PROJECT CFLAGS
+# This is a list of fully qualified CFLAGS required when compiling for this
+# project. These CFLAGS will be used IN ADDITION TO the PLATFORM_CFLAGS
+# defined in your platform specific core configuration files. These flags are
+# presented to the compiler BEFORE the PROJECT_OPTIMIZATION_CFLAGS below.
+#
+# (default) PROJECT_CFLAGS = (blank)
+#
+# Note: Before adding PROJECT_CFLAGS, note that the PLATFORM_CFLAGS defined in
+# your platform specific configuration file will be applied by default and
+# further flags here may not be needed.
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CFLAGS =
+
+################################################################################
+# PROJECT OPTIMIZATION CFLAGS
+# These are lists of CFLAGS that are target-specific. While any flags could
+# be conditionally added, they are usually limited to optimization flags.
+# These flags are added BEFORE the PROJECT_CFLAGS.
+#
+# PROJECT_OPTIMIZATION_CFLAGS_RELEASE flags are only applied to RELEASE targets.
+#
+# (default) PROJECT_OPTIMIZATION_CFLAGS_RELEASE = (blank)
+#
+# PROJECT_OPTIMIZATION_CFLAGS_DEBUG flags are only applied to DEBUG targets.
+#
+# (default) PROJECT_OPTIMIZATION_CFLAGS_DEBUG = (blank)
+#
+# Note: Before adding PROJECT_OPTIMIZATION_CFLAGS, please note that the
+# PLATFORM_OPTIMIZATION_CFLAGS defined in your platform specific configuration
+# file will be applied by default and further optimization flags here may not
+# be needed.
+#
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_OPTIMIZATION_CFLAGS_RELEASE =
+# PROJECT_OPTIMIZATION_CFLAGS_DEBUG =
+
+################################################################################
+# PROJECT COMPILERS
+# Custom compilers can be set for CC and CXX
+# (default) PROJECT_CXX = (blank)
+# (default) PROJECT_CC = (blank)
+# Note: Leave a leading space when adding list items with the += operator
+################################################################################
+# PROJECT_CXX =
+# PROJECT_CC =
diff --git a/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/BuildConfig.java b/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/BuildConfig.java
new file mode 100644
index 0000000..57182dd
--- /dev/null
+++ b/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/BuildConfig.java
@@ -0,0 +1,6 @@
+/** Automatically generated file. DO NOT MODIFY */
+package cc.openframeworks.androidCameraExample;
+
+public final class BuildConfig {
+ public final static boolean DEBUG = true;
+}
\ No newline at end of file
diff --git a/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/R.java b/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/R.java
new file mode 100644
index 0000000..44bd87b
--- /dev/null
+++ b/example_android_ipcamera/gen/cc/openframeworks/androidCameraExample/R.java
@@ -0,0 +1,66 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package cc.openframeworks.androidCameraExample;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int ic_launcher=0x7f020000;
+ public static final int icon=0x7f020001;
+ }
+ public static final class id {
+ public static final int menu_settings=0x7f080002;
+ public static final int of_gl_surface=0x7f080001;
+ public static final int relativeLayout1=0x7f080000;
+ }
+ public static final class layout {
+ public static final int main=0x7f030000;
+ public static final int main_layout=0x7f030001;
+ }
+ public static final class menu {
+ public static final int main_layout=0x7f070000;
+ }
+ public static final class raw {
+ public static final int androidcameraexampleresources=0x7f040000;
+ }
+ public static final class string {
+ public static final int app_name=0x7f050001;
+ public static final int hello=0x7f050000;
+ public static final int hello_world=0x7f050002;
+ public static final int menu_settings=0x7f050003;
+ }
+ public static final class style {
+ /**
+ Base application theme, dependent on API level. This theme is replaced
+ by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
+
+
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+
+
+ Base application theme for API 11+. This theme completely replaces
+ AppBaseTheme from res/values/styles.xml on API 11+ devices.
+
+ API 11 theme customizations can go here.
+
+ Base application theme for API 14+. This theme completely replaces
+ AppBaseTheme from BOTH res/values/styles.xml and
+ res/values-v11/styles.xml on API 14+ devices.
+
+ API 14 theme customizations can go here.
+ */
+ public static final int AppBaseTheme=0x7f060000;
+ /** Application theme.
+ All customizations that are NOT specific to a particular API-level can go here.
+ */
+ public static final int AppTheme=0x7f060001;
+ }
+}
diff --git a/example_android_ipcamera/gen/cc/openframeworks/cc/R.java b/example_android_ipcamera/gen/cc/openframeworks/cc/R.java
new file mode 100644
index 0000000..0f70555
--- /dev/null
+++ b/example_android_ipcamera/gen/cc/openframeworks/cc/R.java
@@ -0,0 +1,20 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+package cc.openframeworks.cc;
+
+public final class R {
+ public static final class drawable {
+ public static final int icon = 0x7f020001;
+ }
+ public static final class layout {
+ public static final int main = 0x7f030000;
+ }
+ public static final class string {
+ public static final int app_name = 0x7f050001;
+ public static final int hello = 0x7f050000;
+ }
+}
diff --git a/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/BuildConfig.java b/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/BuildConfig.java
new file mode 100644
index 0000000..958a5d8
--- /dev/null
+++ b/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/BuildConfig.java
@@ -0,0 +1,6 @@
+/** Automatically generated file. DO NOT MODIFY */
+package cc.openframeworks.ofxhttpandroidcamera;
+
+public final class BuildConfig {
+ public final static boolean DEBUG = true;
+}
\ No newline at end of file
diff --git a/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/R.java b/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/R.java
new file mode 100644
index 0000000..c38d635
--- /dev/null
+++ b/example_android_ipcamera/gen/cc/openframeworks/ofxhttpandroidcamera/R.java
@@ -0,0 +1,66 @@
+/* AUTO-GENERATED FILE. DO NOT MODIFY.
+ *
+ * This class was automatically generated by the
+ * aapt tool from the resource data it found. It
+ * should not be modified by hand.
+ */
+
+package cc.openframeworks.ofxhttpandroidcamera;
+
+public final class R {
+ public static final class attr {
+ }
+ public static final class drawable {
+ public static final int ic_launcher=0x7f020000;
+ public static final int icon=0x7f020001;
+ }
+ public static final class id {
+ public static final int menu_settings=0x7f080002;
+ public static final int of_gl_surface=0x7f080001;
+ public static final int relativeLayout1=0x7f080000;
+ }
+ public static final class layout {
+ public static final int main=0x7f030000;
+ public static final int main_layout=0x7f030001;
+ }
+ public static final class menu {
+ public static final int main_layout=0x7f070000;
+ }
+ public static final class raw {
+ public static final int androidcameraexampleresources=0x7f040000;
+ }
+ public static final class string {
+ public static final int app_name=0x7f050001;
+ public static final int hello=0x7f050000;
+ public static final int hello_world=0x7f050002;
+ public static final int menu_settings=0x7f050003;
+ }
+ public static final class style {
+ /**
+ Base application theme, dependent on API level. This theme is replaced
+ by AppBaseTheme from res/values-vXX/styles.xml on newer devices.
+
+
+ Theme customizations available in newer API levels can go in
+ res/values-vXX/styles.xml, while customizations related to
+ backward-compatibility can go here.
+
+
+ Base application theme for API 11+. This theme completely replaces
+ AppBaseTheme from res/values/styles.xml on API 11+ devices.
+
+ API 11 theme customizations can go here.
+
+ Base application theme for API 14+. This theme completely replaces
+ AppBaseTheme from BOTH res/values/styles.xml and
+ res/values-v11/styles.xml on API 14+ devices.
+
+ API 14 theme customizations can go here.
+ */
+ public static final int AppBaseTheme=0x7f060000;
+ /** Application theme.
+ All customizations that are NOT specific to a particular API-level can go here.
+ */
+ public static final int AppTheme=0x7f060001;
+ }
+}
diff --git a/example_android_ipcamera/ic_launcher-web.png b/example_android_ipcamera/ic_launcher-web.png
new file mode 100644
index 0000000..70b562f
Binary files /dev/null and b/example_android_ipcamera/ic_launcher-web.png differ
diff --git a/example_android_ipcamera/jni/Android.mk b/example_android_ipcamera/jni/Android.mk
new file mode 100644
index 0000000..7edc9c0
--- /dev/null
+++ b/example_android_ipcamera/jni/Android.mk
@@ -0,0 +1 @@
+LOCAL_MODULE := OFAndroidApp
diff --git a/example_android_ipcamera/jni/Application.mk b/example_android_ipcamera/jni/Application.mk
new file mode 100644
index 0000000..90cfd8b
--- /dev/null
+++ b/example_android_ipcamera/jni/Application.mk
@@ -0,0 +1 @@
+APP_ABI := armeabi armeabi-v7a x86
diff --git a/example_android_ipcamera/libs/android-support-v4.jar b/example_android_ipcamera/libs/android-support-v4.jar
new file mode 100644
index 0000000..6080877
Binary files /dev/null and b/example_android_ipcamera/libs/android-support-v4.jar differ
diff --git a/example_android_ipcamera/libs/armeabi-v7a/gdb.setup b/example_android_ipcamera/libs/armeabi-v7a/gdb.setup
new file mode 100644
index 0000000..35839f9
--- /dev/null
+++ b/example_android_ipcamera/libs/armeabi-v7a/gdb.setup
@@ -0,0 +1,6 @@
+set solib-search-path /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/obj/local/armeabi-v7a:/Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/armeabi-v7a
+directory /Users/dantheman/src/android/android-ndk-r9b/platforms/android-17/arch-arm/usr/include
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/src
+directory /Users/dantheman/src/android/android-ndk-r9b/sources/cxx-stl/system
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/armeabi-v7a
+
diff --git a/example_android_ipcamera/libs/armeabi-v7a/gdbserver b/example_android_ipcamera/libs/armeabi-v7a/gdbserver
new file mode 100755
index 0000000..b5a5c60
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi-v7a/gdbserver differ
diff --git a/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp.so b/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp.so
new file mode 100755
index 0000000..cff6fb9
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp.so differ
diff --git a/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp_neon.so b/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp_neon.so
new file mode 100755
index 0000000..3ccb5bf
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi-v7a/libOFAndroidApp_neon.so differ
diff --git a/example_android_ipcamera/libs/armeabi-v7a/libneondetection.so b/example_android_ipcamera/libs/armeabi-v7a/libneondetection.so
new file mode 100644
index 0000000..231da3b
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi-v7a/libneondetection.so differ
diff --git a/example_android_ipcamera/libs/armeabi/gdb.setup b/example_android_ipcamera/libs/armeabi/gdb.setup
new file mode 100644
index 0000000..5f85099
--- /dev/null
+++ b/example_android_ipcamera/libs/armeabi/gdb.setup
@@ -0,0 +1,6 @@
+set solib-search-path /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/obj/local/armeabi:/Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/armeabi
+directory /Users/dantheman/src/android/android-ndk-r9b/platforms/android-17/arch-arm/usr/include
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/src
+directory /Users/dantheman/src/android/android-ndk-r9b/sources/cxx-stl/system
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/armeabi
+
diff --git a/example_android_ipcamera/libs/armeabi/gdbserver b/example_android_ipcamera/libs/armeabi/gdbserver
new file mode 100755
index 0000000..b5a5c60
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi/gdbserver differ
diff --git a/example_android_ipcamera/libs/armeabi/libOFAndroidApp.so b/example_android_ipcamera/libs/armeabi/libOFAndroidApp.so
new file mode 100755
index 0000000..1cff3ef
Binary files /dev/null and b/example_android_ipcamera/libs/armeabi/libOFAndroidApp.so differ
diff --git a/example_android_ipcamera/libs/x86/gdb.setup b/example_android_ipcamera/libs/x86/gdb.setup
new file mode 100644
index 0000000..95c3663
--- /dev/null
+++ b/example_android_ipcamera/libs/x86/gdb.setup
@@ -0,0 +1,6 @@
+set solib-search-path /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/obj/local/x86:/Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/x86
+directory /Users/dantheman/src/android/android-ndk-r9b/platforms/android-17/arch-arm/usr/include
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/src
+directory /Users/dantheman/src/android/android-ndk-r9b/sources/cxx-stl/system
+directory /Users/dantheman/src/openFrameworks/apps/TweetABooth/ofxHTTPAndroidCamera/libs/x86
+
diff --git a/example_android_ipcamera/libs/x86/libOFAndroidApp.so b/example_android_ipcamera/libs/x86/libOFAndroidApp.so
new file mode 100755
index 0000000..a1687a5
Binary files /dev/null and b/example_android_ipcamera/libs/x86/libOFAndroidApp.so differ
diff --git a/example_android_ipcamera/proguard-project.txt b/example_android_ipcamera/proguard-project.txt
new file mode 100644
index 0000000..f2fe155
--- /dev/null
+++ b/example_android_ipcamera/proguard-project.txt
@@ -0,0 +1,20 @@
+# To enable ProGuard in your project, edit project.properties
+# to define the proguard.config property as described in that file.
+#
+# Add project specific ProGuard rules here.
+# By default, the flags in this file are appended to flags specified
+# in ${sdk.dir}/tools/proguard/proguard-android.txt
+# You can edit the include path and order by changing the ProGuard
+# include property in project.properties.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# Add any project specific keep options here:
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
diff --git a/example_android_ipcamera/project.properties b/example_android_ipcamera/project.properties
new file mode 100644
index 0000000..1052e2e
--- /dev/null
+++ b/example_android_ipcamera/project.properties
@@ -0,0 +1,15 @@
+# This file is automatically generated by Android Tools.
+# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
+#
+# This file must be checked in Version Control Systems.
+#
+# To customize properties used by the Ant build system edit
+# "ant.properties", and override values to adapt the script to your
+# project structure.
+#
+# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
+#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
+
+# Project target.
+target=android-19
+android.library.reference.1=../../../addons/ofxAndroid/ofAndroidLib
diff --git a/example_android_ipcamera/res/drawable/ic_launcher.png b/example_android_ipcamera/res/drawable/ic_launcher.png
new file mode 100644
index 0000000..70b562f
Binary files /dev/null and b/example_android_ipcamera/res/drawable/ic_launcher.png differ
diff --git a/example_android_ipcamera/res/layout/main_layout.xml b/example_android_ipcamera/res/layout/main_layout.xml
new file mode 100644
index 0000000..80964dd
--- /dev/null
+++ b/example_android_ipcamera/res/layout/main_layout.xml
@@ -0,0 +1,7 @@
+
+
+
+
+
diff --git a/example_android_ipcamera/res/menu/main_layout.xml b/example_android_ipcamera/res/menu/main_layout.xml
new file mode 100644
index 0000000..7ddcfbe
--- /dev/null
+++ b/example_android_ipcamera/res/menu/main_layout.xml
@@ -0,0 +1,8 @@
+
\ No newline at end of file
diff --git a/example_android_ipcamera/res/values-v11/styles.xml b/example_android_ipcamera/res/values-v11/styles.xml
new file mode 100644
index 0000000..541752f
--- /dev/null
+++ b/example_android_ipcamera/res/values-v11/styles.xml
@@ -0,0 +1,11 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example_android_ipcamera/res/values-v14/styles.xml b/example_android_ipcamera/res/values-v14/styles.xml
new file mode 100644
index 0000000..f20e015
--- /dev/null
+++ b/example_android_ipcamera/res/values-v14/styles.xml
@@ -0,0 +1,12 @@
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example_android_ipcamera/res/values/strings.xml b/example_android_ipcamera/res/values/strings.xml
new file mode 100644
index 0000000..066bc59
--- /dev/null
+++ b/example_android_ipcamera/res/values/strings.xml
@@ -0,0 +1,8 @@
+
+
+
+ androidCameraExample
+ Hello world!
+ Settings
+
+
\ No newline at end of file
diff --git a/example_android_ipcamera/res/values/styles.xml b/example_android_ipcamera/res/values/styles.xml
new file mode 100644
index 0000000..4a10ca4
--- /dev/null
+++ b/example_android_ipcamera/res/values/styles.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/example_android_ipcamera/src/main.cpp b/example_android_ipcamera/src/main.cpp
new file mode 100644
index 0000000..bc252b8
--- /dev/null
+++ b/example_android_ipcamera/src/main.cpp
@@ -0,0 +1,24 @@
+#include "ofMain.h"
+#include "ofApp.h"
+
+int main(){
+ ofSetupOpenGL(1024,768, OF_WINDOW); // <-------- setup the GL context
+
+ // this kicks off the running of my app
+ // can be OF_WINDOW or OF_FULLSCREEN
+ // pass in width and height too:
+ ofRunApp( new ofApp() );
+ return 0;
+}
+
+
+#ifdef TARGET_ANDROID
+#include
+
+//========================================================================
+extern "C"{
+ void Java_cc_openframeworks_OFAndroid_init( JNIEnv* env, jobject thiz ){
+ main();
+ }
+}
+#endif
diff --git a/example_android_ipcamera/src/ofApp.cpp b/example_android_ipcamera/src/ofApp.cpp
new file mode 100644
index 0000000..1668cd7
--- /dev/null
+++ b/example_android_ipcamera/src/ofApp.cpp
@@ -0,0 +1,136 @@
+#include "ofApp.h"
+#include "ofxAndroidVideoGrabber.h"
+
+//--------------------------------------------------------------
+void ofApp::setup(){
+ ofBackground(255,255,255);
+ ofSetLogLevel(OF_LOG_NOTICE);
+ ofSetOrientation(OF_ORIENTATION_90_LEFT);
+ grabber.initGrabber(640,480);
+ ofSetFrameRate(60);
+ one_second_time = ofGetElapsedTimeMillis();
+ camera_fps = 0;
+ frames_one_sec = 0;
+
+ ofx::HTTP::BasicIPVideoServerSettings settings;
+
+ // Many other settings are available.
+ settings.setPort(7890);
+
+ // The default maximum number of client connections is 5.
+ settings.setMaxClientConnections(1);
+
+ // Apply the settings.
+ server = ofx::HTTP::BasicIPVideoServer::makeShared(settings);
+
+ // Start the server.
+ server->start();
+
+}
+
+//--------------------------------------------------------------
+void ofApp::update(){
+ grabber.update();
+ if(grabber.isFrameNew()){
+ frames_one_sec++;
+ if( ofGetElapsedTimeMillis() - one_second_time >= 1000){
+ camera_fps = frames_one_sec;
+ frames_one_sec = 0;
+ one_second_time = ofGetElapsedTimeMillis();
+ }
+ server->send(grabber.getPixelsRef());
+ }
+}
+
+//--------------------------------------------------------------
+void ofApp::draw(){
+ ofSetHexColor(0xFFFFFF);
+ grabber.draw(20,20);
+ ofSetHexColor(0x000000);
+ std::stringstream ss;
+
+ ss << "Num clients connected: ";
+ ss << server->getNumConnections();
+
+ ofDrawBitmapStringHighlight(ss.str(), 20, 20);
+}
+
+//--------------------------------------------------------------
+void ofApp::keyPressed (int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::keyReleased(int key){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::windowResized(int w, int h){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::touchDown(int x, int y, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::touchMoved(int x, int y, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::touchUp(int x, int y, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::touchDoubleTap(int x, int y, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::touchCancelled(int x, int y, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::swipe(ofxAndroidSwipeDir swipeDir, int id){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::pause(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::stop(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::resume(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::reloadTextures(){
+
+}
+
+//--------------------------------------------------------------
+bool ofApp::backPressed(){
+ return false;
+}
+
+//--------------------------------------------------------------
+void ofApp::okPressed(){
+
+}
+
+//--------------------------------------------------------------
+void ofApp::cancelPressed(){
+
+}
diff --git a/example_android_ipcamera/src/ofApp.h b/example_android_ipcamera/src/ofApp.h
new file mode 100644
index 0000000..e612ae8
--- /dev/null
+++ b/example_android_ipcamera/src/ofApp.h
@@ -0,0 +1,42 @@
+#pragma once
+
+#include "ofMain.h"
+#include "ofxAndroid.h"
+#include "ofxHTTP.h"
+class ofApp : public ofxAndroidApp{
+
+ public:
+
+ void setup();
+ void update();
+ void draw();
+
+ void keyPressed(int key);
+ void keyReleased(int key);
+ void windowResized(int w, int h);
+
+ void touchDown(int x, int y, int id);
+ void touchMoved(int x, int y, int id);
+ void touchUp(int x, int y, int id);
+ void touchDoubleTap(int x, int y, int id);
+ void touchCancelled(int x, int y, int id);
+ void swipe(ofxAndroidSwipeDir swipeDir, int id);
+
+ void pause();
+ void stop();
+ void resume();
+ void reloadTextures();
+
+ bool backPressed();
+ void okPressed();
+ void cancelPressed();
+
+
+ ofVideoGrabber grabber;
+ int one_second_time;
+ int camera_fps;
+ int frames_one_sec;
+
+ ofx::HTTP::BasicIPVideoServer::SharedPtr server;
+
+};
diff --git a/example_android_ipcamera/srcJava/cc/ofxhttp/androidcamera/OFActivity.java b/example_android_ipcamera/srcJava/cc/ofxhttp/androidcamera/OFActivity.java
new file mode 100644
index 0000000..2ac4aad
--- /dev/null
+++ b/example_android_ipcamera/srcJava/cc/ofxhttp/androidcamera/OFActivity.java
@@ -0,0 +1,92 @@
+package cc.ofxhttp.androidcamera;
+
+import android.os.Bundle;
+import android.view.KeyEvent;
+import android.view.Menu;
+import android.view.MenuItem;
+import android.view.WindowManager;
+import cc.openframeworks.OFAndroid;
+
+
+public class OFActivity extends cc.openframeworks.OFActivity{
+
+ @Override
+ public void onCreate(Bundle savedInstanceState)
+ {
+ super.onCreate(savedInstanceState);
+ String packageName = getPackageName();
+ getWindow().setType(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);
+ ofApp = new OFAndroid(packageName,this);
+ }
+
+ @Override
+ public void onDetachedFromWindow() {
+ }
+
+ @Override
+ protected void onPause() {
+ super.onPause();
+ ofApp.pause();
+ }
+
+ @Override
+ protected void onResume() {
+ super.onResume();
+ ofApp.resume();
+ }
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if (OFAndroid.keyDown(keyCode, event)) {
+ return true;
+ } else {
+ return super.onKeyDown(keyCode, event);
+ }
+ }
+
+ @Override
+ public boolean onKeyUp(int keyCode, KeyEvent event) {
+ if (OFAndroid.keyUp(keyCode, event)) {
+ return true;
+ } else {
+ return super.onKeyUp(keyCode, event);
+ }
+ }
+
+
+ OFAndroid ofApp;
+
+
+
+ // Menus
+ // http://developer.android.com/guide/topics/ui/menus.html
+ @Override
+ public boolean onCreateOptionsMenu(Menu menu) {
+ // Create settings menu options from here, one by one or infalting an xml
+ return super.onCreateOptionsMenu(menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ // This passes the menu option string to OF
+ // you can add additional behavior from java modifying this method
+ // but keep the call to OFAndroid so OF is notified of menu events
+ if(OFAndroid.menuItemSelected(item.getItemId())){
+
+ return true;
+ }
+ return super.onOptionsItemSelected(item);
+ }
+
+
+ @Override
+ public boolean onPrepareOptionsMenu (Menu menu){
+ // This method is called every time the menu is opened
+ // you can add or remove menu options from here
+ return super.onPrepareOptionsMenu(menu);
+ }
+
+}
+
+
+