Author: sayer
Date: 2009-01-27 23:26:43 +0100 (Tue, 27 Jan 2009)
New Revision: 1248

Modified:
   trunk/apps/dsm/DSM.cpp
   trunk/apps/dsm/DSMDialog.cpp
   trunk/apps/dsm/DSMDialog.h
Log:
fixed prompts fallback

Modified: trunk/apps/dsm/DSM.cpp
===================================================================
--- trunk/apps/dsm/DSM.cpp      2009-01-27 18:36:04 UTC (rev 1247)
+++ trunk/apps/dsm/DSM.cpp      2009-01-27 22:26:43 UTC (rev 1248)
@@ -242,8 +242,7 @@
   } else {
     start_diag = req.cmd;
   }
-
-  DSMDialog* s = new DSMDialog(prompts, diags, start_diag, NULL);
+  DSMDialog* s = new DSMDialog(&prompts, diags, start_diag, NULL);
   prepareSession(s);
   return s;
 }
@@ -270,7 +269,7 @@
       cred = dynamic_cast<UACAuthCred*>(cred_obj);
   }
 
-  DSMDialog* s = new DSMDialog(prompts, diags, start_diag, cred); 
+  DSMDialog* s = new DSMDialog(&prompts, diags, start_diag, cred); 
   prepareSession(s);
 
   if (NULL == cred) {

Modified: trunk/apps/dsm/DSMDialog.cpp
===================================================================
--- trunk/apps/dsm/DSMDialog.cpp        2009-01-27 18:36:04 UTC (rev 1247)
+++ trunk/apps/dsm/DSMDialog.cpp        2009-01-27 22:26:43 UTC (rev 1248)
@@ -30,7 +30,7 @@
 #include "AmMediaProcessor.h"
 #include "DSM.h"
 
-DSMDialog::DSMDialog(AmPromptCollection& prompts,
+DSMDialog::DSMDialog(AmPromptCollection* prompts,
                     DSMStateDiagramCollection& diags,
                     const string& startDiagName,
                     UACAuthCred* credentials)
@@ -47,7 +47,7 @@
         audiofiles.begin();it!=audiofiles.end();it++) 
     delete *it;
 
-  used_prompt_sets.insert(&prompts);
+  used_prompt_sets.insert(prompts);
   for (set<AmPromptCollection*>::iterator it=
         used_prompt_sets.begin(); it != used_prompt_sets.end(); it++)
     (*it)->cleanup((long)this);
@@ -175,14 +175,15 @@
 
 void DSMDialog::playPrompt(const string& name, bool loop) {
   DBG("playing prompt '%s'\n", name.c_str());
-  if (prompts.addToPlaylist(name,  (long)this, playlist, 
+  if (prompts->addToPlaylist(name,  (long)this, playlist, 
                            /*front =*/ false, loop))  {
     if ((var["prompts.default_fallback"] != "yes") ||
-      default_prompts.addToPlaylist(name,  (long)this, playlist, 
+      default_prompts->addToPlaylist(name,  (long)this, playlist, 
                                    /*front =*/ false, loop)) {
+       DBG("checked [%p]\n", default_prompts);
       SET_ERRNO(DSM_ERRNO_UNKNOWN_ARG);
     } else {
-      used_prompt_sets.insert(&default_prompts);
+      used_prompt_sets.insert(default_prompts);
       SET_ERRNO(DSM_ERRNO_OK);    
     }      
   } else {
@@ -270,8 +271,8 @@
   }
 
   DBG("setting prompt set '%s'\n", name.c_str());
-  used_prompt_sets.insert(&prompts);
-  prompts = *it->second;
+  used_prompt_sets.insert(prompts);
+  prompts = it->second;
   SET_ERRNO(DSM_ERRNO_OK);
 }
 

Modified: trunk/apps/dsm/DSMDialog.h
===================================================================
--- trunk/apps/dsm/DSMDialog.h  2009-01-27 18:36:04 UTC (rev 1247)
+++ trunk/apps/dsm/DSMDialog.h  2009-01-27 22:26:43 UTC (rev 1248)
@@ -44,8 +44,8 @@
   std::auto_ptr<UACAuthCred> cred;
   
   DSMStateEngine engine;
-  AmPromptCollection& prompts;
-  AmPromptCollection& default_prompts;
+  AmPromptCollection* prompts;
+  AmPromptCollection* default_prompts;
   DSMStateDiagramCollection& diags;
   string startDiagName;
   AmPlaylist playlist;
@@ -57,7 +57,7 @@
 
   bool checkVar(const string& var_name, const string& var_val);
 public:
-  DSMDialog(AmPromptCollection& prompts,
+  DSMDialog(AmPromptCollection* prompts,
            DSMStateDiagramCollection& diags,
            const string& startDiagName,
            UACAuthCred* credentials = NULL);

_______________________________________________
Semsdev mailing list
[email protected]
http://lists.iptel.org/mailman/listinfo/semsdev

Reply via email to