Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
ITADataSources
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Iterations
Merge Requests
0
Merge Requests
0
Requirements
Requirements
List
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Operations
Operations
Incidents
Analytics
Analytics
Code Review
Insights
Issue
Repository
Value Stream
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Institute of Technical Acoustics (ITA)
ITADataSources
Commits
dfea0f75
Commit
dfea0f75
authored
Mar 29, 2017
by
Dipl.-Ing. Jonas Stienen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactoring #2
parent
32d65f52
Changes
17
Hide whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
72 additions
and
65 deletions
+72
-65
CMakeLists.txt
CMakeLists.txt
+6
-8
include/ITANetAudioStreamingServer.h
include/ITANetAudioStreamingServer.h
+2
-3
src/ITANetAudioClient.cpp
src/ITANetAudioClient.cpp
+2
-3
src/ITANetAudioClient.h
src/ITANetAudioClient.h
+0
-0
src/ITANetAudioMessage.cpp
src/ITANetAudioMessage.cpp
+5
-4
src/ITANetAudioMessage.h
src/ITANetAudioMessage.h
+2
-1
src/ITANetAudioProtocol.cpp
src/ITANetAudioProtocol.cpp
+1
-1
src/ITANetAudioProtocol.h
src/ITANetAudioProtocol.h
+0
-0
src/ITANetAudioServer.cpp
src/ITANetAudioServer.cpp
+3
-2
src/ITANetAudioServer.h
src/ITANetAudioServer.h
+0
-2
src/ITANetAudioStream.cpp
src/ITANetAudioStream.cpp
+2
-1
src/ITANetAudioStreamingClient.cpp
src/ITANetAudioStreamingClient.cpp
+14
-9
src/ITANetAudioStreamingClient.h
src/ITANetAudioStreamingClient.h
+2
-5
src/ITANetAudioStreamingServer.cpp
src/ITANetAudioStreamingServer.cpp
+21
-15
tests/NetAudio/CMakeLists.txt
tests/NetAudio/CMakeLists.txt
+6
-5
tests/NetAudio/ITANetAudioStreamingServerTest.cpp
tests/NetAudio/ITANetAudioStreamingServerTest.cpp
+2
-1
tests/NetAudio/ITANetAudioTest.cpp
tests/NetAudio/ITANetAudioTest.cpp
+4
-5
No files found.
CMakeLists.txt
View file @
dfea0f75
...
...
@@ -110,23 +110,21 @@ endif( )
if
(
ITA_DATA_SOURCES_WITH_NET_AUDIO
)
list
(
APPEND ITADataSourcesHeader
"include/ITANetAudioClient.h"
"include/ITANetAudioMessage.h"
"include/ITANetAudioProtocol.h"
"include/ITANetAudioServer.h"
"include/ITANetAudioStream.h"
"include/ITANetAudioStreamingClient.h"
"include/ITANetAudioStreamingServer.h"
"include/ITANetAudioStreamingClient.h"
)
list
(
APPEND ITADataSourcesSources
"src/ITANetAudioClient.cpp"
"src/ITANetAudioClient.h"
"src/ITANetAudioMessage.cpp"
"src/ITANetAudioProtocol.cpp"
"src/ITANetAudioMessage.h"
"src/ITANetAudioProtocol.h"
"src/ITANetAudioServer.cpp"
"src/ITANetAudioServer.h"
"src/ITANetAudioStream.cpp"
"src/ITANetAudioStreamingClient.cpp"
"src/ITANetAudioStreamingClient.h"
"src/ITANetAudioStreamingServer.cpp"
"src/ITANetAudioServer.cpp"
)
endif
(
)
...
...
include/ITANetAudioStreamingServer.h
View file @
dfea0f75
...
...
@@ -21,8 +21,6 @@
#include <ITADataSourcesDefinitions.h>
#include <ITANetAudioProtocol.h>
#include <ITANetAudioProtocol.h>
#include <ITASampleFrame.h>
#include <ITAStopWatch.h>
...
...
@@ -40,6 +38,7 @@ class CITANetAudioServer;
class
CITANetAudioMessage
;
class
VistaTCPSocket
;
class
ITABufferedDataLoggerImplServer
;
class
VistaConnectionIP
;
//! Network audio streaming server (for connecting a net audio stream) with an ITADataSource connection
...
...
@@ -97,7 +96,6 @@ private:
ITADatasource
*
m_pInputStream
;
VistaConnectionIP
*
m_pConnection
;
CITANetAudioProtocol
::
StreamingParameters
m_oServerParams
;
CITANetAudioMessage
*
m_pMessage
;
ITABufferedDataLoggerImplServer
*
m_pServerLogger
;
...
...
@@ -110,6 +108,7 @@ private:
int
m_iTargetLatencySamples
;
int
m_iEstimatedClientRingBufferFreeSamples
;
int
m_iClientRingBufferSize
;
int
m_iSendingBlockLength
;
int
m_iMaxSendBlocks
;
...
...
src/ITANetAudioClient.cpp
View file @
dfea0f75
#include
<ITANetAudioClient.h>
#include
"ITANetAudioClient.h"
#include <ITANetAudioMessage.h>
#include <ITANetAudioProtocol.h>
#include <ITANetAudioStream.h>
#include <ITAException.h>
#include <VistaInterProcComm/Connections/VistaConnectionIP.h>
...
...
include
/ITANetAudioClient.h
→
src
/ITANetAudioClient.h
View file @
dfea0f75
File moved
src/ITANetAudioMessage.cpp
View file @
dfea0f75
#include <ITANetAudioMessage.h>
#include "ITANetAudioMessage.h"
#include <ITAClock.h>
#include <ITADataLog.h>
#include <ITAStringUtils.h>
#include <VistaInterProcComm/Connections/VistaConnectionIP.h>
#include <VistaBase/VistaExceptionBase.h>
#include <VistaBase/VistaStreamUtils.h>
#include <ITAClock.h>
#include <ITADataLog.h>
#include <cstring>
#include <algorithm>
#include <cstring>
#include <cassert>
#include <iostream>
#include <iomanip>
...
...
include
/ITANetAudioMessage.h
→
src
/ITANetAudioMessage.h
View file @
dfea0f75
...
...
@@ -21,11 +21,12 @@
#include <ITADataSourcesDefinitions.h>
#include "ITANetAudioProtocol.h"
// ITA includes
#include <ITAException.h>
#include <ITASampleBuffer.h>
#include <ITASampleFrame.h>
#include <ITANetAudioProtocol.h>
// Vista includes
#include <VistaInterProcComm/Connections/VistaByteBufferSerializer.h>
...
...
src/ITANetAudioProtocol.cpp
View file @
dfea0f75
#include
<ITANetAudioProtocol.h>
#include
"ITANetAudioProtocol.h"
// @todo remove (all inline implemented)
\ No newline at end of file
include
/ITANetAudioProtocol.h
→
src
/ITANetAudioProtocol.h
View file @
dfea0f75
File moved
src/ITANetAudioServer.cpp
View file @
dfea0f75
#include <ITANetAudioServer.h>
#include "ITANetAudioServer.h"
#include "ITANetAudioProtocol.h"
#include <ITANetAudioStreamingServer.h>
#include <ITANetAudioProtocol.h>
// ITA includes
#include <ITADataSource.h>
...
...
include
/ITANetAudioServer.h
→
src
/ITANetAudioServer.h
View file @
dfea0f75
...
...
@@ -21,8 +21,6 @@
#include <ITADataSourcesDefinitions.h>
#include <ITANetAudioProtocol.h>
#include <ITASampleFrame.h>
#include <string>
...
...
src/ITANetAudioStream.cpp
View file @
dfea0f75
#include <ITANetAudioStream.h>
#include <ITANetAudioStreamingClient.h>
#include "ITANetAudioStreamingClient.h"
// ITA includes
#include <ITAException.h>
...
...
src/ITANetAudioStreamingClient.cpp
View file @
dfea0f75
#include <ITANetAudioStreamingClient.h>
#include "ITANetAudioStreamingClient.h"
#include "ITANetAudioClient.h"
#include "ITANetAudioMessage.h"
#include "ITANetAudioProtocol.h"
#include <ITANetAudioClient.h>
#include <ITANetAudioMessage.h>
#include <ITANetAudioStream.h>
#include <ITADataLog.h>
#include <ITAClock.h>
...
...
@@ -57,18 +59,15 @@ CITANetAudioStreamingClient::CITANetAudioStreamingClient( CITANetAudioStream* pP
,
m_dServerClockSyncLastSyncTime
(
0.0
f
)
{
m_pClient
=
new
CITANetAudioClient
();
m_oParams
.
iChannels
=
pParent
->
GetNumberOfChannels
();
m_oParams
.
dSampleRate
=
pParent
->
GetSampleRate
();
m_oParams
.
iBlockSize
=
pParent
->
GetBlocklength
();
m_oParams
.
iRingBufferSize
=
pParent
->
GetRingBufferSize
();
m_sfReceivingBuffer
.
init
(
m_oParams
.
iChannels
,
m_oParams
.
iRingBufferSize
,
false
);
m_sfReceivingBuffer
.
init
(
pParent
->
GetNumberOfChannels
(),
pParent
->
GetRingBufferSize
()
,
false
);
m_pMessage
=
new
CITANetAudioMessage
(
VistaSerializingToolset
::
SWAPS_MULTIBYTE_VALUES
);
m_pClientLogger
=
new
ITABufferedDataLoggerImplClient
();
SetClientLoggerBaseName
(
"ITANetAudioStreamingClient"
);
// Careful with this.
//SetPriority( VistaPriority::VISTA_MID_PRIORITY );
}
...
...
@@ -103,9 +102,15 @@ bool CITANetAudioStreamingClient::Connect( const std::string& sAddress, int iPor
m_pMessage
->
ResetMessage
();
m_pMessage
->
SetConnection
(
m_pConnection
);
CITANetAudioProtocol
::
StreamingParameters
oParams
;
oParams
.
dSampleRate
=
m_pStream
->
GetSampleRate
();
oParams
.
iBlockSize
=
m_pStream
->
GetBlocklength
();
oParams
.
iChannels
=
m_pStream
->
GetNumberOfChannels
();
oParams
.
iRingBufferSize
=
m_pStream
->
GetRingBufferSize
();
// Validate streaming parameters of server and client
m_pMessage
->
SetMessageType
(
CITANetAudioProtocol
::
NP_CLIENT_OPEN
);
m_pMessage
->
WriteStreamingParameters
(
m_
oParams
);
m_pMessage
->
WriteStreamingParameters
(
oParams
);
m_pMessage
->
WriteMessage
();
m_pMessage
->
ResetMessage
();
...
...
include
/ITANetAudioStreamingClient.h
→
src
/ITANetAudioStreamingClient.h
View file @
dfea0f75
...
...
@@ -21,8 +21,6 @@
#include <ITADataSourcesDefinitions.h>
#include <ITANetAudioProtocol.h>
#include <ITASampleFrame.h>
#include <ITAStreamProbe.h>
#include <ITAStopWatch.h>
...
...
@@ -38,6 +36,7 @@ class CITANetAudioMessage;
class
CITANetAudioProtocol
;
class
CITANetAudioStream
;
class
ITABufferedDataLoggerImplClient
;
class
VistaConnectionIP
;
//! Network audio streaming client
/**
...
...
@@ -75,9 +74,7 @@ private:
VistaConnectionIP
*
m_pConnection
;
ITASampleFrame
m_sfReceivingBuffer
;
//!< Buffer incoming data
CITANetAudioProtocol
::
StreamingParameters
m_oParams
;
bool
m_bStopIndicated
;
bool
m_bStopped
;
...
...
src/ITANetAudioStreamingServer.cpp
View file @
dfea0f75
#include <ITANetAudioStreamingServer.h>
#include <ITANetAudioServer.h>
#include <ITANetAudioMessage.h>
#include "ITANetAudioServer.h"
#include "ITANetAudioMessage.h"
// ITA includes
#include <ITADataSource.h>
#include <ITANetAudioMessage.h>
#include <ITAException.h>
#include <ITAStreamInfo.h>
#include <ITAClock.h>
...
...
@@ -67,6 +67,7 @@ CITANetAudioStreamingServer::CITANetAudioStreamingServer()
,
m_iMaxSendBlocks
(
40
)
,
m_iServerBlockId
(
0
)
,
m_iEstimatedClientRingBufferFreeSamples
(
0
)
,
m_iClientRingBufferSize
(
0
)
{
// Careful with this:
//SetPriority( VistaPriority::VISTA_MID_PRIORITY );
...
...
@@ -104,19 +105,23 @@ bool CITANetAudioStreamingServer::Start(const std::string& sAddress, int iPort,
assert
(
m_pMessage
->
GetMessageType
()
==
CITANetAudioProtocol
::
NP_CLIENT_OPEN
);
CITANetAudioProtocol
::
StreamingParameters
oClientParams
=
m_pMessage
->
ReadStreamingParameters
();
m_oServerParams
.
iRingBufferSize
=
oClientParams
.
iRingBufferSize
;
m_oServerParams
.
iBlockSize
=
oClientParams
.
iBlockSize
;
CITANetAudioProtocol
::
StreamingParameters
oServerParams
;
oServerParams
.
iRingBufferSize
=
oClientParams
.
iRingBufferSize
;
oServerParams
.
iBlockSize
=
m_pInputStream
->
GetBlocklength
();
oServerParams
.
dSampleRate
=
m_pInputStream
->
GetSampleRate
();
oServerParams
.
iChannels
=
m_pInputStream
->
GetNumberOfChannels
();
m_iEstimatedClientRingBufferFreeSamples
=
m_oServerParams
.
iRingBufferSize
;
m_iSendingBlockLength
=
m_oServerParams
.
iBlockSize
;
m_iEstimatedClientRingBufferFreeSamples
=
oServerParams
.
iRingBufferSize
;
m_iClientRingBufferSize
=
oClientParams
.
iRingBufferSize
;
m_iSendingBlockLength
=
oServerParams
.
iBlockSize
;
m_sfTempTransmitBuffer
.
init
(
m_pInputStream
->
GetNumberOfChannels
(),
m_
oServerParams
.
iRingBufferSize
,
true
);
m_sfTempTransmitBuffer
.
init
(
m_pInputStream
->
GetNumberOfChannels
(),
oServerParams
.
iRingBufferSize
,
true
);
m_pServerLogger
=
new
ITABufferedDataLoggerImplServer
();
m_pServerLogger
->
setOutputFile
(
m_sServerLogBaseName
+
"_Server.log"
);
m_dLastTimeStamp
=
ITAClock
::
getDefaultClock
()
->
getTime
();
if
(
m_
oServerParams
==
oClientParams
)
if
(
oServerParams
==
oClientParams
)
{
m_pMessage
->
SetMessageType
(
CITANetAudioProtocol
::
NP_SERVER_OPEN
);
m_pMessage
->
WriteDouble
(
dTimeIntervalCientSendStatus
);
...
...
@@ -153,7 +158,7 @@ bool CITANetAudioStreamingServer::LoopBody()
oLog
.
iTransmittedSamples
=
0
;
// Sending Samples
int
iEstimatedClientRingBufferTargetLatencyFreeSamples
=
m_iEstimatedClientRingBufferFreeSamples
-
(
m_
oServerParams
.
i
RingBufferSize
-
m_iTargetLatencySamples
);
int
iEstimatedClientRingBufferTargetLatencyFreeSamples
=
m_iEstimatedClientRingBufferFreeSamples
-
(
m_
iClient
RingBufferSize
-
m_iTargetLatencySamples
);
if
(
iEstimatedClientRingBufferTargetLatencyFreeSamples
>=
m_iSendingBlockLength
)
{
...
...
@@ -256,9 +261,6 @@ void CITANetAudioStreamingServer::SetInputStream( ITADatasource* pInStream )
ITA_EXCEPT1
(
MODAL_EXCEPTION
,
"Streaming loop already running, can not change input stream"
);
m_pInputStream
=
pInStream
;
m_oServerParams
.
dSampleRate
=
m_pInputStream
->
GetSampleRate
();
m_oServerParams
.
iBlockSize
=
m_pInputStream
->
GetBlocklength
();
m_oServerParams
.
iChannels
=
m_pInputStream
->
GetNumberOfChannels
();
}
ITADatasource
*
CITANetAudioStreamingServer
::
GetInputStream
()
const
...
...
@@ -299,8 +301,12 @@ bool CITANetAudioStreamingServer::GetLoggingExportEnabled() const
void
CITANetAudioStreamingServer
::
SetTargetLatencySamples
(
const
int
iTargetLatency
)
{
// Streaming already set up?
if
(
IsClientConnected
()
&&
m_iTargetLatencySamples
<
m_oServerParams
.
iBlockSize
)
ITA_EXCEPT1
(
INVALID_PARAMETER
,
"Target latency has to be at least the block size of the audio streaming at client side."
);
if
(
IsClientConnected
()
)
ITA_EXCEPT1
(
MODAL_EXCEPTION
,
"Server not connected, client ring buffer unkown"
);
if
(
m_pInputStream
)
if
(
m_iTargetLatencySamples
<
m_pInputStream
->
GetBlocklength
()
)
ITA_EXCEPT1
(
INVALID_PARAMETER
,
"Target latency has to be at least the block size of the audio streaming at client side."
);
m_iTargetLatencySamples
=
iTargetLatency
;
}
...
...
tests/NetAudio/CMakeLists.txt
View file @
dfea0f75
cmake_minimum_required
(
VERSION 2.9
)
cmake_minimum_required
(
VERSION 2.9
)
project
(
ITANetAudioTests
)
list
(
APPEND CMAKE_MODULE_PATH
"$ENV{VISTA_CMAKE_COMMON}"
)
...
...
@@ -72,12 +73,12 @@ vista_install_all_dlls( bin )
set_property
(
TARGET ITANetAudioTest PROPERTY FOLDER
"ITACoreLibs/Tests/ITADataSources/NetAudio"
)
if
(
NOT DEFINED ITA_NETAUDIO_SERVER_WITH_TESTS
)
set
(
ITA_NETAUDIO_SERVER_WITH_TESTS
"
default value"
CACHE STRING
"localhost 12480 44100 32 2"
)
set
(
ITA_NETAUDIO_SERVER_WITH_TESTS
"
localhost 12480 44100 32 2"
CACHE STRING
"default value"
)
endif
(
)
if
(
NOT DEFINED ITA_NETAUDIO_CLIENT_WITH_TESTS
)
set
(
ITA_NETAUDIO_CLIENT_WITH_TESTS
"
default value"
CACHE STRING
"localhost 12480 44100 32 2 3200
"
)
set
(
ITA_NETAUDIO_CLIENT_WITH_TESTS
"
localhost 12480 44100 32 2 3200"
CACHE STRING
"default value
"
)
endif
(
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingPortaudioClientTest
ITA_NETAUDIO_CLIENT_WITH_TESTS
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingClientTest
ITA_NETAUDIO_CLIENT_WITH_TESTS
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingServerTest
ITA_NETAUDIO_SERVER_WITH_TESTS
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingPortaudioClientTest
${
ITA_NETAUDIO_CLIENT_WITH_TESTS
}
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingClientTest
${
ITA_NETAUDIO_CLIENT_WITH_TESTS
}
)
vista_set_target_msvc_arguments
(
ITANetAudioStreamingServerTest
${
ITA_NETAUDIO_SERVER_WITH_TESTS
}
)
tests/NetAudio/ITANetAudioStreamingServerTest.cpp
View file @
dfea0f75
#include <ITANetAudioStreamingServer.h>
#include <ITANetAudioServer.h>
#include <ITAStreamFunctionGenerator.h>
#include <ITAStreamMultiplier1N.h>
#include <ITAFileDataSource.h>
#include <ITAException.h>
#include <VistaBase/VistaTimeUtils.h>
#include <iostream>
...
...
tests/NetAudio/ITANetAudioTest.cpp
View file @
dfea0f75
#include <cmath>
#include <iostream>
#include <string>
#include <ITANetAudioStreamingServer.h>
#include <ITANetAudioServer.h>
#include <ITANetAudioStream.h>
#include <ITAPortaudioInterface.h>
#include <ITAStreamFunctionGenerator.h>
...
...
@@ -18,6 +13,10 @@
#include <VistaBase/VistaTimeUtils.h>
#include <VistaBase/VistaExceptionBase.h>
#include <cmath>
#include <iostream>
#include <string>
using
namespace
std
;
const
static
string
g_sServerName
=
"localhost"
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment