MLECO-2082: Adding visual wake word use case
MLECO-2083: Refactoring img_class and visual wake word

*Added source files for visual wake word
*Added tests
*Added docs
*Added new images for visual wake word demo
*Refactored common functions in img_class, visual wake word and other usecases

Change-Id: Ibd25854e19a5517f940a8d3086a5d4835fab89e9
Signed-off-by: Éanna Ó Catháin <eanna.ocathain@arm.com>
diff --git a/source/use_case/kws/src/UseCaseHandler.cc b/source/use_case/kws/src/UseCaseHandler.cc
index 2144c03..a951e55 100644
--- a/source/use_case/kws/src/UseCaseHandler.cc
+++ b/source/use_case/kws/src/UseCaseHandler.cc
@@ -33,20 +33,7 @@
 namespace arm {
 namespace app {
 
-    /**
-    * @brief            Helper function to increment current audio clip index.
-    * @param[in,out]    ctx   Pointer to the application context object.
-    **/
-    static void IncrementAppCtxClipIdx(ApplicationContext& ctx);
-
-    /**
-     * @brief           Helper function to set the audio clip index.
-     * @param[in,out]   ctx   Pointer to the application context object.
-     * @param[in]       idx   Value to be set.
-     * @return          true if index is set, false otherwise.
-     **/
-    static bool SetAppCtxClipIdx(ApplicationContext& ctx, uint32_t idx);
-
+   
     /**
      * @brief           Presents inference results using the data presentation
      *                  object.
@@ -94,7 +81,7 @@
 
         /* If the request has a valid size, set the audio index. */
         if (clipIndex < NUMBER_OF_FILES) {
-            if (!SetAppCtxClipIdx(ctx, clipIndex)) {
+            if (!SetAppCtxIfmIdx(ctx, clipIndex,"clipIndex")) {
                 return false;
             }
         }
@@ -246,36 +233,14 @@
 
             profiler.PrintProfilingResult();
 
-            IncrementAppCtxClipIdx(ctx);
+            IncrementAppCtxIfmIdx(ctx,"clipIndex");
 
         } while (runAll && ctx.Get<uint32_t>("clipIndex") != startClipIdx);
 
         return true;
     }
 
-    static void IncrementAppCtxClipIdx(ApplicationContext& ctx)
-    {
-        auto curAudioIdx = ctx.Get<uint32_t>("clipIndex");
-
-        if (curAudioIdx + 1 >= NUMBER_OF_FILES) {
-            ctx.Set<uint32_t>("clipIndex", 0);
-            return;
-        }
-        ++curAudioIdx;
-        ctx.Set<uint32_t>("clipIndex", curAudioIdx);
-    }
-
-    static bool SetAppCtxClipIdx(ApplicationContext& ctx, uint32_t idx)
-    {
-        if (idx >= NUMBER_OF_FILES) {
-            printf_err("Invalid idx %" PRIu32 " (expected less than %u)\n",
-                       idx, NUMBER_OF_FILES);
-            return false;
-        }
-        ctx.Set<uint32_t>("clipIndex", idx);
-        return true;
-    }
-
+    
     static bool PresentInferenceResult(hal_platform& platform,
                                        const std::vector<arm::app::kws::KwsResult>& results)
     {