diff --git a/code/nel/samples/sound/CMakeLists.txt b/code/nel/samples/sound/CMakeLists.txt
index 2375331f5..6a7696fa4 100644
--- a/code/nel/samples/sound/CMakeLists.txt
+++ b/code/nel/samples/sound/CMakeLists.txt
@@ -1,4 +1,5 @@
ADD_SUBDIRECTORY(sound_sources)
+ADD_SUBDIRECTORY(stream_file)
ADD_SUBDIRECTORY(stream_ogg_vorbis)
diff --git a/code/nel/samples/sound/stream_file/CMakeLists.txt b/code/nel/samples/sound/stream_file/CMakeLists.txt
new file mode 100644
index 000000000..0552387cb
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/CMakeLists.txt
@@ -0,0 +1,12 @@
+FILE(GLOB SRC *.cpp *.h)
+
+ADD_EXECUTABLE(nl_sample_stream_file ${SRC})
+
+INCLUDE_DIRECTORIES(${LIBXML2_INCLUDE_DIR})
+
+TARGET_LINK_LIBRARIES(nl_sample_stream_file nelmisc nelsound)
+NL_DEFAULT_PROPS(nl_sample_stream_file "NeL, Samples: Sound: Stream File")
+NL_ADD_RUNTIME_FLAGS(nl_sample_stream_file)
+
+INSTALL(TARGETS nl_sample_stream_file RUNTIME DESTINATION bin COMPONENT samplessound)
+
diff --git a/code/nel/samples/sound/stream_file/base_samples.sample_bank b/code/nel/samples/sound/stream_file/base_samples.sample_bank
new file mode 100644
index 000000000..8e9b5b898
Binary files /dev/null and b/code/nel/samples/sound/stream_file/base_samples.sample_bank differ
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/_typ.dfn b/code/nel/samples/sound/stream_file/data/DFN/basics/_typ.dfn
new file mode 100644
index 000000000..2f8971932
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/_typ.dfn
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/_type.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/_type.typ
new file mode 100644
index 000000000..233beca79
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/_type.typ
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/boolean.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/boolean.typ
new file mode 100644
index 000000000..fb6821f08
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/boolean.typ
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/filename.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/filename.typ
new file mode 100644
index 000000000..bdad39a48
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/filename.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/float.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/float.typ
new file mode 100644
index 000000000..250620f5e
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/float.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/iboolean.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/iboolean.typ
new file mode 100644
index 000000000..d29217bed
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/iboolean.typ
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/int.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/int.typ
new file mode 100644
index 000000000..5b88c4fc4
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/int.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/sint16.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint16.typ
new file mode 100644
index 000000000..0adba3ad0
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint16.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/sint32.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint32.typ
new file mode 100644
index 000000000..ce470d5fe
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint32.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/sint64.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint64.typ
new file mode 100644
index 000000000..5b88c4fc4
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint64.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/sint8.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint8.typ
new file mode 100644
index 000000000..462eab92c
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/sint8.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/string.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/string.typ
new file mode 100644
index 000000000..89191b1eb
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/string.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/typ.dfn b/code/nel/samples/sound/stream_file/data/DFN/basics/typ.dfn
new file mode 100644
index 000000000..d3c9e1757
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/typ.dfn
@@ -0,0 +1,11 @@
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/uint16.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint16.typ
new file mode 100644
index 000000000..d0e98aad1
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint16.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/uint32.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint32.typ
new file mode 100644
index 000000000..60dc00b3c
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint32.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/uint64.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint64.typ
new file mode 100644
index 000000000..936a619c8
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint64.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/basics/uint8.typ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint8.typ
new file mode 100644
index 000000000..3dee1c5c8
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/basics/uint8.typ
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/alpha.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/alpha.typ
new file mode 100644
index 000000000..a6f7d3bff
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/alpha.typ
@@ -0,0 +1,2 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/angle.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/angle.typ
new file mode 100644
index 000000000..db94698e0
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/angle.typ
@@ -0,0 +1,2 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/backgound_sound_item.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/backgound_sound_item.dfn
new file mode 100644
index 000000000..bbdfdf82a
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/backgound_sound_item.dfn
@@ -0,0 +1,42 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tue Oct 08 14:39:12 2002 (boucher) Dfn Structure =
+Tue Oct 08 15:03:40 2002 (boucher) Dfn Structure =
+Mon Oct 14 16:09:48 2002 (boucher) Dfn Structure =
+Wed Oct 16 18:22:30 2002 (boucher) Dfn Structure =
+Thu Dec 19 16:26:49 2002 (boucher) Dfn Structure =
+Wed Apr 09 19:38:51 2003 (AmazingSound) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/background_flag_config.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/background_flag_config.dfn
new file mode 100644
index 000000000..bce6d82a8
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/background_flag_config.dfn
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+ Thu Jan 02 14:38:32 2003 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/background_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/background_sound.dfn
new file mode 100644
index 000000000..41288d7b8
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/background_sound.dfn
@@ -0,0 +1,5 @@
+
+
+
+ Tue Oct 08 14:55:03 2002 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/complex_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/complex_sound.dfn
new file mode 100644
index 000000000..8164b9d7a
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/complex_sound.dfn
@@ -0,0 +1,19 @@
+
+
+
+
+
+
+
+
+
+
+ Tue Oct 08 14:29:42 2002 (boucher) Dfn Structure =
+Tue Oct 08 14:35:40 2002 (boucher) Dfn Structure =
+Thu Oct 10 16:15:18 2002 (boucher) Dfn Structure =
+Fri Oct 11 10:26:17 2002 (boucher) Dfn Structure =
+Fri Oct 11 11:14:25 2002 (boucher) Dfn Structure =
+Fri Oct 11 11:15:41 2002 (boucher) Dfn Structure =
+Fri Oct 11 16:01:43 2002 (boucher) Dfn Structure =
+Wed Oct 16 11:36:41 2002 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/context_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/context_sound.dfn
new file mode 100644
index 000000000..f8d05e697
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/context_sound.dfn
@@ -0,0 +1,5 @@
+
+
+
+ Thu Nov 07 14:01:21 2002 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/direction.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/direction.dfn
new file mode 100644
index 000000000..190223cc1
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/direction.dfn
@@ -0,0 +1,6 @@
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/distance.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/distance.typ
new file mode 100644
index 000000000..0981c09a0
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/distance.typ
@@ -0,0 +1,2 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/doppler.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/doppler.typ
new file mode 100644
index 000000000..2419f2d6c
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/doppler.typ
@@ -0,0 +1,2 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/gain.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/gain.typ
new file mode 100644
index 000000000..2000b2652
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/gain.typ
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/listener.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/listener.dfn
new file mode 100644
index 000000000..ba52b5af0
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/listener.dfn
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/mixer_config.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/mixer_config.dfn
new file mode 100644
index 000000000..61daec64b
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/mixer_config.dfn
@@ -0,0 +1,14 @@
+
+
+
+
+
+
+
+
+
+
+ Thu Jan 02 14:33:42 2003 (boucher) Dfn Structure =
+Thu Jan 02 14:40:05 2003 (boucher) Dfn Structure =
+Thu Jan 02 14:41:32 2003 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/music_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/music_sound.dfn
new file mode 100644
index 000000000..1935511b2
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/music_sound.dfn
@@ -0,0 +1,13 @@
+
+
+
+
+
+
+
+ Tue Nov 02 11:28:10 2004 (berenguier) Dfn Structure =
+Tue Nov 02 11:30:14 2004 (berenguier) Dfn Structure =
+Tue Nov 02 11:40:09 2004 (berenguier) Dfn Structure =
+Tue Nov 02 11:40:29 2004 (berenguier) Dfn Structure =
+Wed Nov 03 10:54:07 2004 (berenguier) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/parameter_id.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/parameter_id.typ
new file mode 100644
index 000000000..bc284afb2
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/parameter_id.typ
@@ -0,0 +1,8 @@
+
+
+
+
+ Mon Feb 10 17:31:53 2003 (boucher) Type Predef =
+Mon Feb 10 17:31:53 2003 (boucher) Type Type = String
+Mon Feb 10 17:31:53 2003 (boucher) Type UI = NonEditableCombo
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/pattern_mode.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/pattern_mode.typ
new file mode 100644
index 000000000..b0ac96de5
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/pattern_mode.typ
@@ -0,0 +1,10 @@
+
+
+
+
+
+ Tue Oct 08 14:27:39 2002 (boucher) Type Default = Chained
+Tue Oct 08 14:27:39 2002 (boucher) Type Predef =
+Tue Oct 08 14:27:39 2002 (boucher) Type Type = String
+Tue Oct 08 14:27:39 2002 (boucher) Type UI = NonEditableCombo
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/priority.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/priority.typ
new file mode 100644
index 000000000..d9bdbbd07
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/priority.typ
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/rolloff.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/rolloff.typ
new file mode 100644
index 000000000..a5818a1a6
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/rolloff.typ
@@ -0,0 +1,2 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/simple_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/simple_sound.dfn
new file mode 100644
index 000000000..60e97cc35
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/simple_sound.dfn
@@ -0,0 +1,12 @@
+
+
+
+
+
+
+ Wed Apr 09 21:13:23 2003 (AmazingSound) Dfn Structure =
+Thu Apr 10 15:38:18 2003 (AmazingSound) Dfn Structure =
+Thu Apr 10 16:24:05 2003 (AmazingSound) Dfn Structure =
+Wed Apr 30 12:44:51 2003 (AmazingSound) Dfn Structure =
+Wed Apr 30 12:45:39 2003 (AmazingSound) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/sound.dfn
new file mode 100644
index 000000000..a8c336b0b
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/sound.dfn
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Tue Oct 08 12:33:33 2002 (boucher) Dfn Structure =
+Tue Oct 08 14:35:19 2002 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group.dfn
new file mode 100644
index 000000000..b058b36ff
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group.dfn
@@ -0,0 +1,8 @@
+
+
+
+ Thu Jan 09 11:48:30 2003 (boucher) Dfn Structure =
+Thu Jan 09 11:51:28 2003 (boucher) Dfn Structure =
+Thu Jan 09 11:52:03 2003 (boucher) Dfn Structure =
+Thu Jan 09 11:52:08 2003 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group_item.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group_item.dfn
new file mode 100644
index 000000000..00420dbb9
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/sound_group_item.dfn
@@ -0,0 +1,7 @@
+
+
+
+
+ Thu Jan 09 11:47:55 2003 (boucher) Dfn Structure =
+Thu Jan 09 11:53:15 2003 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/soundbank.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/soundbank.dfn
new file mode 100644
index 000000000..38a60a89a
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/soundbank.dfn
@@ -0,0 +1,4 @@
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/stream_file_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/stream_file_sound.dfn
new file mode 100644
index 000000000..7293fc854
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/stream_file_sound.dfn
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/stream_sound.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/stream_sound.dfn
new file mode 100644
index 000000000..82eaa9a6d
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/stream_sound.dfn
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/transposition.typ b/code/nel/samples/sound/stream_file/data/DFN/sound/transposition.typ
new file mode 100644
index 000000000..2d05a4471
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/transposition.typ
@@ -0,0 +1,52 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/DFN/sound/user_var_binding.dfn b/code/nel/samples/sound/stream_file/data/DFN/sound/user_var_binding.dfn
new file mode 100644
index 000000000..d2740f489
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/DFN/sound/user_var_binding.dfn
@@ -0,0 +1,9 @@
+
+
+
+
+
+ Mon Feb 10 17:32:55 2003 (boucher) Dfn Structure =
+Mon Feb 10 17:34:17 2003 (boucher) Dfn Structure =
+Tue Feb 11 09:49:09 2003 (boucher) Dfn Structure =
+
diff --git a/code/nel/samples/sound/stream_file/data/animations/readme.txt b/code/nel/samples/sound/stream_file/data/animations/readme.txt
new file mode 100644
index 000000000..43c7f150a
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/animations/readme.txt
@@ -0,0 +1,3 @@
+This folder contains the sound track for animation.
+
+Put here all the .sound_anim file generated with NeL Object Viewer.
\ No newline at end of file
diff --git a/code/nel/samples/sound/stream_file/data/animations/test_anim.sound_anim b/code/nel/samples/sound/stream_file/data/animations/test_anim.sound_anim
new file mode 100644
index 000000000..4377e81b6
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/animations/test_anim.sound_anim
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/background_sounds/background_sound.primitive b/code/nel/samples/sound/stream_file/data/background_sounds/background_sound.primitive
new file mode 100644
index 000000000..26ff875f1
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/background_sounds/background_sound.primitive
@@ -0,0 +1,144 @@
+
+
+
+
+
+
+
+
+ class
+ audio
+
+
+ name
+ test_audio
+
+
+
+
+ class
+ sounds
+
+
+ name
+ sounds
+
+
+
+
+
+
+
+
+ class
+ sound_zone
+
+
+ name
+ test_zone
+
+
+ sound
+ beep.sound
+
+
+
+
+
+
+
+
+
+
+ class
+ sound_path
+
+
+ name
+ test_path
+
+
+ sound
+ tuut.sound
+
+
+
+
+
+
+ class
+ sound_point
+
+
+ name
+ test_point
+
+
+ sound
+ tuut.sound
+
+
+
+
+
+
+ class
+ sample_banks
+
+
+ name
+ sample_banks
+
+
+
+
+
+
+
+
+ bank_names
+ base_samples
+
+
+ class
+ sample_bank_zone
+
+
+ name
+ base_sample_zone
+
+
+
+
+
+
+ class
+ env_fx
+
+
+ name
+ env_fx
+
+
+
+
+
+
+
+
+ class
+ env_fx_zone
+
+
+ fx_name
+ BATHROOM
+
+
+ name
+ test_fx
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/data/background_sounds/readme.txt b/code/nel/samples/sound/stream_file/data/background_sounds/readme.txt
new file mode 100644
index 000000000..6103b141c
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/background_sounds/readme.txt
@@ -0,0 +1 @@
+This folder contains the background sound primitive files.
\ No newline at end of file
diff --git a/code/nel/samples/sound/stream_file/data/cluster_sound/readme.txt b/code/nel/samples/sound/stream_file/data/cluster_sound/readme.txt
new file mode 100644
index 000000000..2668e737a
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/cluster_sound/readme.txt
@@ -0,0 +1,11 @@
+This folder contains Georges sheets that link sound group defined in
+the cluster system (edited in 3DS Max) to a sound sheet.
+
+This allow to put sound inside the cluster systems.
+
+Each sheet can contains any number of association.
+It is a good practice to merge into a single sheet all
+the sound groups/sound sheets thet belong the the
+same building.
+
+
\ No newline at end of file
diff --git a/code/nel/samples/sound/stream_file/data/cluster_sound/test_clusters.sound_group b/code/nel/samples/sound/stream_file/data/cluster_sound/test_clusters.sound_group
new file mode 100644
index 000000000..0ee91ba18
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/cluster_sound/test_clusters.sound_group
@@ -0,0 +1,19 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/default.mixer_config b/code/nel/samples/sound/stream_file/data/default.mixer_config
new file mode 100644
index 000000000..fd9ca5a59
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/default.mixer_config
@@ -0,0 +1,54 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/samplebank/base_samples/beep.wav b/code/nel/samples/sound/stream_file/data/samplebank/base_samples/beep.wav
new file mode 100644
index 000000000..8b4108a4c
Binary files /dev/null and b/code/nel/samples/sound/stream_file/data/samplebank/base_samples/beep.wav differ
diff --git a/code/nel/samples/sound/stream_file/data/samplebank/base_samples/tuut.wav b/code/nel/samples/sound/stream_file/data/samplebank/base_samples/tuut.wav
new file mode 100644
index 000000000..bae70bc0f
Binary files /dev/null and b/code/nel/samples/sound/stream_file/data/samplebank/base_samples/tuut.wav differ
diff --git a/code/nel/samples/sound/stream_file/data/soundbank/beep.sound b/code/nel/samples/sound/stream_file/data/soundbank/beep.sound
new file mode 100644
index 000000000..dbda3735c
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/soundbank/beep.sound
@@ -0,0 +1,19 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/soundbank/default_stream.sound b/code/nel/samples/sound/stream_file/data/soundbank/default_stream.sound
new file mode 100644
index 000000000..c757128fc
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/soundbank/default_stream.sound
@@ -0,0 +1,20 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/soundbank/stream_file.sound b/code/nel/samples/sound/stream_file/data/soundbank/stream_file.sound
new file mode 100644
index 000000000..1b196d749
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/soundbank/stream_file.sound
@@ -0,0 +1,18 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/soundbank/tuut.sound b/code/nel/samples/sound/stream_file/data/soundbank/tuut.sound
new file mode 100644
index 000000000..c45cfba63
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/soundbank/tuut.sound
@@ -0,0 +1,20 @@
+
+
diff --git a/code/nel/samples/sound/stream_file/data/world_editor_classes.xml b/code/nel/samples/sound/stream_file/data/world_editor_classes.xml
new file mode 100644
index 000000000..68ba22ace
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/data/world_editor_classes.xml
@@ -0,0 +1,382 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/code/nel/samples/sound/stream_file/stream_file.cpp b/code/nel/samples/sound/stream_file/stream_file.cpp
new file mode 100644
index 000000000..bdc866538
--- /dev/null
+++ b/code/nel/samples/sound/stream_file/stream_file.cpp
@@ -0,0 +1,165 @@
+// NeL - MMORPG Framework
+// Copyright (C) 2010 Winch Gate Property Limited
+//
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU Affero General Public License as
+// published by the Free Software Foundation, either version 3 of the
+// License, or (at your option) any later version.
+//
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU Affero General Public License for more details.
+//
+// You should have received a copy of the GNU Affero General Public License
+// along with this program. If not, see .
+
+#include
+
+// STL includes
+#include
+#include
+
+// NeL includes
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+#include
+
+// For direct play/pause control.
+// You should never include this!
+#include
+
+// Project includes
+
+#ifndef NL_SOUND_DATA
+#define NL_SOUND_DATA "."
+#endif // NL_SOUND_DATA
+
+using namespace std;
+using namespace NLMISC;
+using namespace NLSOUND;
+
+namespace NLSAMPLE {
+
+static UAudioMixer *s_AudioMixer = NULL;
+static USource *s_Source = NULL;
+static CStreamFileSource *s_StreamFileSource = NULL;
+static UGroupController *s_GroupController = NULL;
+
+static void initSample()
+{
+ if (!INelContext::isContextInitialised())
+ new CApplicationContext();
+ CPath::addSearchPath(NL_SOUND_DATA"/data", true, false);
+
+ printf("Sample demonstrating OGG playback using stream file .sound sheets.");
+ printf("\n\n");
+
+ s_AudioMixer = UAudioMixer::createAudioMixer();
+
+ // Set the sample path before init, this allow the mixer to build the sample banks
+ s_AudioMixer->setSamplePath(NL_SOUND_DATA"/data/samplebank");
+ // Packed sheet option, this mean we want packed sheet generated in 'data' folder
+ s_AudioMixer->setPackedSheetOption(NL_SOUND_DATA"/data", true);
+
+ printf("Select NLSOUND Driver:\n");
+ printf(" [1] FMod\n");
+ printf(" [2] OpenAl\n");
+ printf(" [3] DSound\n");
+ printf(" [4] XAudio2\n");
+ printf("> ");
+ int selection = getchar(); getchar();
+ printf("\n");
+
+ // init with 8 tracks, EAX enabled, no ADPCM, and automatic sample bank loading
+ s_AudioMixer->init(8, true, false, NULL, true, (UAudioMixer::TDriver)(selection - '0'));
+ s_AudioMixer->setLowWaterMark(1);
+
+ CVector initpos(0.0f, 0.0f, 0.0f);
+ CVector frontvec(0.0f, 1.0f, 0.0f);
+ CVector upvec(0.0f, 0.0f, 1.0f);
+ s_AudioMixer->getListener()->setPos(initpos);
+ s_AudioMixer->getListener()->setOrientation(frontvec, upvec);
+
+ //NLMISC::CHTimer::startBench();
+
+ s_Source = s_AudioMixer->createSource(CStringMapper::map("stream_file"));
+ nlassert(s_Source);
+ s_StreamFileSource = dynamic_cast(s_Source);
+ nlassert(s_StreamFileSource);
+ // s_Source->setSourceRelativeMode(true);
+ // s_Source->setPitch(2.0f);
+
+ s_GroupController = s_AudioMixer->getGroupController("dialog");
+}
+
+static void runSample()
+{
+ s_Source->play();
+
+ printf("Change volume with - and +\n");
+ printf("Press ANY other key to exit\n");
+ for (; ; )
+ {
+ if (_kbhit())
+ {
+ switch (_getch())
+ {
+ case '+':
+ s_GroupController->setUserGain(s_GroupController->getUserGain() + 0.1f);
+ break;
+ case '-':
+ s_GroupController->setUserGain(s_GroupController->getUserGain() - 0.1f);
+ break;
+ case 'x':
+ s_Source->stop();
+ break;
+ case 's':
+ s_Source->play();
+ break;
+ case 'p':
+ s_StreamFileSource->pause();
+ break;
+ case 'r':
+ s_StreamFileSource->resume();
+ break;
+ default:
+ return;
+ }
+ }
+
+ s_AudioMixer->update();
+
+ nlSleep(40);
+ }
+}
+
+static void releaseSample()
+{
+ //NLMISC::CHTimer::clear();
+ s_GroupController = NULL;
+ s_StreamFileSource = NULL;
+ delete s_Source; s_Source = NULL;
+ delete s_AudioMixer; s_AudioMixer = NULL;
+}
+
+
+
+} /* namespace NLSAMPLE */
+
+int main()
+{
+ NLSAMPLE::initSample();
+ NLSAMPLE::runSample();
+ NLSAMPLE::releaseSample();
+ return 0;
+}
+
+/* end of file */