summaryrefslogtreecommitdiff
path: root/orkbasecxx
diff options
context:
space:
mode:
authorHenri Herscher <henri@oreka.org>2006-10-11 16:59:19 +0000
committerHenri Herscher <henri@oreka.org>2006-10-11 16:59:19 +0000
commita7f1e318b8cea70aea786580ef9b15e5e3afcd23 (patch)
tree56a0e52bf83c880184ba346646d56e72a77f3ab5 /orkbasecxx
parent6bc7a0c92eefd1d9374348f3d014549f78bc713c (diff)
There is now an orkaudio wide tracking ID for recording sessions. All logging related to a recording session includes this tracking ID. The recording file name now uses this tracking ID instead of the "port" name which used to be IP+TcpPort of one endpoint. Also introduced the notion of OrkUid which is an unique identifier based on timestamp + tracking ID. OrkUid is not yet reported to orktrack.
git-svn-id: https://oreka.svn.sourceforge.net/svnroot/oreka/trunk@342 09dcff7a-b715-0410-9601-b79a96267cd0
Diffstat (limited to 'orkbasecxx')
-rw-r--r--orkbasecxx/AudioCapture.cpp6
-rw-r--r--orkbasecxx/AudioCapture.h6
-rw-r--r--orkbasecxx/AudioTape.cpp22
-rw-r--r--orkbasecxx/AudioTape.h2
4 files changed, 32 insertions, 4 deletions
diff --git a/orkbasecxx/AudioCapture.cpp b/orkbasecxx/AudioCapture.cpp
index dc72935..93830c7 100644
--- a/orkbasecxx/AudioCapture.cpp
+++ b/orkbasecxx/AudioCapture.cpp
@@ -233,6 +233,8 @@ CStdString CaptureEvent::EventTypeToString(int eventTypeEnum)
return ET_LOCALMAC;
case EtRemoteMac:
return ET_REMOTEMAC;
+ case EtOrkUid:
+ return ET_ORKUID;
case EtEndMetadata:
return ET_ENDMETADATA;
}
@@ -286,6 +288,10 @@ int CaptureEvent::EventTypeToEnum(CStdString& eventTypeString)
{
eventTypeEnum = EtRemoteMac;
}
+ else if (eventTypeString.CompareNoCase(ET_ORKUID) == 0)
+ {
+ eventTypeEnum = EtOrkUid;
+ }
else if (eventTypeString.CompareNoCase(ET_ENDMETADATA) == 0)
{
eventTypeEnum = EtEndMetadata;
diff --git a/orkbasecxx/AudioCapture.h b/orkbasecxx/AudioCapture.h
index 1d6e8e9..6c257ba 100644
--- a/orkbasecxx/AudioCapture.h
+++ b/orkbasecxx/AudioCapture.h
@@ -120,6 +120,7 @@ public:
#define ET_REMOTEIP "remoteip"
#define ET_LOCALMAC "localmac"
#define ET_REMOTEMAC "remotemac"
+#define ET_ORKUID "orkuid"
#define ET_ENDMETADATA "endmetadata"
#define ET_INVALID "invalid"
typedef enum
@@ -136,8 +137,9 @@ public:
EtRemoteIp = 9,
EtLocalMac = 10,
EtRemoteMac = 11,
- EtEndMetadata = 12,
- EtInvalid = 13
+ EtOrkUid = 12,
+ EtEndMetadata = 13,
+ EtInvalid = 14
} EventTypeEnum;
static CStdString EventTypeToString(int eventTypeEnum);
static int EventTypeToEnum(CStdString&);
diff --git a/orkbasecxx/AudioTape.cpp b/orkbasecxx/AudioTape.cpp
index 9bb7239..30cd9ef 100644
--- a/orkbasecxx/AudioTape.cpp
+++ b/orkbasecxx/AudioTape.cpp
@@ -79,6 +79,7 @@ AudioTape::AudioTape(CStdString &portId)
m_direction = CaptureEvent::DirUnkn;
m_shouldStop = false;
m_readyForBatchProcessing = false;
+ m_trackingId = portId; // to make sure this has a value before we get the capture tracking Id.
GenerateFilePathAndIdentifier();
}
@@ -171,13 +172,13 @@ void AudioTape::Write()
// Compute RMS, RMS dB and log
CStdString rmsString;
rmsString.Format("%.1f dB:%.1f", chunkRef.get()->ComputeRms(), chunkRef.get()->ComputeRmsDb());
- LOG4CXX_INFO(LOG.portLog, m_portId + " RMS: " + rmsString);
+ LOG4CXX_INFO(LOG.portLog, "[" + m_trackingId + "] RMS: " + rmsString);
}
}
}
catch (CStdString& e)
{
- LOG4CXX_INFO(LOG.portLog, "#" + m_portId + ": " + e);
+ LOG4CXX_INFO(LOG.portLog, "[" + m_trackingId + "] " + e);
m_state = StateError;
}
}
@@ -208,6 +209,15 @@ void AudioTape::AddCaptureEvent(CaptureEventRef eventRef, bool send)
// Extract useful info from well known events
switch(eventRef->m_type)
{
+ case CaptureEvent::EtStart:
+ m_trackingId = eventRef->m_value;
+ if (m_state == StateCreated)
+ {
+ // Media chunk stream not yet started, we can update begin date with the actual capture begin date
+ m_beginDate = eventRef->m_timestamp;
+ GenerateFilePathAndIdentifier();
+ }
+ break;
case CaptureEvent::EtStop:
m_shouldStop = true;
@@ -247,6 +257,14 @@ void AudioTape::AddCaptureEvent(CaptureEventRef eventRef, bool send)
case CaptureEvent::EtRemoteIp:
m_remoteIp = eventRef->m_value;
break;
+ case CaptureEvent::EtOrkUid:
+ m_orkUid = eventRef->m_value;
+ if (m_state == StateCreated)
+ {
+ // Media chunk stream not yet started, we can set the mcf file name to be the Oreka Unique ID
+ m_fileIdentifier = m_orkUid;
+ }
+ break;
}
// Store the capture event locally
diff --git a/orkbasecxx/AudioTape.h b/orkbasecxx/AudioTape.h
index 2e212a2..fc93249 100644
--- a/orkbasecxx/AudioTape.h
+++ b/orkbasecxx/AudioTape.h
@@ -89,6 +89,7 @@ public:
time_t m_duration;
CStdString m_localIp;
CStdString m_remoteIp;
+ CStdString m_trackingId;
TapeResponseRef m_tapeResponse;
@@ -109,6 +110,7 @@ private:
StateEnum m_state;
bool m_shouldStop;
bool m_readyForBatchProcessing;
+ CStdString m_orkUid;
};
typedef boost::shared_ptr<AudioTape> AudioTapeRef;