templates like this->
authorjhurst <jhurst@cinecert.com>
Fri, 20 Jul 2007 05:12:53 +0000 (05:12 +0000)
committerjhurst <>
Fri, 20 Jul 2007 05:12:53 +0000 (05:12 +0000)
README
src/AS_DCP_TimedText.cpp
src/KM_error.h
src/KM_platform.h
src/KM_util.cpp

diff --git a/README b/README
index acad68fea28b81fb9f0a33eb329f75e269271a60..7bf5f343d6763aa295f549a31e5ce3be36e77b14 100755 (executable)
--- a/README
+++ b/README
@@ -141,6 +141,7 @@ Change History
  o Added namespace and parsing support (Expat) to Kumu::XMLElement
    (currently used only for Timed Text support). Also added some
    new accessors.
+ o Altered MXF::UTF16String to use mbtowc() and wctomb().
  o ...
 
 
index 84dd3acc970abda1f0c61931040092f016049678..7f434a743986ab13282a559d788267411894e6da 100644 (file)
@@ -163,7 +163,7 @@ ASDCP::TimedText::MXFReader::h__Reader::MD_to_TimedText_TDesc(TimedText::TimedTe
        }
     }
 
-  return RESULT_OK;
+  return result;
 }
 
 //
index a91d416ac7065cf12e332b18f70bbda2329f9a42..2d3513a6c62d0483006ea2020311d662ca688be4 100755 (executable)
@@ -114,6 +114,35 @@ namespace Kumu
     return Kumu::RESULT_NULL_STR; \
   }
 
+namespace Kumu
+{
+  // simple tracing mechanism
+  class DTrace_t
+  {
+    DTrace_t();
+    
+  protected:
+    const char* m_Label;
+    Result_t*   m_Watch;
+    int         m_Line;
+    const char* m_File;
+    int         m_Sequence;
+
+  public:
+    DTrace_t(const char* Label, Result_t* Watch, int Line, const char* File);
+    ~DTrace_t();
+  };
+}
+
+#ifdef KM_TRACE
+#define WDTRACE(l) DTrace_t __wl__Trace__((l), 0, __LINE__, __FILE__)
+#define WDTRACER(l,r) DTrace_t __wl__Trace__((l), &(r), __LINE__, __FILE__)
+#else
+#define WDTRACE(l)
+#define WDTRACER(l,r)
+#endif
+
+
 #endif // _KM_ERROR_H_
 
 //
index 0c577a1c0e2de8b388ee0c53c607e9ddea82445d..111cbbf0fd7ed541cbcf6a882dceec4e1d07d450 100644 (file)
@@ -166,7 +166,7 @@ namespace Kumu
       inline T&   operator*()  const { return *m_p; }
       inline T*   operator->() const { return m_p; }
       inline      operator T*()const { return m_p; }
-      inline const mem_ptr<T>& operator=(T* p) { set(p); return *this; }
+      inline const mem_ptr<T>& operator=(T* p) { this->set(p); return *this; }
       inline T*   set(T* p)          { delete m_p; m_p = p; return m_p; }
       inline T*   get()        const { return m_p; }
       inline void release()          { m_p = 0; }
index 99bb4a92f3abc501930093bc259984d797251274..6dd3d33dd69e5096f58cd6db33a52596fe087792 100755 (executable)
@@ -110,6 +110,26 @@ Kumu::Result_t::Result_t(long v, const char* l) : value(v), label(l)
 Kumu::Result_t::~Result_t() {}
 
 
+//------------------------------------------------------------------------------------------
+// DTrace internals
+
+static int s_DTraceSequence = 0;
+
+Kumu::DTrace_t::DTrace_t(const char* Label, Kumu::Result_t* Watch, int Line, const char* File)
+  : m_Label(Label), m_Watch(Watch), m_Line(Line), m_File(File)
+{
+  m_Sequence = s_DTraceSequence++;
+  DefaultLogSink().Debug("@enter %s[%d] (%s at %d)\n", m_Label, m_Sequence, m_File, m_Line);
+}
+
+Kumu::DTrace_t::~DTrace_t()
+{
+  if ( m_Watch != 0  )
+    DefaultLogSink().Debug("@exit %s[%d]: %s\n", m_Label, m_Sequence, m_Watch->Label());
+  else
+    DefaultLogSink().Debug("@exit %s[%d]\n", m_Label, m_Sequence);
+}
+
 //------------------------------------------------------------------------------------------