From d1abf274d53958566e4a23e02b6168061c098827 Mon Sep 17 00:00:00 2001 From: Patrice Fournier Date: Tue, 5 Aug 2014 23:58:56 -0400 Subject: [PATCH 01/47] REFER_EVENT is missing from the message names array REFER_EVENT has been added to switch_core_session_message_types_t a while ago, but was never added to the message_names[] related array. --- src/switch_core_session.c | 1 + 1 file changed, 1 insertion(+) diff --git a/src/switch_core_session.c b/src/switch_core_session.c index 24af5fbe1d..853d106e68 100644 --- a/src/switch_core_session.c +++ b/src/switch_core_session.c @@ -752,6 +752,7 @@ static const char *message_names[] = { "STUN_ERROR", "MEDIA_RENEG", "KEEPALIVE", + "REFER_EVENT", "ANSWER_EVENT", "PROGRESS_EVENT", "RING_EVENT", From c966dc865ae35a99de8888784c65eba9fadbcd64 Mon Sep 17 00:00:00 2001 From: stangor Date: Mon, 11 Aug 2014 14:08:10 -0700 Subject: [PATCH 02/47] fix mod_fifo presence https://jira.freeswitch.org/browse/FS-6732 --- src/mod/applications/mod_fifo/mod_fifo.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/mod/applications/mod_fifo/mod_fifo.c b/src/mod/applications/mod_fifo/mod_fifo.c index ff00fec256..ac0d1167b7 100644 --- a/src/mod/applications/mod_fifo/mod_fifo.c +++ b/src/mod/applications/mod_fifo/mod_fifo.c @@ -2214,9 +2214,9 @@ static void send_presence(fifo_node_t *node) } if ((wait_count = node_caller_count(node)) > 0) { - switch_event_add_header(event, SWITCH_STACK_BOTTOM, "status", "Active (%d waiting)", wait_count); + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "force-status", "Active (%d waiting)", wait_count); } else { - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "status", "Idle"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "force-status", "Idle"); } switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "rpid", "unknown"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "event_type", "presence"); @@ -2225,7 +2225,7 @@ static void send_presence(fifo_node_t *node) switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "channel-state", wait_count > 0 ? "CS_ROUTING" : "CS_HANGUP"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "unique-id", node->name); - switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", wait_count > 0 ? "early" : "terminated"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "answer-state", wait_count > 0 ? "confirmed" : "terminated"); switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "presence-call-direction", "inbound"); switch_event_fire(&event); } From 05ef18948d3870c4afcd82ce32e164e4a152a8e1 Mon Sep 17 00:00:00 2001 From: Steven Ayre Date: Tue, 12 Aug 2014 14:06:15 +0100 Subject: [PATCH 03/47] add uptime api to mod_commands --- .../applications/mod_commands/mod_commands.c | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) diff --git a/src/mod/applications/mod_commands/mod_commands.c b/src/mod/applications/mod_commands/mod_commands.c index e418b1b297..e84b9248a1 100644 --- a/src/mod/applications/mod_commands/mod_commands.c +++ b/src/mod/applications/mod_commands/mod_commands.c @@ -2141,6 +2141,42 @@ SWITCH_STANDARD_API(status_function) return SWITCH_STATUS_SUCCESS; } +#define UPTIME_SYNTAX "[us|ms|s|m|h|d|microseconds|milliseconds|seconds|minutes|hours|days]" +SWITCH_STANDARD_API(uptime_function) +{ + switch_time_t scale; + + if (zstr(cmd)) { + /* default to seconds */ + scale = 1000000; + } + else if (!strcasecmp(cmd, "microseconds") || !strcasecmp(cmd, "us")) { + scale = 1; + } + else if (!strcasecmp(cmd, "milliseconds") || !strcasecmp(cmd, "ms")) { + scale = 1000; + } + else if (!strcasecmp(cmd, "seconds") || !strcasecmp(cmd, "s")) { + scale = 1000000; + } + else if (!strcasecmp(cmd, "minutes") || !strcasecmp(cmd, "m")) { + scale = 60000000; + } + else if (!strcasecmp(cmd, "hours") || !strcasecmp(cmd, "h")) { + scale = 3600000000; + } + else if (!strcasecmp(cmd, "days") || !strcasecmp(cmd, "d")) { + scale = 86400000000; + } + else { + stream->write_function(stream, "-USAGE: %s\n", UPTIME_SYNTAX); + return SWITCH_STATUS_SUCCESS; + } + + stream->write_function(stream, "%u\n", switch_core_uptime() / scale); + return SWITCH_STATUS_SUCCESS; +} + #define CTL_SYNTAX "[recover|send_sighup|hupall|pause [inbound|outbound]|resume [inbound|outbound]|shutdown [cancel|elegant|asap|now|restart]|sps|sps_peak_reset|sync_clock|sync_clock_when_idle|reclaim_mem|max_sessions|min_dtmf_duration [num]|max_dtmf_duration [num]|default_dtmf_duration [num]|min_idle_cpu|loglevel [level]|debug_level [level]]" SWITCH_STANDARD_API(ctl_function) { @@ -6633,6 +6669,7 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load) SWITCH_ADD_API(commands_api_interface, "tone_detect", "Start tone detection on a channel", tone_detect_session_function, TONE_DETECT_SYNTAX); SWITCH_ADD_API(commands_api_interface, "unload", "Unload module", unload_function, UNLOAD_SYNTAX); SWITCH_ADD_API(commands_api_interface, "unsched_api", "Unschedule an api command", unsched_api_function, UNSCHED_SYNTAX); + SWITCH_ADD_API(commands_api_interface, "uptime", "Show uptime", uptime_function, UPTIME_SYNTAX); SWITCH_ADD_API(commands_api_interface, "reg_url", "", reg_url_function, "@"); SWITCH_ADD_API(commands_api_interface, "url_decode", "Url decode a string", url_decode_function, ""); SWITCH_ADD_API(commands_api_interface, "url_encode", "Url encode a string", url_encode_function, ""); @@ -6796,6 +6833,17 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_commands_load) switch_console_set_complete("add shutdown"); switch_console_set_complete("add sql_escape"); switch_console_set_complete("add unload ::console::list_loaded_modules"); + switch_console_set_complete("add uptime ms"); + switch_console_set_complete("add uptime s"); + switch_console_set_complete("add uptime m"); + switch_console_set_complete("add uptime h"); + switch_console_set_complete("add uptime d"); + switch_console_set_complete("add uptime microseconds"); + switch_console_set_complete("add uptime milliseconds"); + switch_console_set_complete("add uptime seconds"); + switch_console_set_complete("add uptime minutes"); + switch_console_set_complete("add uptime hours"); + switch_console_set_complete("add uptime days"); switch_console_set_complete("add uuid_audio ::console::list_uuid start read mute"); switch_console_set_complete("add uuid_audio ::console::list_uuid start read level"); switch_console_set_complete("add uuid_audio ::console::list_uuid start write mute"); From 3b45ef90ae7a6184065194f1fa0551b6d8142b77 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Aug 2014 16:07:56 -0400 Subject: [PATCH 04/47] mod_http_cache: fixed S3 URL parser to allow mybucketsubdomain.com.s3.amazonaws.com --- src/mod/applications/mod_http_cache/aws.c | 50 ++++++++++++++++--- .../mod_http_cache/test_aws/main.c | 4 ++ 2 files changed, 47 insertions(+), 7 deletions(-) diff --git a/src/mod/applications/mod_http_cache/aws.c b/src/mod/applications/mod_http_cache/aws.c index 4d446d5857..58c4b4d917 100644 --- a/src/mod/applications/mod_http_cache/aws.c +++ b/src/mod/applications/mod_http_cache/aws.c @@ -105,6 +105,39 @@ char *aws_s3_signature(char *signature, int signature_length, const char *string return signature; } +/** + * Reverse string substring search + */ +static char *my_strrstr(const char *haystack, const char *needle) +{ + char *s; + size_t needle_len; + size_t haystack_len; + + if (zstr(haystack)) { + return NULL; + } + + if (zstr(needle)) { + return (char *)haystack; + } + + needle_len = strlen(needle); + haystack_len = strlen(haystack); + if (needle_len > haystack_len) { + return NULL; + } + + s = (char *)(haystack + haystack_len - needle_len); + do { + if (!strncmp(s, needle, needle_len)) { + return s; + } + } while (s-- != haystack); + + return NULL; +} + /** * Parse bucket and object from URL * @param url to parse. This value is modified. @@ -113,7 +146,7 @@ char *aws_s3_signature(char *signature, int signature_length, const char *string */ void aws_s3_parse_url(char *url, char **bucket, char **object) { - char *bucket_start; + char *bucket_start = NULL; char *bucket_end; char *object_start; @@ -124,15 +157,18 @@ void aws_s3_parse_url(char *url, char **bucket, char **object) return; } - /* expect: http(s)://bucket.s3.amazonaws.com/object */ - bucket_start = strstr(url, "://"); - if (!bucket_start) { + /* expect: http(s)://bucket.foo-bar.s3.amazonaws.com/object */ + if (!strncasecmp(url, "https://", 8)) { + bucket_start = url + 8; + } else if (!strncasecmp(url, "http://", 7)) { + bucket_start = url + 7; + } + if (zstr(bucket_start)) { /* invalid URL */ return; } - bucket_start += 3; - - bucket_end = strchr(bucket_start, '.'); + + bucket_end = my_strrstr(bucket_start, ".s3"); if (!bucket_end) { /* invalid URL */ return; diff --git a/src/mod/applications/mod_http_cache/test_aws/main.c b/src/mod/applications/mod_http_cache/test_aws/main.c index c29f1364ec..f661c5954f 100644 --- a/src/mod/applications/mod_http_cache/test_aws/main.c +++ b/src/mod/applications/mod_http_cache/test_aws/main.c @@ -111,6 +111,10 @@ static void test_parse_url(void) aws_s3_parse_url(strdup("https://my-bucket-with-dash.s3-us-west-2.amazonaws.com/greeting/file/1002/Lumino.mp3"), &bucket, &object); ASSERT_STRING_EQUALS("my-bucket-with-dash", bucket); ASSERT_STRING_EQUALS("greeting/file/1002/Lumino.mp3", object); + + aws_s3_parse_url(strdup("http://quotes.s3.foo.bar.s3.amazonaws.com/greeting/file/1002/Lumino.mp3"), &bucket, &object); + ASSERT_STRING_EQUALS("quotes.s3.foo.bar", bucket); + ASSERT_STRING_EQUALS("greeting/file/1002/Lumino.mp3", object); } /** From b60df39b96b05b6c3cf220d5049ea5fc20dfa6e1 Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Tue, 12 Aug 2014 16:28:42 -0400 Subject: [PATCH 05/47] mod_http_cache: fix configuration so that carriage returns or other whitespace is OK around S3 keys --- .../applications/mod_http_cache/mod_http_cache.c | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/mod/applications/mod_http_cache/mod_http_cache.c b/src/mod/applications/mod_http_cache/mod_http_cache.c index 3505c99a9b..f1ec2b69ed 100644 --- a/src/mod/applications/mod_http_cache/mod_http_cache.c +++ b/src/mod/applications/mod_http_cache/mod_http_cache.c @@ -1395,17 +1395,19 @@ static switch_status_t do_config(url_cache_t *cache) http_profile_t *profile_obj; switch_xml_t domains; switch_xml_t s3 = switch_xml_child(profile, "aws-s3"); - const char *access_key_id = NULL; - const char *secret_access_key = NULL; + char *access_key_id = NULL; + char *secret_access_key = NULL; if (s3) { switch_xml_t id = switch_xml_child(s3, "access-key-id"); switch_xml_t secret = switch_xml_child(s3, "secret-access-key"); if (id && secret) { - access_key_id = switch_xml_txt(id); - secret_access_key = switch_xml_txt(secret); - if (!access_key_id || !secret_access_key) { + access_key_id = switch_strip_whitespace(switch_xml_txt(id)); + secret_access_key = switch_strip_whitespace(switch_xml_txt(secret)); + if (zstr(access_key_id) || zstr(secret_access_key)) { switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Missing aws s3 credentials for profile \"%s\"\n", name); + switch_safe_free(access_key_id); access_key_id = NULL; + switch_safe_free(secret_access_key); secret_access_key = NULL; } } else { @@ -1414,6 +1416,8 @@ static switch_status_t do_config(url_cache_t *cache) } switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "Adding profile \"%s\" to cache\n", name); profile_obj = url_cache_http_profile_add(cache, name, access_key_id, secret_access_key); + switch_safe_free(access_key_id); + switch_safe_free(secret_access_key); domains = switch_xml_child(profile, "domains"); if (domains) { From 76e6be2fad2daffb54ad603252ceed4a339ffaeb Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Fri, 1 Aug 2014 20:32:27 +0200 Subject: [PATCH 06/47] Fix copy-paste error in '-certs' error message --- src/switch.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/switch.c b/src/switch.c index f5ef1ee55f..df3574d2d7 100644 --- a/src/switch.c +++ b/src/switch.c @@ -962,7 +962,7 @@ int main(int argc, char *argv[]) else if (!strcmp(local_argv[x], "-certs")) { x++; if (switch_strlen_zero(local_argv[x]) || is_option(local_argv[x])) { - fprintf(stderr, "When using -certs you must specify a grammar directory\n"); + fprintf(stderr, "When using -certs you must specify a certificates directory\n"); return 255; } From 98502947c8c94af9a86f03c5956f5779ec8f8346 Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 6 Aug 2014 13:03:53 +0200 Subject: [PATCH 07/47] libsrtp: do not include unnecessary sources These two files should only be built when OpenSSL is not enabled. See the configure script of the original sources and Makefile from upstream. (RNG_EXTRA_OBJS) Fixes a -Wimplicit-function-declaration warning. --- libs/srtp/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/srtp/Makefile.am b/libs/srtp/Makefile.am index 598a4e1414..88be99b4e0 100644 --- a/libs/srtp/Makefile.am +++ b/libs/srtp/Makefile.am @@ -15,7 +15,6 @@ libsrtp_la_SOURCES = srtp/srtp.c srtp/ekt.c crypto/cipher/cipher.c crypto/cip crypto/math/datatypes.c crypto/math/stat.c \ crypto/kernel/crypto_kernel.c crypto/kernel/alloc.c \ crypto/kernel/key.c \ - crypto/rng/prng.c crypto/rng/ctr_prng.c \ crypto/kernel/err.c \ crypto/replay/rdb.c crypto/replay/rdbx.c crypto/replay/ut_sim.c @@ -30,6 +29,7 @@ libsrtp_la_SOURCES += crypto/hash/hmac_ossl.c else libsrtp_la_SOURCES += crypto/hash/sha1.c crypto/hash/hmac.c libsrtp_la_SOURCES += crypto/cipher/aes_icm.c crypto/cipher/aes.c crypto/cipher/aes_cbc.c +libsrtp_la_SOURCES += crypto/rng/prng.c crypto/rng/ctr_prng.c if RNG_OBJS_LINUX libsrtp_la_SOURCES += crypto/rng/rand_linux_kernel.c EXTRA_DIST += crypto/rng/rand_source.c From 21c145b1089bccc96e67ebb28166797ae60c35ba Mon Sep 17 00:00:00 2001 From: Peter Wu Date: Wed, 6 Aug 2014 10:19:03 +0200 Subject: [PATCH 08/47] libzrtp: update zrtp_sleep for modern libc usleep is deprecated and disabled in glibc 2.12 unless requested. Use nanosleep instead if available. This fixes the following compiler warning: ./src/zrtp_iface_scheduler.c: In function 'zrtp_sleep': ./src/zrtp_iface_scheduler.c:96:2: warning: implicit declaration of function 'usleep' [-Wimplicit-function-declaration] usleep(msec*1000); ^ --- libs/libzrtp/configure.ac | 2 +- libs/libzrtp/src/zrtp_iface_scheduler.c | 14 +++++++++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/libs/libzrtp/configure.ac b/libs/libzrtp/configure.ac index d1c40b7e3d..251c51acc1 100644 --- a/libs/libzrtp/configure.ac +++ b/libs/libzrtp/configure.ac @@ -68,7 +68,7 @@ AC_C_CONST # Checks for library functions. AC_FUNC_MALLOC AC_CHECK_FUNCS([memset memcpy malloc free]) -AC_CHECK_FUNCS([usleep]) +AC_CHECK_FUNCS([usleep nanosleep]) AC_CHECK_FUNCS([fopen fread]) AC_CHECK_FUNCS([pthread_mutex_lock pthread_mutex_unlock pthread_mutex_init pthread_mutex_destroy]) AC_CHECK_FUNCS([pthread_attr_init pthread_attr_setdetachstate pthread_create]) diff --git a/libs/libzrtp/src/zrtp_iface_scheduler.c b/libs/libzrtp/src/zrtp_iface_scheduler.c index 715c584b53..16386cafdb 100644 --- a/libs/libzrtp/src/zrtp_iface_scheduler.c +++ b/libs/libzrtp/src/zrtp_iface_scheduler.c @@ -7,6 +7,7 @@ * Viktor Krykun */ +#define _POSIX_C_SOURCE 199309L /* for struct timespec */ #include "zrtp.h" #if (defined(ZRTP_USE_BUILTIN_SCEHDULER) && (ZRTP_USE_BUILTIN_SCEHDULER ==1)) @@ -80,11 +81,15 @@ int zrtp_thread_create(zrtp_thread_routine_t start_routine, void *arg) } #elif (ZRTP_PLATFORM == ZP_LINUX) || (ZRTP_PLATFORM == ZP_DARWIN) || (ZRTP_PLATFORM == ZP_BSD) || (ZRTP_PLATFORM == ZP_ANDROID) -#if ZRTP_HAVE_UNISTD_H == 1 +/* POSIX.1-2008 removes usleep, so use nanosleep instead when available */ +#if ZRTP_HAVE_NANOSLEEP +#include /* for nanosleep */ +#elif ZRTP_HAVE_UNISTD_H == 1 #include #else #error "Used environment dosn't have - zrtp_scheduler can't be build." #endif + #if ZRTP_HAVE_PTHREAD_H == 1 #include #else @@ -93,7 +98,14 @@ int zrtp_thread_create(zrtp_thread_routine_t start_routine, void *arg) int zrtp_sleep(unsigned int msec) { +#if ZRTP_HAVE_NANOSLEEP + struct timespec delay; + delay.tv_sec = msec / 1000; + delay.tv_nsec = (msec % 1000) * 1000000; + while (nanosleep(&delay, &delay)) ; +#else usleep(msec*1000); +#endif return 0; } From 8d84aa25ec1ccd6b8f2bd6d77418d9ec363a8f3d Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 13 Aug 2014 19:16:18 +0000 Subject: [PATCH 09/47] Cleanup whitespace --- libs/libzrtp/src/zrtp_iface_scheduler.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/libzrtp/src/zrtp_iface_scheduler.c b/libs/libzrtp/src/zrtp_iface_scheduler.c index 16386cafdb..fe4a2fd014 100644 --- a/libs/libzrtp/src/zrtp_iface_scheduler.c +++ b/libs/libzrtp/src/zrtp_iface_scheduler.c @@ -102,7 +102,7 @@ int zrtp_sleep(unsigned int msec) struct timespec delay; delay.tv_sec = msec / 1000; delay.tv_nsec = (msec % 1000) * 1000000; - while (nanosleep(&delay, &delay)) ; + while (nanosleep(&delay, &delay)); #else usleep(msec*1000); #endif From d701e3e033d3133fcc4764a5e74450f7ae54d3cd Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Thu, 14 Aug 2014 19:40:47 +0500 Subject: [PATCH 10/47] FS-6739 #resolve --- html5/verto/demo/js/verto-min.js | 3649 ++-------------------------- html5/verto/js/src/jquery.verto.js | 2 +- 2 files changed, 222 insertions(+), 3429 deletions(-) diff --git a/html5/verto/demo/js/verto-min.js b/html5/verto/demo/js/verto-min.js index ac33a07ec2..c42c4c88c1 100644 --- a/html5/verto/demo/js/verto-min.js +++ b/html5/verto/demo/js/verto-min.js @@ -1,3429 +1,222 @@ -/* - * Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * Copyright (C) 2005-2014, Anthony Minessale II - * - * Version: MPL 1.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * - * The Initial Developer of the Original Code is - * Anthony Minessale II - * Portions created by the Initial Developer are Copyright (C) - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Anthony Minessale II - * - * jquery.FSRTC.js - WebRTC Glue code - * - */ -(function($) { - - // Find the line in sdpLines that starts with |prefix|, and, if specified, - // contains |substr| (case-insensitive search). - function findLine(sdpLines, prefix, substr) { - return findLineInRange(sdpLines, 0, -1, prefix, substr); - } - - // Find the line in sdpLines[startLine...endLine - 1] that starts with |prefix| - // and, if specified, contains |substr| (case-insensitive search). - function findLineInRange(sdpLines, startLine, endLine, prefix, substr) { - var realEndLine = (endLine != -1) ? endLine : sdpLines.length; - for (var i = startLine; i < realEndLine; ++i) { - if (sdpLines[i].indexOf(prefix) === 0) { - if (!substr || sdpLines[i].toLowerCase().indexOf(substr.toLowerCase()) !== -1) { - return i; - } - } - } - return null; - } - - // Gets the codec payload type from an a=rtpmap:X line. - function getCodecPayloadType(sdpLine) { - var pattern = new RegExp('a=rtpmap:(\\d+) \\w+\\/\\d+'); - var result = sdpLine.match(pattern); - return (result && result.length == 2) ? result[1] : null; - } - - // Returns a new m= line with the specified codec as the first one. - function setDefaultCodec(mLine, payload) { - var elements = mLine.split(' '); - var newLine = []; - var index = 0; - for (var i = 0; i < elements.length; i++) { - if (index === 3) // Format of media starts from the fourth. - newLine[index++] = payload; // Put target payload to the first. - if (elements[i] !== payload) newLine[index++] = elements[i]; - } - return newLine.join(' '); - } - - $.FSRTC = function(options) { - this.options = $.extend({ - useVideo: null, - useStereo: false, - userData: null, - iceServers: false, - videoParams: {}, - callbacks: { - onICEComplete: function() {}, - onICE: function() {}, - onOfferSDP: function() {} - } - }, - options); - - this.mediaData = { - SDP: null, - profile: {}, - candidateList: [] - }; - - this.constraints = { - optional: [{ - 'DtlsSrtpKeyAgreement': 'true' - }], - mandatory: { - OfferToReceiveAudio: true, - OfferToReceiveVideo: this.options.useVideo ? true : false, - } - }; - - if (self.options.useVideo) { - self.options.useVideo.style.display = 'none'; - } - - setCompat(); - checkCompat(); - }; - - $.FSRTC.prototype.useVideo = function(obj) { - var self = this; - - if (obj) { - self.options.useVideo = obj; - self.constraints.mandatory.OfferToReceiveVideo = true; - } else { - self.options.useVideo = null; - self.constraints.mandatory.OfferToReceiveVideo = false; - } - - if (self.options.useVideo) { - self.options.useVideo.style.display = 'none'; - } - }; - - $.FSRTC.prototype.useStereo = function(on) { - var self = this; - self.options.useStereo = on; - }; - - // Sets Opus in stereo if stereo is enabled, by adding the stereo=1 fmtp param. - $.FSRTC.prototype.stereoHack = function(sdp) { - var self = this; - - if (!self.options.useStereo) { - return sdp; - } - - var sdpLines = sdp.split('\r\n'); - - // Find opus payload. - var opusIndex = findLine(sdpLines, 'a=rtpmap', 'opus/48000'), - opusPayload; - if (opusIndex) { - opusPayload = getCodecPayloadType(sdpLines[opusIndex]); - } - - // Find the payload in fmtp line. - var fmtpLineIndex = findLine(sdpLines, 'a=fmtp:' + opusPayload.toString()); - if (fmtpLineIndex === null) return sdp; - - // Append stereo=1 to fmtp line. - sdpLines[fmtpLineIndex] = sdpLines[fmtpLineIndex].concat('; stereo=1'); - - sdp = sdpLines.join('\r\n'); - return sdp; - }; - - function setCompat() { - $.FSRTC.moz = !!navigator.mozGetUserMedia; - //navigator.getUserMedia || (navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia); - if (!navigator.getUserMedia) { - navigator.getUserMedia = navigator.mozGetUserMedia || navigator.webkitGetUserMedia || navigator.msGetUserMedia; - } - } - - function checkCompat() { - if (!navigator.getUserMedia) { - alert('This application cannot function in this browser.'); - return false; - } - return true; - } - - function onStreamError(self) { - console.log('There has been a problem retrieving the streams - did you allow access?'); - - } - - function onStreamSuccess(self) { - console.log("Stream Success"); - } - - function onICE(self, candidate) { - self.mediaData.candidate = candidate; - self.mediaData.candidateList.push(self.mediaData.candidate); - - doCallback(self, "onICE"); - } - - function doCallback(self, func, arg) { - if (func in self.options.callbacks) { - self.options.callbacks[func](self, arg); - } - } - - function onICEComplete(self, candidate) { - console.log("ICE Complete"); - doCallback(self, "onICEComplete"); - } - - function onChannelError(self, e) { - console.error("Channel Error", e); - doCallback(self, "onError", e); - } - - function onICESDP(self, sdp) { - self.mediaData.SDP = self.stereoHack(sdp.sdp); - console.log("ICE SDP"); - doCallback(self, "onICESDP"); - } - - function onAnswerSDP(self, sdp) { - self.answer.SDP = self.stereoHack(sdp.sdp); - console.log("ICE ANSWER SDP"); - doCallback(self, "onAnswerSDP", self.answer.SDP); - } - - function onMessage(self, msg) { - console.log("Message"); - doCallback(self, "onICESDP", msg); - } - - function onRemoteStream(self, stream) { - if (self.options.useVideo) { - self.options.useVideo.style.display = 'block'; - } - - var element = self.options.useAudio; - console.log("REMOTE STREAM", stream, element); - - if (typeof element.srcObject !== 'undefined') { - element.srcObject = stream; - } else if (typeof element.mozSrcObject !== 'undefined') { - element.mozSrcObject = stream; - } else if (typeof element.src !== 'undefined') { - element.src = URL.createObjectURL(stream); - } else { - console.error('Error attaching stream to element.'); - } - - self.options.useAudio.play(); - self.remoteStream = stream; - } - - function onOfferSDP(self, sdp) { - self.mediaData.SDP = self.stereoHack(sdp.sdp); - console.log("Offer SDP"); - doCallback(self, "onOfferSDP"); - } - - $.FSRTC.prototype.answer = function(sdp, onSuccess, onError) { - this.peer.addAnswerSDP({ - type: "answer", - sdp: sdp - }, - onSuccess, onError); - }; - - $.FSRTC.prototype.stop = function() { - var self = this; - - if (self.options.useVideo) { - self.options.useVideo.style.display = 'none'; - } - - if (self.localStream) { - self.localStream.stop(); - self.localStream = null; - } - - if (self.peer) { - console.log("stopping peer"); - self.peer.stop(); - } - }; - - $.FSRTC.prototype.createAnswer = function(sdp) { - var self = this; - self.type = "answer"; - self.remoteSDP = sdp; - console.debug("inbound sdp: ", sdp); - - function onSuccess(stream) { - self.localStream = stream; - - self.peer = RTCPeerConnection({ - type: self.type, - attachStream: self.localStream, - onICE: function(candidate) { - return onICE(self, candidate); - }, - onICEComplete: function() { - return onICEComplete(self); - }, - onRemoteStream: function(stream) { - return onRemoteStream(self, stream); - }, - onICESDP: function(sdp) { - return onICESDP(self, sdp); - }, - onChannelError: function(e) { - return onChannelError(self, e); - }, - constraints: self.constraints, - iceServers: self.options.iceServers, - offerSDP: { - type: "offer", - sdp: self.remoteSDP - } - }); - - onStreamSuccess(self); - } - - function onError() { - onStreamError(self); - } - - getUserMedia({ - constraints: { - audio: true, - video: this.options.useVideo ? { - mandatory: this.options.videoParams, - optional: [] - } : null - }, - video: this.options.useVideo ? true : false, - onsuccess: onSuccess, - onerror: onError - }); - - }; - - $.FSRTC.prototype.call = function(profile) { - checkCompat(); - - var self = this; - - self.type = "offer"; - - function onSuccess(stream) { - self.localStream = stream; - - self.peer = RTCPeerConnection({ - type: self.type, - attachStream: self.localStream, - onICE: function(candidate) { - return onICE(self, candidate); - }, - onICEComplete: function() { - return onICEComplete(self); - }, - onRemoteStream: function(stream) { - return onRemoteStream(self, stream); - }, - onOfferSDP: function(sdp) { - return onOfferSDP(self, sdp); - }, - onICESDP: function(sdp) { - return onICESDP(self, sdp); - }, - onChannelError: function(e) { - return onChannelError(self, e); - }, - constraints: self.constraints, - iceServers: self.options.iceServers, - }); - - onStreamSuccess(self); - } - - function onError() { - onStreamError(self); - } - - getUserMedia({ - constraints: { - audio: true, - video: this.options.useVideo ? { - mandatory: this.options.videoParams, - optional: [] - } : null - }, - video: this.options.useVideo ? true : false, - onsuccess: onSuccess, - onerror: onError - }); - - /* - navigator.getUserMedia({ - video: this.options.useVideo, - audio: true - }, onSuccess, onError); -*/ - - }; - - // DERIVED from RTCPeerConnection-v1.5 - // 2013, @muazkh - github.com/muaz-khan - // MIT License - https://www.webrtc-experiment.com/licence/ - // Documentation - https://github.com/muaz-khan/WebRTC-Experiment/tree/master/RTCPeerConnection - window.moz = !!navigator.mozGetUserMedia; - - function RTCPeerConnection(options) { - - var w = window, - PeerConnection = w.mozRTCPeerConnection || w.webkitRTCPeerConnection, - SessionDescription = w.mozRTCSessionDescription || w.RTCSessionDescription, - IceCandidate = w.mozRTCIceCandidate || w.RTCIceCandidate; - - var STUN = { - url: !moz ? 'stun:stun.l.google.com:19302' : 'stun:23.21.150.121' - }; - - var TURN = { - url: 'turn:homeo@turn.bistri.com:80', - credential: 'homeo' - }; - - var iceServers = null; - - if (options.iceServers) { - var tmp = options.iceServers;; - - if (typeof(tmp) === "boolean") { - tmp = null; - } - - if (tmp && typeof(tmp) !== "array") { - console.warn("iceServers must be an array, reverting to default ice servers"); - tmp = null; - } - - iceServers = { - iceServers: tmp || [STUN] - }; - - if (!moz && !tmp) { - if (parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2]) >= 28) TURN = { - url: 'turn:turn.bistri.com:80', - credential: 'homeo', - username: 'homeo' - }; - - iceServers.iceServers = [STUN]; - } - } - - var optional = { - optional: [] - }; - - if (!moz) { - optional.optional = [{ - DtlsSrtpKeyAgreement: true - }, - { - RtpDataChannels: options.onChannelMessage ? true : false - }]; - } - - var peer = new PeerConnection(iceServers, optional); - - openOffererChannel(); - var x = 0; - - peer.onicecandidate = function(event) { - if (event.candidate) { - options.onICE(event.candidate); - } else { - if (options.onICEComplete) { - options.onICEComplete(); - } - - if (options.type == "offer") { - if (!moz && !x && options.onICESDP) { - options.onICESDP(peer.localDescription); - //x = 1; - /* - x = 1; - peer.createOffer(function(sessionDescription) { - sessionDescription.sdp = serializeSdp(sessionDescription.sdp); - peer.setLocalDescription(sessionDescription); - if (options.onICESDP) { - options.onICESDP(sessionDescription); - } - }, onSdpError, constraints); - */ - } - } else { - if (!x && options.onICESDP) { - options.onICESDP(peer.localDescription); - //x = 1; - /* - x = 1; - peer.createAnswer(function(sessionDescription) { - sessionDescription.sdp = serializeSdp(sessionDescription.sdp); - peer.setLocalDescription(sessionDescription); - if (options.onICESDP) { - options.onICESDP(sessionDescription); - } - }, onSdpError, constraints); - */ - } - } - } - }; - - // attachStream = MediaStream; - if (options.attachStream) peer.addStream(options.attachStream); - - // attachStreams[0] = audio-stream; - // attachStreams[1] = video-stream; - // attachStreams[2] = screen-capturing-stream; - if (options.attachStreams && options.attachStream.length) { - var streams = options.attachStreams; - for (var i = 0; i < streams.length; i++) { - peer.addStream(streams[i]); - } - } - - peer.onaddstream = function(event) { - var remoteMediaStream = event.stream; - - // onRemoteStreamEnded(MediaStream) - remoteMediaStream.onended = function() { - if (options.onRemoteStreamEnded) options.onRemoteStreamEnded(remoteMediaStream); - }; - - // onRemoteStream(MediaStream) - if (options.onRemoteStream) options.onRemoteStream(remoteMediaStream); - - //console.debug('on:add:stream', remoteMediaStream); - }; - - var constraints = options.constraints || { - optional: [], - mandatory: { - OfferToReceiveAudio: true, - OfferToReceiveVideo: true - } - }; - - // onOfferSDP(RTCSessionDescription) - function createOffer() { - if (!options.onOfferSDP) return; - - peer.createOffer(function(sessionDescription) { - sessionDescription.sdp = serializeSdp(sessionDescription.sdp); - peer.setLocalDescription(sessionDescription); - options.onOfferSDP(sessionDescription); - if (moz && options.onICESDP) { - options.onICESDP(sessionDescription); - } - }, - onSdpError, constraints); - } - - // onAnswerSDP(RTCSessionDescription) - function createAnswer() { - if (options.type != "answer") return; - - //options.offerSDP.sdp = addStereo(options.offerSDP.sdp); - peer.setRemoteDescription(new SessionDescription(options.offerSDP), onSdpSuccess, onSdpError); - peer.createAnswer(function(sessionDescription) { - sessionDescription.sdp = serializeSdp(sessionDescription.sdp); - peer.setLocalDescription(sessionDescription); - if (options.onAnswerSDP) { - options.onAnswerSDP(sessionDescription); - } - }, - onSdpError, constraints); - } - - // if Mozilla Firefox & DataChannel; offer/answer will be created later - if ((options.onChannelMessage && !moz) || !options.onChannelMessage) { - createOffer(); - createAnswer(); - } - - // DataChannel Bandwidth - function setBandwidth(sdp) { - // remove existing bandwidth lines - sdp = sdp.replace(/b=AS([^\r\n]+\r\n)/g, ''); - sdp = sdp.replace(/a=mid:data\r\n/g, 'a=mid:data\r\nb=AS:1638400\r\n'); - - return sdp; - } - - // old: FF<>Chrome interoperability management - function getInteropSDP(sdp) { - var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'.split(''), - extractedChars = ''; - - function getChars() { - extractedChars += chars[parseInt(Math.random() * 40)] || ''; - if (extractedChars.length < 40) getChars(); - - return extractedChars; - } - - // usually audio-only streaming failure occurs out of audio-specific crypto line - // a=crypto:1 AES_CM_128_HMAC_SHA1_32 --------- kAttributeCryptoVoice - if (options.onAnswerSDP) sdp = sdp.replace(/(a=crypto:0 AES_CM_128_HMAC_SHA1_32)(.*?)(\r\n)/g, ''); - - // video-specific crypto line i.e. SHA1_80 - // a=crypto:1 AES_CM_128_HMAC_SHA1_80 --------- kAttributeCryptoVideo - var inline = getChars() + '\r\n' + (extractedChars = ''); - sdp = sdp.indexOf('a=crypto') == -1 ? sdp.replace(/c=IN/g, 'a=crypto:1 AES_CM_128_HMAC_SHA1_80 inline:' + inline + 'c=IN') : sdp; - - return sdp; - } - - function serializeSdp(sdp) { - //if (!moz) sdp = setBandwidth(sdp); - //sdp = getInteropSDP(sdp); - //console.debug(sdp); - return sdp; - } - - // DataChannel management - var channel; - - function openOffererChannel() { - if (!options.onChannelMessage || (moz && !options.onOfferSDP)) return; - - _openOffererChannel(); - - if (!moz) return; - navigator.mozGetUserMedia({ - audio: true, - fake: true - }, - function(stream) { - peer.addStream(stream); - createOffer(); - }, - useless); - } - - function _openOffererChannel() { - channel = peer.createDataChannel(options.channel || 'RTCDataChannel', moz ? {} : { - reliable: false - }); - - if (moz) channel.binaryType = 'blob'; - - setChannelEvents(); - } - - function setChannelEvents() { - channel.onmessage = function(event) { - if (options.onChannelMessage) options.onChannelMessage(event); - }; - - channel.onopen = function() { - if (options.onChannelOpened) options.onChannelOpened(channel); - }; - channel.onclose = function(event) { - if (options.onChannelClosed) options.onChannelClosed(event); - - console.warn('WebRTC DataChannel closed', event); - }; - channel.onerror = function(event) { - if (options.onChannelError) options.onChannelError(event); - - console.error('WebRTC DataChannel error', event); - }; - } - - if (options.onAnswerSDP && moz && options.onChannelMessage) openAnswererChannel(); - - function openAnswererChannel() { - peer.ondatachannel = function(event) { - channel = event.channel; - channel.binaryType = 'blob'; - setChannelEvents(); - }; - - if (!moz) return; - navigator.mozGetUserMedia({ - audio: true, - fake: true - }, - function(stream) { - peer.addStream(stream); - createAnswer(); - }, - useless); - } - - // fake:true is also available on chrome under a flag! - function useless() { - log('Error in fake:true'); - } - - function onSdpSuccess() {} - - function onSdpError(e) { - if (options.onChannelError) { - options.onChannelError(e); - } - console.error('sdp error:', e); - } - - return { - addAnswerSDP: function(sdp, cbSuccess, cbError) { - - peer.setRemoteDescription(new SessionDescription(sdp), cbSuccess ? cbSuccess : onSdpSuccess, cbError ? cbError : onSdpError); - }, - addICE: function(candidate) { - peer.addIceCandidate(new IceCandidate({ - sdpMLineIndex: candidate.sdpMLineIndex, - candidate: candidate.candidate - })); - }, - - peer: peer, - channel: channel, - sendData: function(message) { - if (channel) { - channel.send(message); - } - }, - - stop: function() { - peer.close(); - if (options.attachStream) { - options.attachStream.stop(); - } - } - - }; - } - - // getUserMedia - var video_constraints = { - mandatory: {}, - optional: [] - }; - - function getUserMedia(options) { - var n = navigator, - media; - n.getMedia = n.webkitGetUserMedia || n.mozGetUserMedia; - n.getMedia(options.constraints || { - audio: true, - video: video_constraints - }, - streaming, options.onerror || - function(e) { - console.error(e); - }); - - function streaming(stream) { - var video = options.video; - if (video) { - video[moz ? 'mozSrcObject' : 'src'] = moz ? stream : window.webkitURL.createObjectURL(stream); - //video.play(); - } - if (options.onsuccess) { - options.onsuccess(stream); - } - media = stream; - } - - return media; - } - -})(jQuery); -/* - * Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * Copyright (C) 2005-2014, Anthony Minessale II - * - * Version: MPL 1.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is jquery.jsonrpclient.js modified for Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * - * The Initial Developer of the Original Code is - * Textalk AB http://textalk.se/ - * Portions created by the Initial Developer are Copyright (C) - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Anthony Minessale II - * - * jquery.jsonrpclient.js - JSON RPC client code - * - */ -/** - * This plugin requires jquery.json.js to be available, or at least the methods $.toJSON and - * $.parseJSON. - * - * The plan is to make use of websockets if they are available, but work just as well with only - * http if not. - * - * Usage example: - * - * var foo = new $.JsonRpcClient({ ajaxUrl: '/backend/jsonrpc' }); - * foo.call( - * 'bar', [ 'A parameter', 'B parameter' ], - * function(result) { alert('Foo bar answered: ' + result.my_answer); }, - * function(error) { console.log('There was an error', error); } - * ); - * - * More examples are available in README.md - */ -(function($) { - /** - * @fn new - * @memberof $.JsonRpcClient - * - * @param options An object stating the backends: - * ajaxUrl A url (relative or absolute) to a http(s) backend. - * socketUrl A url (relative of absolute) to a ws(s) backend. - * onmessage A socket message handler for other messages (non-responses). - * getSocket A function returning a WebSocket or null. - * It must take an onmessage_cb and bind it to the onmessage event - * (or chain it before/after some other onmessage handler). - * Or, it could return null if no socket is available. - * The returned instance must have readyState <= 1, and if less than 1, - * react to onopen binding. - */ - $.JsonRpcClient = function(options) { - var self = this; - this.options = $.extend({ - ajaxUrl : null, - socketUrl : null, ///< The ws-url for default getSocket. - onmessage : null, ///< Other onmessage-handler. - login : null, /// auth login - passwd : null, /// auth passwd - sessid : null, - getSocket : function(onmessage_cb) { return self._getSocket(onmessage_cb); } - }, options); - - self.ws_cnt = 0; - - // Declare an instance version of the onmessage callback to wrap 'this'. - this.wsOnMessage = function(event) { self._wsOnMessage(event); }; - }; - - /// Holding the WebSocket on default getsocket. - $.JsonRpcClient.prototype._ws_socket = null; - - /// Object : { success_cb: cb, error_cb: cb } - $.JsonRpcClient.prototype._ws_callbacks = {}; - - /// The next JSON-RPC request id. - $.JsonRpcClient.prototype._current_id = 1; - - /** - * @fn call - * @memberof $.JsonRpcClient - * - * @param method The method to run on JSON-RPC server. - * @param params The params; an array or object. - * @param success_cb A callback for successful request. - * @param error_cb A callback for error. - */ - $.JsonRpcClient.prototype.call = function(method, params, success_cb, error_cb) { - // Construct the JSON-RPC 2.0 request. - - if (!params) { - params = {}; - } - - if (this.options.sessid) { - params.sessid = this.options.sessid; - } - - var request = { - jsonrpc : '2.0', - method : method, - params : params, - id : this._current_id++ // Increase the id counter to match request/response - }; - - if (!success_cb) { - success_cb = function(e){console.log("Success: ", e);}; - } - - if (!error_cb) { - error_cb = function(e){console.log("Error: ", e);}; - } - - // Try making a WebSocket call. - var socket = this.options.getSocket(this.wsOnMessage); - if (socket !== null) { - this._wsCall(socket, request, success_cb, error_cb); - return; - } - - // No WebSocket, and no HTTP backend? This won't work. - if (this.options.ajaxUrl === null) { - throw "$.JsonRpcClient.call used with no websocket and no http endpoint."; - } - - $.ajax({ - type : 'POST', - url : this.options.ajaxUrl, - data : $.toJSON(request), - dataType : 'json', - cache : false, - - success : function(data) { - if ('error' in data) error_cb(data.error, this); - success_cb(data.result, this); - }, - - // JSON-RPC Server could return non-200 on error - error : function(jqXHR, textStatus, errorThrown) { - try { - var response = $.parseJSON(jqXHR.responseText); - if ('console' in window) console.log(response); - error_cb(response.error, this); - } - catch (err) { - // Perhaps the responseText wasn't really a jsonrpc-error. - error_cb({ error: jqXHR.responseText }, this); - } - } - }); - }; - - /** - * Notify sends a command to the server that won't need a response. In http, there is probably - * an empty response - that will be dropped, but in ws there should be no response at all. - * - * This is very similar to call, but has no id and no handling of callbacks. - * - * @fn notify - * @memberof $.JsonRpcClient - * - * @param method The method to run on JSON-RPC server. - * @param params The params; an array or object. - */ - $.JsonRpcClient.prototype.notify = function(method, params) { - // Construct the JSON-RPC 2.0 request. - - if (this.options.sessid) { - params.sessid = this.options.sessid; - } - - var request = { - jsonrpc: '2.0', - method: method, - params: params - }; - - // Try making a WebSocket call. - var socket = this.options.getSocket(this.wsOnMessage); - if (socket !== null) { - this._wsCall(socket, request); - return; - } - - // No WebSocket, and no HTTP backend? This won't work. - if (this.options.ajaxUrl === null) { - throw "$.JsonRpcClient.notify used with no websocket and no http endpoint."; - } - - $.ajax({ - type : 'POST', - url : this.options.ajaxUrl, - data : $.toJSON(request), - dataType : 'json', - cache : false - }); - }; - - /** - * Make a batch-call by using a callback. - * - * The callback will get an object "batch" as only argument. On batch, you can call the methods - * "call" and "notify" just as if it was a normal $.JsonRpcClient object, and all calls will be - * sent as a batch call then the callback is done. - * - * @fn batch - * @memberof $.JsonRpcClient - * - * @param callback The main function which will get a batch handler to run call and notify on. - * @param all_done_cb A callback function to call after all results have been handled. - * @param error_cb A callback function to call if there is an error from the server. - * Note, that batch calls should always get an overall success, and the - * only error - */ - $.JsonRpcClient.prototype.batch = function(callback, all_done_cb, error_cb) { - var batch = new $.JsonRpcClient._batchObject(this, all_done_cb, error_cb); - callback(batch); - batch._execute(); - }; - - /** - * The default getSocket handler. - * - * @param onmessage_cb The callback to be bound to onmessage events on the socket. - * - * @fn _getSocket - * @memberof $.JsonRpcClient - */ - - $.JsonRpcClient.prototype.socketReady = function() { - if (this._ws_socket === null || this._ws_socket.readyState > 1) { - return false; - } - - return true; - } - - $.JsonRpcClient.prototype.closeSocket = function() { - if (self.socketReady()) { - this._ws_socket.onclose = function (w) {console.log("Closing Socket")} - this._ws_socket.close(); - } - } - - $.JsonRpcClient.prototype.loginData = function(params) { - self.options.login = params.login; - self.options.passwd = params.passwd; - } - - $.JsonRpcClient.prototype.connectSocket = function(onmessage_cb) { - var self = this; - - if (self.to) { - clearTimeout(self.to); - } - - if (!self.socketReady()) { - self.authing = false; - - if (self._ws_socket) { - delete self._ws_socket; - } - - // No socket, or dying socket, let's get a new one. - self._ws_socket = new WebSocket(self.options.socketUrl); - - if (self._ws_socket) { - // Set up onmessage handler. - self._ws_socket.onmessage = onmessage_cb; - self._ws_socket.onclose = function (w) { - if (!self.ws_sleep) { - self.ws_sleep = 1000; - } - - if (self.options.onWSClose) { - self.options.onWSClose(self); - } - - console.error("Websocket Lost " + self.ws_cnt + " sleep: " + self.ws_sleep + "msec"); - - self.to = setTimeout(function() { - console.log("Attempting Reconnection...."); - self.connectSocket(onmessage_cb); - }, self.ws_sleep); - - self.ws_cnt++; - - if (self.ws_sleep < 3000 && (self.ws_cnt % 10) == 0) { - self.ws_sleep += 1000; - } - } - - // Set up sending of message for when the socket is open. - self._ws_socket.onopen = function() { - if (self.to) { - clearTimeout(self.to); - } - self.ws_sleep = 1000; - self.ws_cnt = 0; - if (self.options.onWSConnect) { - self.options.onWSConnect(self); - } - - var req; - // Send the requests. - while (req = $.JsonRpcClient.q.pop()) { - self._ws_socket.send(req); - } - } - } - } - - return self._ws_socket ? true : false; - } - - $.JsonRpcClient.prototype._getSocket = function(onmessage_cb) { - // If there is no ws url set, we don't have a socket. - // Likewise, if there is no window.WebSocket. - if (this.options.socketUrl === null || !("WebSocket" in window)) return null; - - this.connectSocket(onmessage_cb); - - return this._ws_socket; - }; - - /** - * Queue to save messages delivered when websocket is not ready - */ - $.JsonRpcClient.q = []; - - /** - * Internal handler to dispatch a JRON-RPC request through a websocket. - * - * @fn _wsCall - * @memberof $.JsonRpcClient - */ - $.JsonRpcClient.prototype._wsCall = function(socket, request, success_cb, error_cb) { - var request_json = $.toJSON(request); - - if (socket.readyState < 1) { - // The websocket is not open yet; we have to set sending of the message in onopen. - self = this; // In closure below, this is set to the WebSocket. Use self instead. - - $.JsonRpcClient.q.push(request_json); - - - } - else { - // We have a socket and it should be ready to send on. - socket.send(request_json); - } - - // Setup callbacks. If there is an id, this is a call and not a notify. - if ('id' in request && typeof success_cb !== 'undefined') { - this._ws_callbacks[request.id] = { request: request_json, request_obj: request, success_cb: success_cb, error_cb: error_cb }; - } - }; - - /** - * Internal handler for the websocket messages. It determines if the message is a JSON-RPC - * response, and if so, tries to couple it with a given callback. Otherwise, it falls back to - * given external onmessage-handler, if any. - * - * @param event The websocket onmessage-event. - */ - $.JsonRpcClient.prototype._wsOnMessage = function(event) { - // Check if this could be a JSON RPC message. - var response; - try { - response = $.parseJSON(event.data); - - /// @todo Make using the jsonrcp 2.0 check optional, to use this on JSON-RPC 1 backends. - - if (typeof response === 'object' - && 'jsonrpc' in response - && response.jsonrpc === '2.0') { - - /// @todo Handle bad response (without id). - - // If this is an object with result, it is a response. - if ('result' in response && this._ws_callbacks[response.id]) { - // Get the success callback. - var success_cb = this._ws_callbacks[response.id].success_cb; - -/* - // set the sessid if present - if ('sessid' in response.result && !this.options.sessid || (this.options.sessid != response.result.sessid)) { - this.options.sessid = response.result.sessid; - if (this.options.sessid) { - console.log("setting session UUID to: " + this.options.sessid); - } - } -*/ - // Delete the callback from the storage. - delete this._ws_callbacks[response.id]; - - // Run callback with result as parameter. - success_cb(response.result, this); - return; - } - - // If this is an object with error, it is an error response. - else if ('error' in response && this._ws_callbacks[response.id]) { - - // Get the error callback. - var error_cb = this._ws_callbacks[response.id].error_cb; - var orig_req = this._ws_callbacks[response.id].request; - - // if this is an auth request, send the credentials and resend the failed request - if (!self.authing && response.error.code == -32000 && self.options.login && self.options.passwd) { - self.authing = true; - - this.call("login", { login: self.options.login, passwd: self.options.passwd}, - this._ws_callbacks[response.id].request_obj.method == "login" - ? - function(e) { - self.authing = false; - console.log("logged in"); - delete self._ws_callbacks[response.id]; - - if (self.options.onWSLogin) { - self.options.onWSLogin(true, self); - } - } - - : - - function(e) { - self.authing = false; - console.log("logged in, resending request id: " + response.id); - var socket = self.options.getSocket(self.wsOnMessage); - if (socket !== null) { - socket.send(orig_req); - } - if (self.options.onWSLogin) { - self.options.onWSLogin(true, self); - } - }, - - function(e) { - console.log("error logging in, request id:", response.id); - delete self._ws_callbacks[response.id]; - error_cb(response.error, this); - if (self.options.onWSLogin) { - self.options.onWSLogin(false, self); - } - } - - ); - return; - } - - // Delete the callback from the storage. - delete this._ws_callbacks[response.id]; - - // Run callback with the error object as parameter. - error_cb(response.error, this); - - return; - } - } - } - catch (err) { - // Probably an error while parsing a non json-string as json. All real JSON-RPC cases are - // handled above, and the fallback method is called below. - console.log("ERROR: "+ err); - return; - } - - // This is not a JSON-RPC response. Call the fallback message handler, if given. - if (typeof this.options.onmessage === 'function') { - event.eventData = response; - if (!event.eventData) { - event.eventData = {}; - } - - var reply = this.options.onmessage(event); - - if (reply && typeof reply === "object" && event.eventData.id) { - var msg = { - jsonrpc: "2.0", - id: event.eventData.id, - result: reply - }; - - var socket = self.options.getSocket(self.wsOnMessage); - if (socket !== null) { - socket.send($.toJSON(msg)); - } - } - - } - }; - - - /************************************************************************************************ - * Batch object with methods - ************************************************************************************************/ - - /** - * Handling object for batch calls. - */ - $.JsonRpcClient._batchObject = function(jsonrpcclient, all_done_cb, error_cb) { - // Array of objects to hold the call and notify requests. Each objects will have the request - // object, and unless it is a notify, success_cb and error_cb. - this._requests = []; - - this.jsonrpcclient = jsonrpcclient; - this.all_done_cb = all_done_cb; - this.error_cb = typeof error_cb === 'function' ? error_cb : function() {}; - - }; - - /** - * @sa $.JsonRpcClient.prototype.call - */ - $.JsonRpcClient._batchObject.prototype.call = function(method, params, success_cb, error_cb) { - - if (!params) { - params = {}; - } - - if (this.options.sessid) { - params.sessid = this.options.sessid; - } - - if (!success_cb) { - success_cb = function(e){console.log("Success: ", e);}; - } - - if (!error_cb) { - error_cb = function(e){console.log("Error: ", e);}; - } - - this._requests.push({ - request : { - jsonrpc : '2.0', - method : method, - params : params, - id : this.jsonrpcclient._current_id++ // Use the client's id series. - }, - success_cb : success_cb, - error_cb : error_cb - }); - }; - - /** - * @sa $.JsonRpcClient.prototype.notify - */ - $.JsonRpcClient._batchObject.prototype.notify = function(method, params) { - if (this.options.sessid) { - params.sessid = this.options.sessid; - } - - this._requests.push({ - request : { - jsonrpc : '2.0', - method : method, - params : params - } - }); - }; - - /** - * Executes the batched up calls. - */ - $.JsonRpcClient._batchObject.prototype._execute = function() { - var self = this; - - if (this._requests.length === 0) return; // All done :P - - // Collect all request data and sort handlers by request id. - var batch_request = []; - var handlers = {}; - - // If we have a WebSocket, just send the requests individually like normal calls. - var socket = self.jsonrpcclient.options.getSocket(self.jsonrpcclient.wsOnMessage); - if (socket !== null) { - for (var i = 0; i < this._requests.length; i++) { - var call = this._requests[i]; - var success_cb = ('success_cb' in call) ? call.success_cb : undefined; - var error_cb = ('error_cb' in call) ? call.error_cb : undefined; - self.jsonrpcclient._wsCall(socket, call.request, success_cb, error_cb); - } - if (typeof all_done_cb === 'function') all_done_cb(result); - return; - } - - for (var i = 0; i < this._requests.length; i++) { - var call = this._requests[i]; - batch_request.push(call.request); - - // If the request has an id, it should handle returns (otherwise it's a notify). - if ('id' in call.request) { - handlers[call.request.id] = { - success_cb : call.success_cb, - error_cb : call.error_cb - }; - } - } - - var success_cb = function(data) { self._batchCb(data, handlers, self.all_done_cb); }; - - // No WebSocket, and no HTTP backend? This won't work. - if (self.jsonrpcclient.options.ajaxUrl === null) { - throw "$.JsonRpcClient.batch used with no websocket and no http endpoint."; - } - - // Send request - $.ajax({ - url : self.jsonrpcclient.options.ajaxUrl, - data : $.toJSON(batch_request), - dataType : 'json', - cache : false, - type : 'POST', - - // Batch-requests should always return 200 - error : function(jqXHR, textStatus, errorThrown) { - self.error_cb(jqXHR, textStatus, errorThrown); - }, - success : success_cb - }); - }; - - /** - * Internal helper to match the result array from a batch call to their respective callbacks. - * - * @fn _batchCb - * @memberof $.JsonRpcClient - */ - $.JsonRpcClient._batchObject.prototype._batchCb = function(result, handlers, all_done_cb) { - for (var i = 0; i < result.length; i++) { - var response = result[i]; - - // Handle error - if ('error' in response) { - if (response.id === null || !(response.id in handlers)) { - // An error on a notify? Just log it to the console. - if ('console' in window) console.log(response); - } - else handlers[response.id].error_cb(response.error, this); - } - else { - // Here we should always have a correct id and no error. - if (!(response.id in handlers) && 'console' in window) console.log(response); - else handlers[response.id].success_cb(response.result, this); - } - } - - if (typeof all_done_cb === 'function') all_done_cb(result); - }; - -})(jQuery); - -/* - * Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * Copyright (C) 2005-2014, Anthony Minessale II - * - * Version: MPL 1.1 - * - * The contents of this file are subject to the Mozilla Public License Version - * 1.1 (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * http://www.mozilla.org/MPL/ - * - * Software distributed under the License is distributed on an "AS IS" basis, - * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License - * for the specific language governing rights and limitations under the - * License. - * - * The Original Code is Verto HTML5/Javascript Telephony Signaling and Control Protocol Stack for FreeSWITCH - * - * The Initial Developer of the Original Code is - * Anthony Minessale II - * Portions created by the Initial Developer are Copyright (C) - * the Initial Developer. All Rights Reserved. - * - * Contributor(s): - * - * Anthony Minessale II - * - * jquery.verto.js - Main interface - * - */ - -(function($) { - - var generateGUID = (typeof(window.crypto) !== 'undefined' && typeof(window.crypto.getRandomValues) !== 'undefined') ? - function() { - // If we have a cryptographically secure PRNG, use that - // http://stackoverflow.com/questions/6906916/collisions-when-generating-uuids-in-javascript - var buf = new Uint16Array(8); - window.crypto.getRandomValues(buf); - var S4 = function(num) { - var ret = num.toString(16); - while (ret.length < 4) { - ret = "0" + ret; - } - return ret; - }; - return (S4(buf[0]) + S4(buf[1]) + "-" + S4(buf[2]) + "-" + S4(buf[3]) + "-" + S4(buf[4]) + "-" + S4(buf[5]) + S4(buf[6]) + S4(buf[7])); - } - - : - - function() { - // Otherwise, just use Math.random - // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523 - return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, function(c) { - var r = Math.random() * 16 | 0, - v = c == 'x' ? r : (r & 0x3 | 0x8); - return v.toString(16); - }); - }; - - /// MASTER OBJ - $.verto = function(options, callbacks) { - var verto = this; - - $.verto.saved.push(verto); - - verto.options = $.extend({ - login: null, - passwd: null, - socketUrl: null, - tag: null, - videoParams: {}, - iceServers: false, - ringSleep: 6000 - }, - options); - - verto.sessid = $.cookie('verto_session_uuid') || generateGUID(); - $.cookie('verto_session_uuid', verto.sessid, { - expires: 1 - }); - - verto.dialogs = {}; - - verto.callbacks = callbacks || {}; - - verto.eventSUBS = {}; - - verto.rpcClient = new $.JsonRpcClient({ - login: verto.options.login, - passwd: verto.options.passwd, - socketUrl: verto.options.socketUrl, - sessid: verto.sessid, - onmessage: function(e) { - return verto.handleMessage(e.eventData); - }, - onWSConnect: function(o) { - o.call('login', {}); - }, - onWSLogin: function(success) { - if (verto.callbacks.onWSLogin) { - verto.callbacks.onWSLogin(verto, success); - } - }, - onWSClose: function(success) { - if (verto.callbacks.onWSClose) { - verto.callbacks.onWSClose(verto, success); - } - verto.purge(); - } - }); - - if (verto.options.ringFile && verto.options.tag) { - verto.ringer = $("#" + verto.options.tag); - } - - verto.rpcClient.call('login', {}); - - }; - - $.verto.prototype.iceServers = function(on) { - var verto = this; - - verto.options.iceServers = on; - }; - - $.verto.prototype.loginData = function(params) { - verto.options.login = params.login; - verto.options.passwd = params.passwd; - verto.rpcClient.loginData(params); - }; - - $.verto.prototype.logout = function(msg) { - var verto = this; - verto.rpcClient.closeSocket(); - verto.purge(); - }; - - $.verto.prototype.login = function(msg) { - var verto = this; - verto.logout(); - verto.rpcClient.call('login', {}); - }; - - $.verto.prototype.message = function(msg) { - var verto = this; - var err = 0; - - if (!msg.to) { - console.error("Missing To"); - err++; - } - - if (!msg.body) { - console.error("Missing Body"); - err++; - } - - if (err) { - return false; - } - - verto.sendMethod("verto.info", { - msg: msg - }); - - return true; - }; - - $.verto.prototype.processReply = function(method, success, e) { - var verto = this; - var i; - - //console.log("Response: " + method, success, e); - - switch (method) { - case "verto.subscribe": - for (i in e.unauthorizedChannels) { - drop_bad(verto, e.unauthorizedChannels[i]); - } - for (i in e.subscribedChannels) { - mark_ready(verto, e.subscribedChannels[i]); - } - - break; - case "verto.unsubscribe": - //console.error(e); - break; - } - }; - - $.verto.prototype.sendMethod = function(method, params) { - var verto = this; - - verto.rpcClient.call(method, params, - - function(e) { - /* Success */ - verto.processReply(method, true, e); - }, - - function(e) { - /* Error */ - verto.processReply(method, false, e); - }); - }; - - function do_sub(verto, channel, obj) { - - } - - function drop_bad(verto, channel) { - console.error("drop unauthorized channel: " + channel); - delete verto.eventSUBS[channel]; - } - - function mark_ready(verto, channel) { - for (var j in verto.eventSUBS[channel]) { - verto.eventSUBS[channel][j].ready = true; - console.log("subscribed to channel: " + channel); - if (verto.eventSUBS[channel][j].readyHandler) { - verto.eventSUBS[channel][j].readyHandler(verto, channel); - } - } - } - - var SERNO = 1; - - function do_subscribe(verto, channel, subChannels, sparams) { - var params = sparams || {}; - - var local = params.local; - - var obj = { - eventChannel: channel, - userData: params.userData, - handler: params.handler, - ready: false, - readyHandler: params.readyHandler, - serno: SERNO++ - }; - - var isnew = false; - - if (!verto.eventSUBS[channel]) { - verto.eventSUBS[channel] = []; - subChannels.push(channel); - isnew = true; - } - - verto.eventSUBS[channel].push(obj); - - if (local) { - obj.ready = true; - obj.local = true; - } - - if (!isnew && verto.eventSUBS[channel][0].ready) { - obj.ready = true; - if (obj.readyHandler) { - obj.readyHandler(verto, channel); - } - } - - return { - serno: obj.serno, - eventChannel: channel - }; - - } - - $.verto.prototype.subscribe = function(channel, sparams) { - var verto = this; - var r = []; - var subChannels = []; - var params = sparams || {}; - - if (typeof(channel) === "string") { - r.push(do_subscribe(verto, channel, subChannels, params)); - } else { - for (var i in channel) { - r.push(do_subscribe(verto, channel, subChannels, params)); - } - } - - if (subChannels.length) { - verto.sendMethod("verto.subscribe", { - eventChannel: subChannels.length == 1 ? subChannels[0] : subChannels, - subParams: params.subParams - }); - } - - return r; - }; - - $.verto.prototype.unsubscribe = function(handle) { - var verto = this; - var i; - - if (!handle) { - for (i in verto.eventSUBS) { - if (verto.eventSUBS[i]) { - verto.unsubscribe(verto.eventSUBS[i]); - } - } - } else { - var unsubChannels = {}; - var sendChannels = []; - var channel; - - if (typeof(handle) == "string") { - delete verto.eventSUBS[handle]; - unsubChannels[handle]++; - } else { - for (i in handle) { - if (typeof(handle[i]) == "string") { - channel = handle[i]; - delete verto.eventSUBS[channel]; - unsubChannels[channel]++; - } else { - var repl = []; - channel = handle[i].eventChannel; - - for (var j in verto.eventSUBS[channel]) { - if (verto.eventSUBS[channel][j].serno == handle[i].serno) {} else { - repl.push(verto.eventSUBS[channel][j]); - } - } - - verto.eventSUBS[channel] = repl; - - if (verto.eventSUBS[channel].length === 0) { - delete verto.eventSUBS[channel]; - unsubChannels[channel]++; - } - } - } - } - - for (var u in unsubChannels) { - console.log("Sending Unsubscribe for: ", u); - sendChannels.push(u); - } - - if (sendChannels.length) { - verto.sendMethod("verto.unsubscribe", { - eventChannel: sendChannels.length == 1 ? sendChannels[0] : sendChannels - }); - } - } - }; - - $.verto.prototype.broadcast = function(channel, params) { - var verto = this; - var msg = { - eventChannel: channel, - data: {} - }; - for (var i in params) { - msg.data[i] = params[i]; - } - verto.sendMethod("verto.broadcast", msg); - }; - - $.verto.prototype.purge = function(callID) { - var verto = this; - var x = 0; - var i; - - for (i in verto.dialogs) { - if (!x) { - console.log("purging dialogs"); - } - x++; - verto.dialogs[i].setState($.verto.enum.state.purge); - } - - for (i in verto.eventSUBS) { - if (verto.eventSUBS[i]) { - console.log("purging subscription: " + i); - delete verto.eventSUBS[i]; - } - } - }; - - $.verto.prototype.hangup = function(callID) { - var verto = this; - if (callID) { - var dialog = verto.dialogs[callID]; - - if (dialog) { - dialog.hangup(); - } - } else { - for (var i in verto.dialogs) { - verto.dialogs[i].hangup(); - } - } - }; - - $.verto.prototype.newCall = function(args, callbacks) { - var verto = this; - - if (!verto.rpcClient.socketReady()) { - console.error("Not Connected..."); - return; - } - - var dialog = new $.verto.dialog($.verto.enum.direction.outbound, this, args); - - dialog.invite(); - - if (callbacks) { - dialog.callbacks = callbacks; - } - - return dialog; - }; - - $.verto.prototype.handleMessage = function(data) { - var verto = this; - - if (!(data && data.method)) { - console.error("Invalid Data", data); - return; - } - - if (data.params.callID) { - var dialog = verto.dialogs[data.params.callID]; - - if (dialog) { - - switch (data.method) { - case 'verto.bye': - dialog.hangup(data.params); - break; - case 'verto.answer': - dialog.handleAnswer(data.params); - break; - case 'verto.media': - dialog.handleMedia(data.params); - break; - case 'verto.display': - dialog.handleDisplay(data.params); - break; - case 'verto.info': - dialog.handleInfo(data.params); - break; - default: - console.debug("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED", dialog, data.method); - break; - } - } else { - - switch (data.method) { - case 'verto.attach': - data.params.attach = true; - - if (data.params.sdp && data.params.sdp.indexOf("m=video") > 0) { - data.params.useVideo = true; - } - - if (data.params.sdp && data.params.sdp.indexOf("stereo=1") > 0) { - data.params.useStereo = true; - } - - dialog = new $.verto.dialog($.verto.enum.direction.inbound, verto, data.params); - dialog.setState($.verto.enum.state.recovering); - - break; - case 'verto.invite': - - if (data.params.sdp && data.params.sdp.indexOf("m=video") > 0) { - data.params.wantVideo = true; - } - - if (data.params.sdp && data.params.sdp.indexOf("stereo=1") > 0) { - data.params.useStereo = true; - } - - dialog = new $.verto.dialog($.verto.enum.direction.inbound, verto, data.params); - break; - default: - console.debug("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED"); - break; - } - } - - return { - method: data.method - }; - } else { - switch (data.method) { - case 'verto.event': - var list = null; - var key = null; - - if (data.params) { - key = data.params.eventChannel; - } - - if (key) { - list = verto.eventSUBS[key]; - - if (!list) { - list = verto.eventSUBS[key.split(".")[0]]; - } - } - - if (!list && key && key === verto.sessid) { - if (verto.callbacks.onMessage) { - verto.callbacks.onMessage(verto, null, $.verto.enum.message.pvtEvent, data.params); - } - } else if (!list && key && verto.dialogs[key]) { - verto.dialogs[key].sendMessage($.verto.enum.message.pvtEvent, data.params); - } else if (!list) { - if (!key) { - key = "UNDEFINED"; - } - console.error("UNSUBBED or invalid EVENT " + key + " IGNORED"); - } else { - for (var i in list) { - var sub = list[i]; - - if (!sub || !sub.ready) { - console.error("invalid EVENT for " + key + " IGNORED"); - } else if (sub.handler) { - sub.handler(verto, data.params, sub.userData); - } else if (verto.callbacks.onEvent) { - verto.callbacks.onEvent(verto, data.params, sub.userData); - } else { - console.log("EVENT:", data.params); - } - } - } - - break; - - case "verto.info": - if (verto.callbacks.onMessage) { - verto.callbacks.onMessage(verto, null, $.verto.enum.message.info, data.params.msg); - } - //console.error(data); - console.debug("MESSAGE from: " + data.params.msg.from, data.params.msg.body); - - break; - - default: - console.error("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED", data.method); - break; - } - } - }; - - var del_array = function(array, name) { - var r = []; - var len = array.length; - - for (var i = 0; i < len; i++) { - if (array[i] != name) { - r.push(array[i]); - } - } - - return r; - }; - - var hashArray = function() { - var vha = this; - - var hash = {}; - var array = []; - - vha.reorder = function(a) { - array = a; - var h = hash; - hash = {}; - - var len = array.length; - - for (var i = 0; i < len; i++) { - var key = array[i]; - if (h[key]) { - hash[key] = h[key]; - delete h[key]; - } - } - h = undefined; - }; - - vha.clear = function() { - hash = undefined; - array = undefined; - hash = {}; - array = []; - }; - - vha.add = function(name, val, insertAt) { - var redraw = false; - - if (!hash[name]) { - if (insertAt === undefined || insertAt < 0 || insertAt >= array.length) { - array.push(name); - } else { - var x = 0; - var n = []; - var len = array.length; - - for (var i = 0; i < len; i++) { - if (x++==insertAt) { - n.push(name); - } - n.push(array[i]); - } - - array = undefined; - array = n; - n = undefined; - redraw = true; - } - } - - hash[name] = val; - - return redraw; - }; - - vha.del = function(name) { - var r = false; - - if (hash[name]) { - array = del_array(array, name); - delete hash[name]; - r = true; - } else { - console.error("can't del nonexistant key " + name); - } - - return r; - }; - - vha.get = function(name) { - return hash[name]; - }; - - vha.order = function() { - return array; - }; - - vha.hash = function() { - return hash; - }; - - vha.indexOf = function(name) { - var len = array.length; - - for (var i = 0; i < len; i++) { - if (array[i] == name) { - return i; - } - } - }; - - vha.arrayLen = function() { - return array.length; - }; - - vha.asArray = function() { - var r = []; - - var len = array.length; - - for (var i = 0; i < len; i++) { - var key = array[i]; - r.push(hash[key]); - } - - return r; - }; - - vha.each = function(cb) { - var len = array.length; - - for (var i = 0; i < len; i++) { - cb(array[i], hash[array[i]]); - } - }; - - vha.dump = function(html) { - var str = ""; - - vha.each(function(name, val) { - str += "name: " + name + " val: " + JSON.stringify(val) + (html ? "
" : "\n"); - }); - - return str; - }; - - }; - - $.verto.liveArray = function(verto, context, name, config) { - var la = this; - var lastSerno = 0; - var binding = null; - var user_obj = config.userObj; - var local = false; - - // Inherit methods of hashArray - hashArray.call(la); - - // Save the hashArray add, del, reorder, clear methods so we can make our own. - la._add = la.add; - la._del = la.del; - la._reorder = la.reorder; - la._clear = la.clear; - - la.context = context; - la.name = name; - la.user_obj = user_obj; - - la.verto = verto; - la.broadcast = function(channel, obj) { - verto.broadcast(channel, obj); - }; - la.errs = 0; - - la.clear = function() { - la._clear(); - lastSerno = 0; - - if (la.onChange) { - la.onChange(la, { - action: "clear" - }); - } - }; - - la.checkSerno = function(serno) { - if (serno < 0) { - return true; - } - - if (lastSerno > 0 && serno != (lastSerno + 1)) { - if (la.onErr) { - la.onErr(la, { - lastSerno: lastSerno, - serno: serno - }); - } - la.errs++; - console.debug(la.errs); - if (la.errs < 3) { - la.bootstrap(la.user_obj); - } - return false; - } else { - lastSerno = serno; - return true; - } - }; - - la.reorder = function(serno, a) { - if (la.checkSerno(serno)) { - la._reorder(a); - if (la.onChange) { - la.onChange(la, { - serno: serno, - action: "reorder" - }); - } - } - }; - - la.init = function(serno, val, key, index) { - if (key === null || key === undefined) { - key = serno; - } - if (la.checkSerno(serno)) { - if (la.onChange) { - la.onChange(la, { - serno: serno, - action: "init", - index: index, - key: key, - data: val - }); - } - } - }; - - la.bootObj = function(serno, val) { - if (la.checkSerno(serno)) { - - //la.clear(); - for (var i in val) { - la._add(val[i][0], val[i][1]); - } - - if (la.onChange) { - la.onChange(la, { - serno: serno, - action: "bootObj", - data: val, - redraw: true - }); - } - } - }; - - // @param serno La is the serial number for la particular request. - // @param key If looking at it as a hash table, la represents the key in the hashArray object where you want to store the val object. - // @param index If looking at it as an array, la represents the position in the array where you want to store the val object. - // @param val La is the object you want to store at the key or index location in the hash table / array. - la.add = function(serno, val, key, index) { - if (key === null || key === undefined) { - key = serno; - } - if (la.checkSerno(serno)) { - var redraw = la._add(key, val, index); - if (la.onChange) { - la.onChange(la, { - serno: serno, - action: "add", - index: index, - key: key, - data: val, - redraw: redraw - }); - } - } - }; - - la.modify = function(serno, val, key, index) { - if (key === null || key === undefined) { - key = serno; - } - if (la.checkSerno(serno)) { - la._add(key, val, index); - if (la.onChange) { - la.onChange(la, { - serno: serno, - action: "modify", - key: key, - data: val, - index: index - }); - } - } - }; - - la.del = function(serno, key, index) { - if (key === null || key === undefined) { - key = serno; - } - if (la.checkSerno(serno)) { - if (index === null || index < 0 || index === undefined) { - index = la.indexOf(key); - } - var ok = la._del(key); - - if (ok && la.onChange) { - la.onChange(la, { - serno: serno, - action: "del", - key: key, - index: index - }); - } - } - }; - - var eventHandler = function(v, e, la) { - var packet = e.data; - - //console.error("READ:", packet); - - if (packet.name != la.name) { - return; - } - - switch (packet.action) { - - case "init": - la.init(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex); - break; - - case "bootObj": - la.bootObj(packet.wireSerno, packet.data); - break; - case "add": - la.add(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex); - break; - - case "modify": - if (! (packet.arrIndex || packet.hashKey)) { - console.error("Invalid Packet", packet); - } else { - la.modify(packet.wireSerno, packet.data, packet.hashKey, packet.arrIndex); - } - break; - case "del": - if (! (packet.arrIndex || packet.hashKey)) { - console.error("Invalid Packet", packet); - } else { - la.del(packet.wireSerno, packet.hashKey, packet.arrIndex); - } - break; - - case "clear": - la.clear(); - break; - - case "reorder": - la.reorder(packet.wireSerno, packet.order); - break; - - default: - if (la.checkSerno(packet.wireSerno)) { - if (la.onChange) { - la.onChange(la, { - serno: packet.wireSerno, - action: packet.action, - data: packet.data - }); - } - } - break; - } - }; - - if (la.context) { - binding = la.verto.subscribe(la.context, { - handler: eventHandler, - userData: la, - subParams: config.subParams - }); - } - - la.destroy = function() { - la._clear(); - la.verto.unsubscribe(binding); - }; - - la.sendCommand = function(cmd, obj) { - var self = la; - self.broadcast(self.context, { - liveArray: { - command: cmd, - context: self.context, - name: self.name, - obj: obj - } - }); - }; - - la.bootstrap = function(obj) { - var self = la; - la.sendCommand("bootstrap", obj); - //self.heartbeat(); - }; - - la.changepage = function(obj) { - var self = la; - self.clear(); - self.broadcast(self.context, { - liveArray: { - command: "changepage", - context: la.context, - name: la.name, - obj: obj - } - }); - }; - - la.heartbeat = function(obj) { - var self = la; - - var callback = function() { - self.heartbeat.call(self, obj); - }; - self.broadcast(self.context, { - liveArray: { - command: "heartbeat", - context: self.context, - name: self.name, - obj: obj - } - }); - self.hb_pid = setTimeout(callback, 30000); - }; - - la.bootstrap(la.user_obj); - }; - - $.verto.liveTable = function(verto, context, name, jq, config) { - var dt; - var la = new $.verto.liveArray(verto, context, name, { - subParams: config.subParams - }); - var lt = this; - - lt.liveArray = la; - lt.dataTable = dt; - lt.verto = verto; - - lt.destroy = function() { - if (dt) { - dt.fnDestroy(); - } - if (la) { - la.destroy(); - } - - dt = null; - la = null; - }; - - la.onErr = function(obj, args) { - console.error("Error: ", obj, args); - }; - - la.onChange = function(obj, args) { - var index = 0; - var iserr = 0; - - if (!dt) { - if (!config.aoColumns) { - if (args.action != "init") { - return; - } - - config.aoColumns = []; - - for (var i in args.data) { - config.aoColumns.push({ - "sTitle": args.data[i] - }); - } - } - - dt = jq.dataTable(config); - } - - if (dt && (args.action == "del" || args.action == "modify")) { - index = args.index; - - if (index === undefined && args.key) { - index = la.indexOf(args.key); - } - - if (index === undefined) { - console.error("INVALID PACKET Missing INDEX\n", args); - return; - } - } - - if (config.onChange) { - config.onChange(obj, args); - } - - try { - switch (args.action) { - case "bootObj": - if (!args.data) { - console.error("missing data"); - return; - } - dt.fnClearTable(); - dt.fnAddData(obj.asArray()); - dt.fnAdjustColumnSizing(); - break; - case "add": - if (!args.data) { - console.error("missing data"); - return; - } - if (args.redraw > -1) { - // specific position, more costly - dt.fnClearTable(); - dt.fnAddData(obj.asArray()); - } else { - dt.fnAddData(args.data); - } - dt.fnAdjustColumnSizing(); - break; - case "modify": - if (!args.data) { - return; - } - //console.debug(args, index); - dt.fnUpdate(args.data, index); - dt.fnAdjustColumnSizing(); - break; - case "del": - dt.fnDeleteRow(index); - dt.fnAdjustColumnSizing(); - break; - case "clear": - dt.fnClearTable(); - break; - case "reorder": - // specific position, more costly - dt.fnClearTable(); - dt.fnAddData(obj.asArray()); - break; - case "hide": - jq.hide(); - break; - - case "show": - jq.show(); - break; - - } - } catch(err) { - console.error("ERROR: " + err); - iserr++; - } - - if (iserr) { - obj.errs++; - if (obj.errs < 3) { - obj.bootstrap(obj.user_obj); - } - } else { - obj.errs = 0; - } - - }; - - la.onChange(la, { - action: "init" - }); - - }; - - var CONFMAN_SERNO = 1; - - $.verto.confMan = function(verto, params) { - var confMan = this; - conf - confMan.params = $.extend({ - tableID: null, - statusID: null, - mainModID: null, - dialog: null, - hasVid: false, - laData: null, - onBroadcast: null, - onLaChange: null, - onLaRow: null - }, - params); - - confMan.verto = verto; - confMan.serno = CONFMAN_SERNO++; - - function genMainMod(jq) { - var play_id = "play_" + confMan.serno; - var stop_id = "stop_" + confMan.serno; - var recording_id = "recording_" + confMan.serno; - var rec_stop_id = "recording_stop" + confMan.serno; - var div_id = "confman_" + confMan.serno; - - var html = "

" + - "" + - "" + - "" + - "" - - + "

"; - - jq.html(html); - - $("#" + play_id).click(function() { - var file = prompt("Please enter file name", ""); - confMan.modCommand("play", null, file); - }); - - $("#" + stop_id).click(function() { - confMan.modCommand("stop", null, "all"); - }); - - $("#" + recording_id).click(function() { - var file = prompt("Please enter file name", ""); - confMan.modCommand("recording", null, ["start", file]); - }); - - $("#" + rec_stop_id).click(function() { - confMan.modCommand("recording", null, ["stop", "all"]); - }); - - } - - function genControls(jq, rowid) { - var x = parseInt(rowid); - var kick_id = "kick_" + x; - var tmute_id = "tmute_" + x; - var box_id = "box_" + x; - var volup_id = "volume_in_up" + x; - var voldn_id = "volume_in_dn" + x; - var transfer_id = "transfer" + x; - - - var html = "
" + - "" + - "" + - "" + - "" + - "" + - "
" - ; - - jq.html(html); - - if (!jq.data("mouse")) { - $("#" + box_id).hide(); - } - - jq.mouseover(function(e) { - jq.data({"mouse": true}); - $("#" + box_id).show(); - }); - - jq.mouseout(function(e) { - jq.data({"mouse": false}); - $("#" + box_id).hide(); - }); - - $("#" + transfer_id).click(function() { - var xten = prompt("Enter Extension"); - confMan.modCommand("transfer", x, xten); - }); - - $("#" + kick_id).click(function() { - confMan.modCommand("kick", x); - }); - - $("#" + tmute_id).click(function() { - confMan.modCommand("tmute", x); - }); - - $("#" + volup_id).click(function() { - confMan.modCommand("volume_in", x, "up"); - }); - - $("#" + voldn_id).click(function() { - confMan.modCommand("volume_in", x, "down"); - }); - - return html; - } - - - - var atitle = ""; - var awidth = 0; - - //$(".jsDataTable").width(confMan.params.hasVid ? "900px" : "800px"); - - if (confMan.params.laData.role === "moderator") { - atitle = "Action"; - awidth = 200; - - if (confMan.params.mainModID) { - genMainMod($(confMan.params.mainModID)); - $(confMan.params.displayID).html("Moderator Controls Ready

") - } else { - $(confMan.params.mainModID).html(""); - } - - verto.subscribe(confMan.params.laData.modChannel, { - handler: function(v, e) { - console.error("MODDATA:", e.data); - if (confMan.params.onBroadcast) { - confMan.params.onBroadcast(verto, confMan, e.data); - } - if (!confMan.destroyed && confMan.params.displayID) { - $(confMan.params.displayID).html(e.data.response + "

"); - if (confMan.lastTimeout) { - clearTimeout(confMan.lastTimeout); - confMan.lastTimeout = 0; - } - confMan.lastTimeout = setTimeout(function() { $(confMan.params.displayID).html(confMan.destroyed ? "" : "Moderator Controls Ready

")}, 4000); - } - - } - }); - - } - - var row_callback = null; - - if (confMan.params.laData.role === "moderator") { - row_callback = function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { - if (!aData[5]) { - var $row = $('td:eq(5)', nRow); - genControls($row, aData); - - if (confMan.params.onLaRow) { - confMan.params.onLaRow(verto, confMan, $row, aData); - } - - } - }; - } - - confMan.lt = new $.verto.liveTable(verto, confMan.params.laData.laChannel, confMan.params.laData.laName, $(confMan.params.tableID), { - subParams: { - callID: confMan.params.dialog ? confMan.params.dialog.callID : null - }, - - - "onChange": function(obj, args) { - $(confMan.params.statusID).text("Conference Members: " + " (" + obj.arrayLen() + " Total)"); - if (confMan.params.onLaChange) { - confMan.params.onLaChange(verto, confMan, $.verto.enum.confEvent.laChange, obj, args); - } - }, - - "aaData": [], - "aoColumns": [{ - "sTitle": "ID" - }, - { - "sTitle": "Number" - }, - { - "sTitle": "Name" - }, - { - "sTitle": "Codec" - }, - { - "sTitle": "Status", - "sWidth": confMan.params.hasVid ? "300px" : "150px" - }, - { - "sTitle": atitle, - "sWidth": awidth, - - }], - "bAutoWidth": true, - "bDestroy": true, - "bSort": false, - "bInfo": false, - "bFilter": false, - "bLengthChange": false, - "bPaginate": false, - "iDisplayLength": 1000, - - "oLanguage": { - "sEmptyTable": "The Conference is Empty....." - }, - - "fnRowCallback": row_callback - - }); - } - - $.verto.confMan.prototype.modCommand = function(cmd, id, value) { - var confMan = this; - - confMan.verto.sendMethod("verto.broadcast", { - "eventChannel": confMan.params.laData.modChannel, - "data": { - "application": "conf-control", - "command": cmd, - "id": id, - "value": value - } - }); - } - - $.verto.confMan.prototype.destroy = function() { - var confMan = this; - - confMan.destroyed = true; - - if (confMan.lt) { - confMan.lt.destroy(); - } - - if (confMan.params.laData.modChannel) { - confMan.verto.unsubscribe(confMan.params.laData.modChannel); - } - - if (confMan.params.mainModID) { - $(confMan.params.mainModID).html(""); - } - } - - $.verto.dialog = function(direction, verto, params) { - var dialog = this; - - dialog.params = $.extend({ - useVideo: verto.options.useVideo, - useStereo: verto.options.useStereo, - tag: verto.options.tag, - login: verto.options.login - }, - params); - - dialog.verto = verto; - dialog.direction = direction; - dialog.lastState = null; - dialog.state = dialog.lastState = $.verto.enum.state.new; - dialog.callbacks = verto.callbacks; - dialog.answered = false; - dialog.attach = params.attach || false; - - if (dialog.params.callID) { - dialog.callID = dialog.params.callID; - } else { - dialog.callID = dialog.params.callID = generateGUID(); - } - - if (dialog.params.tag) { - dialog.audioStream = document.getElementById(dialog.params.tag); - - if (dialog.params.useVideo) { - dialog.videoStream = dialog.audioStream; - } - } //else conjure one TBD - - dialog.verto.dialogs[dialog.callID] = dialog; - - var RTCcallbacks = {}; - - if (dialog.direction == $.verto.enum.direction.inbound) { - - dialog.params.remote_caller_id_name = dialog.params.caller_id_name; - dialog.params.remote_caller_id_number = dialog.params.caller_id_number; - - if (!dialog.params.remote_caller_id_name) { - dialog.params.remote_caller_id_name = "Nobody"; - } - - if (!dialog.params.remote_caller_id_number) { - dialog.params.remote_caller_id_number = "UNKNOWN"; - } - - RTCcallbacks.onMessage = function(rtc, msg) { - console.debug(msg); - }; - - RTCcallbacks.onAnswerSDP = function(rtc, sdp) { - console.error("answer sdp", sdp); - }; - } else { - dialog.params.remote_caller_id_name = "Outbound Call"; - dialog.params.remote_caller_id_number = dialog.params.destination_number; - } - - RTCcallbacks.onICESDP = function(rtc) { - - if (rtc.type == "offer") { - console.log("offer", rtc.mediaData.SDP); - - dialog.setState($.verto.enum.state.requesting); - - dialog.sendMethod("verto.invite", { - sdp: rtc.mediaData.SDP - }); - } else { //answer - dialog.setState($.verto.enum.state.answering); - - dialog.sendMethod(dialog.attach ? "verto.attach" : "verto.answer", { - sdp: dialog.rtc.mediaData.SDP - }); - } - - }; - - RTCcallbacks.onICE = function(rtc) { - //console.log("cand", rtc.mediaData.candidate); - if (rtc.type == "offer") { - console.log("offer", rtc.mediaData.candidate); - return; - } - - }; - - RTCcallbacks.onError = function(e) { - console.error("ERROR:", e); - dialog.hangup(); - }; - - dialog.rtc = new $.FSRTC({ - callbacks: RTCcallbacks, - useVideo: dialog.videoStream, - useAudio: dialog.audioStream, - useStereo: dialog.params.useStereo, - videoParams: verto.options.videoParams, - iceServers: verto.options.iceServers - }); - - dialog.rtc.verto = dialog.verto; - - if (dialog.direction == $.verto.enum.direction.inbound) { - if (dialog.attach) { - dialog.answer(); - } else { - dialog.ring(); - } - } - }; - - $.verto.dialog.prototype.invite = function() { - var dialog = this; - dialog.rtc.call(); - }; - - $.verto.dialog.prototype.sendMethod = function(method, obj) { - var dialog = this; - obj.dialogParams = {}; - - for (var i in dialog.params) { - if (i == "sdp" && method != "verto.invite" && method != "verto.attach") { - continue; - } - - obj.dialogParams[i] = dialog.params[i]; - } - - dialog.verto.rpcClient.call(method, obj, - - function(e) { - /* Success */ - dialog.processReply(method, true, e); - }, - - function(e) { - /* Error */ - dialog.processReply(method, false, e); - }); - }; - - function checkStateChange(oldS, newS) { - - if (newS == $.verto.enum.state.purge || $.verto.enum.states[oldS.name][newS.name]) { - return true; - } - - return false; - } - - $.verto.dialog.prototype.setState = function(state) { - var dialog = this; - - if (dialog.state == $.verto.enum.state.ringing) { - dialog.stopRinging(); - } - - if (dialog.state == state || !checkStateChange(dialog.state, state)) { - console.error("Dialog " + dialog.callID + ": INVALID state change from " + dialog.state.name + " to " + state.name); - dialog.hangup(); - return false; - } - - console.info("Dialog " + dialog.callID + ": state change from " + dialog.state.name + " to " + state.name); - - dialog.lastState = dialog.state; - dialog.state = state; - - if (!dialog.causeCode) { - dialog.causeCode = 16; - } - - if (!dialog.cause) { - dialog.cause = "NORMAL CLEARING"; - } - - if (dialog.callbacks.onDialogState) { - dialog.callbacks.onDialogState(this); - } - - switch (dialog.state) { - case $.verto.enum.state.trying: - setTimeout(function() { - if (dialog.state == $.verto.enum.state.trying) { - dialog.setState($.verto.enum.state.hangup); - } - }, 30000); - break; - case $.verto.enum.state.purge: - dialog.setState($.verto.enum.state.destroy); - break; - case $.verto.enum.state.hangup: - - if (dialog.lastState.val > $.verto.enum.state.requesting.val && dialog.lastState.val < $.verto.enum.state.hangup.val) { - dialog.sendMethod("verto.bye", {}); - } - - dialog.setState($.verto.enum.state.destroy); - break; - case $.verto.enum.state.destroy: - delete verto.dialogs[dialog.callID]; - dialog.rtc.stop(); - break; - } - - return true; - }; - - $.verto.dialog.prototype.processReply = function(method, success, e) { - var dialog = this; - - //console.log("Response: " + method + " State:" + dialog.state.name, success, e); - - switch (method) { - - case "verto.answer": - case "verto.attach": - if (success) { - dialog.setState($.verto.enum.state.active); - } else { - dialog.hangup(); - } - break; - case "verto.invite": - if (success) { - dialog.setState($.verto.enum.state.trying); - } else { - dialog.setState($.verto.enum.state.destroy); - } - break; - - case "verto.bye": - dialog.hangup(); - break; - - case "verto.modify": - if (e.holdState) { - if (e.holdState == "held") { - if (dialog.state != $.verto.enum.state.held) { - dialog.setState($.verto.enum.state.held); - } - } else if (e.holdState == "active") { - if (dialog.state != $.verto.enum.state.active) { - dialog.setState($.verto.enum.state.active); - } - } - } - - if (success) {} - - break; - - default: - break; - } - - }; - - $.verto.dialog.prototype.hangup = function(params) { - var dialog = this; - - if (params) { - if (params.causeCode) { - dialog.causeCode = params.causeCode; - } - - if (params.cause) { - dialog.cause = params.cause; - } - } - - if (dialog.state.val > $.verto.enum.state.new.val && dialog.state.val < $.verto.enum.state.hangup.val) { - dialog.setState($.verto.enum.state.hangup); - } else if (dialog.state.val < $.verto.enum.state.destroy) { - dialog.setState($.verto.enum.state.destroy); - } - }; - - $.verto.dialog.prototype.stopRinging = function() { - var dialog = this; - if (dialog.verto.ringer) { - dialog.verto.ringer.stop(); - } - }; - - $.verto.dialog.prototype.indicateRing = function() { - var dialog = this; - - if (dialog.verto.ringer) { - dialog.verto.ringer.attr("src", dialog.verto.options.ringFile)[0].play(); - - setTimeout(function() { - dialog.stopRinging(); - if (dialog.state == $.verto.enum.state.ringing) { - dialog.indicateRing(); - } - }, - dialog.verto.options.ringSleep); - } - }; - - $.verto.dialog.prototype.ring = function() { - var dialog = this; - - dialog.setState($.verto.enum.state.ringing); - dialog.indicateRing(); - }; - - $.verto.dialog.prototype.useVideo = function(on) { - var dialog = this; - - dialog.params.useVideo = on; - - if (on) { - dialog.videoStream = dialog.audioStream; - } else { - dialog.videoStream = null; - } - - dialog.rtc.useVideo(dialog.videoStream); - - }; - - $.verto.dialog.prototype.useStereo = function(on) { - var dialog = this; - - dialog.params.useStereo = on; - dialog.rtc.useStereo(on); - }; - - $.verto.dialog.prototype.dtmf = function(digits) { - var dialog = this; - if (digits) { - dialog.sendMethod("verto.info", { - dtmf: digits - }); - } - }; - - $.verto.dialog.prototype.transfer = function(dest, params) { - var dialog = this; - if (dest) { - cur_call.sendMethod("verto.modify", { - action: "transfer", - destination: dest, - params: params - }); - } - }; - - $.verto.dialog.prototype.hold = function(params) { - var dialog = this; - - cur_call.sendMethod("verto.modify", { - action: "hold", - params: params - }); - }; - - $.verto.dialog.prototype.unhold = function(params) { - var dialog = this; - - cur_call.sendMethod("verto.modify", { - action: "unhold", - params: params - }); - }; - - $.verto.dialog.prototype.toggleHold = function(params) { - var dialog = this; - - cur_call.sendMethod("verto.modify", { - action: "toggleHold", - params: params - }); - }; - - $.verto.dialog.prototype.message = function(msg) { - var dialog = this; - var err = 0; - - msg.from = dialog.params.login; - - if (!msg.to) { - console.error("Missing To"); - err++; - } - - if (!msg.body) { - console.error("Missing Body"); - err++; - } - - if (err) { - return false; - } - - dialog.sendMethod("verto.info", { - msg: msg - }); - - return true; - }; - - $.verto.dialog.prototype.answer = function(params) { - var dialog = this; - - if (!dialog.answered) { - if (params) { - if (params.useVideo) { - dialog.useVideo(true); - } - dialog.params.callee_id_name = params.callee_id_name; - dialog.params.callee_id_number = params.callee_id_number; - } - dialog.rtc.createAnswer(dialog.params.sdp); - dialog.answered = true; - } - }; - - $.verto.dialog.prototype.handleAnswer = function(params) { - var dialog = this; - - dialog.gotAnswer = true; - - if (dialog.state.val >= $.verto.enum.state.active.val) { - return; - } - - if (dialog.state.val >= $.verto.enum.state.early.val) { - dialog.setState($.verto.enum.state.active); - } else { - if (dialog.gotEarly) { - console.log("Dialog " + dialog.callID + "Got answer while still establishing early media, delaying..."); - } else { - console.log("Dialog " + dialog.callID + "Answering Channel"); - dialog.rtc.answer(params.sdp, function() { - dialog.setState($.verto.enum.state.active); - }, - function(e) { - console.error(e); - dialog.hangup(); - }); - console.log("Dialog " + dialog.callID + "ANSWER SDP", params.sdp); - } - } - }; - - $.verto.dialog.prototype.cidString = function(enc) { - var dialog = this; - var party = dialog.params.remote_caller_id_name + (enc ? " <" : " <") + dialog.params.remote_caller_id_number + (enc ? ">" : ">"); - return party; - }; - - $.verto.dialog.prototype.sendMessage = function(msg, params) { - var dialog = this; - - if (dialog.callbacks.onMessage) { - dialog.callbacks.onMessage(dialog.verto, dialog, msg, params); - } - }; - - $.verto.dialog.prototype.handleInfo = function(params) { - var dialog = this; - - dialog.sendMessage($.verto.enum.message.info, params.msg); - }; - - $.verto.dialog.prototype.handleDisplay = function(params) { - var dialog = this; - - if (params.display_name) { - dialog.params.remote_caller_id_name = params.display_name; - } - if (params.display_number) { - dialog.params.remote_caller_id_number = params.display_number; - } - - dialog.sendMessage($.verto.enum.message.display, {}); - }; - - $.verto.dialog.prototype.handleMedia = function(params) { - var dialog = this; - - if (dialog.state.val >= $.verto.enum.state.early.val) { - return; - } - - dialog.gotEarly = true; - - dialog.rtc.answer(params.sdp, function() { - console.log("Dialog " + dialog.callID + "Establishing early media"); - dialog.setState($.verto.enum.state.early); - - if (dialog.gotAnswer) { - console.log("Dialog " + dialog.callID + "Answering Channel"); - dialog.setState($.verto.enum.state.active); - } - }, - function(e) { - console.error(e); - dialog.hangup(); - }); - console.log("Dialog " + dialog.callID + "EARLY SDP", params.sdp); - }; - - $.verto.ENUM = function(s) { - var i = 0, - o = {}; - s.split(" ").map(function(x) { - o[x] = { - name: x, - val: i++ - }; - }); - return Object.freeze(o); - }; - - $.verto.enum = {}; - - $.verto.enum.states = Object.freeze({ - new: { - requesting: 1, - recovering: 1, - ringing: 1, - destroy: 1, - answering: 1 - }, - requesting: { - trying: 1, - hangup: 1 - }, - recovering: { - answering: 1, - hangup: 1 - }, - trying: { - active: 1, - early: 1, - hangup: 1 - }, - ringing: { - answering: 1, - hangup: 1 - }, - answering: { - active: 1, - hangup: 1 - }, - active: { - hangup: 1, - held: 1 - }, - held: { - hangup: 1, - active: 1 - }, - early: { - hangup: 1, - active: 1 - }, - hangup: { - destroy: 1 - }, - destroy: {}, - purge: { - destroy: 1 - } - }); - - $.verto.enum.state = $.verto.ENUM("new requesting trying recovering ringing answering early active held hangup destroy purge"); - $.verto.enum.direction = $.verto.ENUM("inbound outbound"); - $.verto.enum.message = $.verto.ENUM("display info pvtEvent"); - - $.verto.enum = Object.freeze($.verto.enum); - - $.verto.saved = []; - - $(window).bind('beforeunload', function() { - for (var i in $.verto.saved) { - var verto = $.verto.saved[i]; - if (verto) { - verto.logout(); - verto.purge(); - } - } - return $.verto.warnOnUnload; - }); - -})(jQuery); +(function($){function findLine(sdpLines,prefix,substr){return findLineInRange(sdpLines,0,-1,prefix,substr);} +function findLineInRange(sdpLines,startLine,endLine,prefix,substr){var realEndLine=(endLine!=-1)?endLine:sdpLines.length;for(var i=startLine;i=28)TURN={url:'turn:turn.bistri.com:80',credential:'homeo',username:'homeo'};iceServers.iceServers=[STUN];}} +var optional={optional:[]};if(!moz){optional.optional=[{DtlsSrtpKeyAgreement:true},{RtpDataChannels:options.onChannelMessage?true:false}];} +var peer=new PeerConnection(iceServers,optional);openOffererChannel();var x=0;peer.onicecandidate=function(event){if(event.candidate){options.onICE(event.candidate);}else{if(options.onICEComplete){options.onICEComplete();} +if(options.type=="offer"){if(!moz&&!x&&options.onICESDP){options.onICESDP(peer.localDescription);}}else{if(!x&&options.onICESDP){options.onICESDP(peer.localDescription);}}}};if(options.attachStream)peer.addStream(options.attachStream);if(options.attachStreams&&options.attachStream.length){var streams=options.attachStreams;for(var i=0;i1){return false;} +return true;} +$.JsonRpcClient.prototype.closeSocket=function(){if(self.socketReady()){this._ws_socket.onclose=function(w){console.log("Closing Socket")} +this._ws_socket.close();}} +$.JsonRpcClient.prototype.loginData=function(params){self.options.login=params.login;self.options.passwd=params.passwd;} +$.JsonRpcClient.prototype.connectSocket=function(onmessage_cb){var self=this;if(self.to){clearTimeout(self.to);} +if(!self.socketReady()){self.authing=false;if(self._ws_socket){delete self._ws_socket;} +self._ws_socket=new WebSocket(self.options.socketUrl);if(self._ws_socket){self._ws_socket.onmessage=onmessage_cb;self._ws_socket.onclose=function(w){if(!self.ws_sleep){self.ws_sleep=1000;} +if(self.options.onWSClose){self.options.onWSClose(self);} +console.error("Websocket Lost "+self.ws_cnt+" sleep: "+self.ws_sleep+"msec");self.to=setTimeout(function(){console.log("Attempting Reconnection....");self.connectSocket(onmessage_cb);},self.ws_sleep);self.ws_cnt++;if(self.ws_sleep<3000&&(self.ws_cnt%10)==0){self.ws_sleep+=1000;}} +self._ws_socket.onopen=function(){if(self.to){clearTimeout(self.to);} +self.ws_sleep=1000;self.ws_cnt=0;if(self.options.onWSConnect){self.options.onWSConnect(self);} +var req;while(req=$.JsonRpcClient.q.pop()){self._ws_socket.send(req);}}}} +return self._ws_socket?true:false;} +$.JsonRpcClient.prototype._getSocket=function(onmessage_cb){if(this.options.socketUrl===null||!("WebSocket"in window))return null;this.connectSocket(onmessage_cb);return this._ws_socket;};$.JsonRpcClient.q=[];$.JsonRpcClient.prototype._wsCall=function(socket,request,success_cb,error_cb){var request_json=$.toJSON(request);if(socket.readyState<1){self=this;$.JsonRpcClient.q.push(request_json);} +else{socket.send(request_json);} +if('id'in request&&typeof success_cb!=='undefined'){this._ws_callbacks[request.id]={request:request_json,request_obj:request,success_cb:success_cb,error_cb:error_cb};}};$.JsonRpcClient.prototype._wsOnMessage=function(event){var response;try{response=$.parseJSON(event.data);if(typeof response==='object'&&'jsonrpc'in response&&response.jsonrpc==='2.0'){if('result'in response&&this._ws_callbacks[response.id]){var success_cb=this._ws_callbacks[response.id].success_cb;delete this._ws_callbacks[response.id];success_cb(response.result,this);return;} +else if('error'in response&&this._ws_callbacks[response.id]){var error_cb=this._ws_callbacks[response.id].error_cb;var orig_req=this._ws_callbacks[response.id].request;if(!self.authing&&response.error.code==-32000&&self.options.login&&self.options.passwd){self.authing=true;this.call("login",{login:self.options.login,passwd:self.options.passwd},this._ws_callbacks[response.id].request_obj.method=="login"?function(e){self.authing=false;console.log("logged in");delete self._ws_callbacks[response.id];if(self.options.onWSLogin){self.options.onWSLogin(true,self);}}:function(e){self.authing=false;console.log("logged in, resending request id: "+response.id);var socket=self.options.getSocket(self.wsOnMessage);if(socket!==null){socket.send(orig_req);} +if(self.options.onWSLogin){self.options.onWSLogin(true,self);}},function(e){console.log("error logging in, request id:",response.id);delete self._ws_callbacks[response.id];error_cb(response.error,this);if(self.options.onWSLogin){self.options.onWSLogin(false,self);}});return;} +delete this._ws_callbacks[response.id];error_cb(response.error,this);return;}}} +catch(err){console.log("ERROR: "+err);return;} +if(typeof this.options.onmessage==='function'){event.eventData=response;if(!event.eventData){event.eventData={};} +var reply=this.options.onmessage(event);if(reply&&typeof reply==="object"&&event.eventData.id){var msg={jsonrpc:"2.0",id:event.eventData.id,result:reply};var socket=self.options.getSocket(self.wsOnMessage);if(socket!==null){socket.send($.toJSON(msg));}}}};$.JsonRpcClient._batchObject=function(jsonrpcclient,all_done_cb,error_cb){this._requests=[];this.jsonrpcclient=jsonrpcclient;this.all_done_cb=all_done_cb;this.error_cb=typeof error_cb==='function'?error_cb:function(){};};$.JsonRpcClient._batchObject.prototype.call=function(method,params,success_cb,error_cb){if(!params){params={};} +if(this.options.sessid){params.sessid=this.options.sessid;} +if(!success_cb){success_cb=function(e){console.log("Success: ",e);};} +if(!error_cb){error_cb=function(e){console.log("Error: ",e);};} +this._requests.push({request:{jsonrpc:'2.0',method:method,params:params,id:this.jsonrpcclient._current_id++},success_cb:success_cb,error_cb:error_cb});};$.JsonRpcClient._batchObject.prototype.notify=function(method,params){if(this.options.sessid){params.sessid=this.options.sessid;} +this._requests.push({request:{jsonrpc:'2.0',method:method,params:params}});};$.JsonRpcClient._batchObject.prototype._execute=function(){var self=this;if(this._requests.length===0)return;var batch_request=[];var handlers={};var socket=self.jsonrpcclient.options.getSocket(self.jsonrpcclient.wsOnMessage);if(socket!==null){for(var i=0;i0){data.params.useVideo=true;} +if(data.params.sdp&&data.params.sdp.indexOf("stereo=1")>0){data.params.useStereo=true;} +dialog=new $.verto.dialog($.verto.enum.direction.inbound,verto,data.params);dialog.setState($.verto.enum.state.recovering);break;case'verto.invite':if(data.params.sdp&&data.params.sdp.indexOf("m=video")>0){data.params.wantVideo=true;} +if(data.params.sdp&&data.params.sdp.indexOf("stereo=1")>0){data.params.useStereo=true;} +dialog=new $.verto.dialog($.verto.enum.direction.inbound,verto,data.params);break;default:console.debug("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED");break;}} +return{method:data.method};}else{switch(data.method){case'verto.event':var list=null;var key=null;if(data.params){key=data.params.eventChannel;} +if(key){list=verto.eventSUBS[key];if(!list){list=verto.eventSUBS[key.split(".")[0]];}} +if(!list&&key&&key===verto.sessid){if(verto.callbacks.onMessage){verto.callbacks.onMessage(verto,null,$.verto.enum.message.pvtEvent,data.params);}}else if(!list&&key&&verto.dialogs[key]){verto.dialogs[key].sendMessage($.verto.enum.message.pvtEvent,data.params);}else if(!list){if(!key){key="UNDEFINED";} +console.error("UNSUBBED or invalid EVENT "+key+" IGNORED");}else{for(var i in list){var sub=list[i];if(!sub||!sub.ready){console.error("invalid EVENT for "+key+" IGNORED");}else if(sub.handler){sub.handler(verto,data.params,sub.userData);}else if(verto.callbacks.onEvent){verto.callbacks.onEvent(verto,data.params,sub.userData);}else{console.log("EVENT:",data.params);}}} +break;case"verto.info":if(verto.callbacks.onMessage){verto.callbacks.onMessage(verto,null,$.verto.enum.message.info,data.params.msg);} +console.debug("MESSAGE from: "+data.params.msg.from,data.params.msg.body);break;default:console.error("INVALID METHOD OR NON-EXISTANT CALL REFERENCE IGNORED",data.method);break;}}};var del_array=function(array,name){var r=[];var len=array.length;for(var i=0;i=array.length){array.push(name);}else{var x=0;var n=[];var len=array.length;for(var i=0;i":"\n");});return str;};};$.verto.liveArray=function(verto,context,name,config){var la=this;var lastSerno=0;var binding=null;var user_obj=config.userObj;var local=false;hashArray.call(la);la._add=la.add;la._del=la.del;la._reorder=la.reorder;la._clear=la.clear;la.context=context;la.name=name;la.user_obj=user_obj;la.verto=verto;la.broadcast=function(channel,obj){verto.broadcast(channel,obj);};la.errs=0;la.clear=function(){la._clear();lastSerno=0;if(la.onChange){la.onChange(la,{action:"clear"});}};la.checkSerno=function(serno){if(serno<0){return true;} +if(lastSerno>0&&serno!=(lastSerno+1)){if(la.onErr){la.onErr(la,{lastSerno:lastSerno,serno:serno});} +la.errs++;console.debug(la.errs);if(la.errs<3){la.bootstrap(la.user_obj);} +return false;}else{lastSerno=serno;return true;}};la.reorder=function(serno,a){if(la.checkSerno(serno)){la._reorder(a);if(la.onChange){la.onChange(la,{serno:serno,action:"reorder"});}}};la.init=function(serno,val,key,index){if(key===null||key===undefined){key=serno;} +if(la.checkSerno(serno)){if(la.onChange){la.onChange(la,{serno:serno,action:"init",index:index,key:key,data:val});}}};la.bootObj=function(serno,val){if(la.checkSerno(serno)){for(var i in val){la._add(val[i][0],val[i][1]);} +if(la.onChange){la.onChange(la,{serno:serno,action:"bootObj",data:val,redraw:true});}}};la.add=function(serno,val,key,index){if(key===null||key===undefined){key=serno;} +if(la.checkSerno(serno)){var redraw=la._add(key,val,index);if(la.onChange){la.onChange(la,{serno:serno,action:"add",index:index,key:key,data:val,redraw:redraw});}}};la.modify=function(serno,val,key,index){if(key===null||key===undefined){key=serno;} +if(la.checkSerno(serno)){la._add(key,val,index);if(la.onChange){la.onChange(la,{serno:serno,action:"modify",key:key,data:val,index:index});}}};la.del=function(serno,key,index){if(key===null||key===undefined){key=serno;} +if(la.checkSerno(serno)){if(index===null||index<0||index===undefined){index=la.indexOf(key);} +var ok=la._del(key);if(ok&&la.onChange){la.onChange(la,{serno:serno,action:"del",key:key,index:index});}}};var eventHandler=function(v,e,la){var packet=e.data;if(packet.name!=la.name){return;} +switch(packet.action){case"init":la.init(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex);break;case"bootObj":la.bootObj(packet.wireSerno,packet.data);break;case"add":la.add(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex);break;case"modify":if(!(packet.arrIndex||packet.hashKey)){console.error("Invalid Packet",packet);}else{la.modify(packet.wireSerno,packet.data,packet.hashKey,packet.arrIndex);} +break;case"del":if(!(packet.arrIndex||packet.hashKey)){console.error("Invalid Packet",packet);}else{la.del(packet.wireSerno,packet.hashKey,packet.arrIndex);} +break;case"clear":la.clear();break;case"reorder":la.reorder(packet.wireSerno,packet.order);break;default:if(la.checkSerno(packet.wireSerno)){if(la.onChange){la.onChange(la,{serno:packet.wireSerno,action:packet.action,data:packet.data});}} +break;}};if(la.context){binding=la.verto.subscribe(la.context,{handler:eventHandler,userData:la,subParams:config.subParams});} +la.destroy=function(){la._clear();la.verto.unsubscribe(binding);};la.sendCommand=function(cmd,obj){var self=la;self.broadcast(self.context,{liveArray:{command:cmd,context:self.context,name:self.name,obj:obj}});};la.bootstrap=function(obj){var self=la;la.sendCommand("bootstrap",obj);};la.changepage=function(obj){var self=la;self.clear();self.broadcast(self.context,{liveArray:{command:"changepage",context:la.context,name:la.name,obj:obj}});};la.heartbeat=function(obj){var self=la;var callback=function(){self.heartbeat.call(self,obj);};self.broadcast(self.context,{liveArray:{command:"heartbeat",context:self.context,name:self.name,obj:obj}});self.hb_pid=setTimeout(callback,30000);};la.bootstrap(la.user_obj);};$.verto.liveTable=function(verto,context,name,jq,config){var dt;var la=new $.verto.liveArray(verto,context,name,{subParams:config.subParams});var lt=this;lt.liveArray=la;lt.dataTable=dt;lt.verto=verto;lt.destroy=function(){if(dt){dt.fnDestroy();} +if(la){la.destroy();} +dt=null;la=null;};la.onErr=function(obj,args){console.error("Error: ",obj,args);};la.onChange=function(obj,args){var index=0;var iserr=0;if(!dt){if(!config.aoColumns){if(args.action!="init"){return;} +config.aoColumns=[];for(var i in args.data){config.aoColumns.push({"sTitle":args.data[i]});}} +dt=jq.dataTable(config);} +if(dt&&(args.action=="del"||args.action=="modify")){index=args.index;if(index===undefined&&args.key){index=la.indexOf(args.key);} +if(index===undefined){console.error("INVALID PACKET Missing INDEX\n",args);return;}} +if(config.onChange){config.onChange(obj,args);} +try{switch(args.action){case"bootObj":if(!args.data){console.error("missing data");return;} +dt.fnClearTable();dt.fnAddData(obj.asArray());dt.fnAdjustColumnSizing();break;case"add":if(!args.data){console.error("missing data");return;} +if(args.redraw>-1){dt.fnClearTable();dt.fnAddData(obj.asArray());}else{dt.fnAddData(args.data);} +dt.fnAdjustColumnSizing();break;case"modify":if(!args.data){return;} +dt.fnUpdate(args.data,index);dt.fnAdjustColumnSizing();break;case"del":dt.fnDeleteRow(index);dt.fnAdjustColumnSizing();break;case"clear":dt.fnClearTable();break;case"reorder":dt.fnClearTable();dt.fnAddData(obj.asArray());break;case"hide":jq.hide();break;case"show":jq.show();break;}}catch(err){console.error("ERROR: "+err);iserr++;} +if(iserr){obj.errs++;if(obj.errs<3){obj.bootstrap(obj.user_obj);}}else{obj.errs=0;}};la.onChange(la,{action:"init"});};var CONFMAN_SERNO=1;$.verto.confMan=function(verto,params){var confMan=this;conf +confMan.params=$.extend({tableID:null,statusID:null,mainModID:null,dialog:null,hasVid:false,laData:null,onBroadcast:null,onLaChange:null,onLaRow:null},params);confMan.verto=verto;confMan.serno=CONFMAN_SERNO++;function genMainMod(jq){var play_id="play_"+confMan.serno;var stop_id="stop_"+confMan.serno;var recording_id="recording_"+confMan.serno;var rec_stop_id="recording_stop"+confMan.serno;var div_id="confman_"+confMan.serno;var html="

"+""+""+""+"" ++"

";jq.html(html);$("#"+play_id).click(function(){var file=prompt("Please enter file name","");confMan.modCommand("play",null,file);});$("#"+stop_id).click(function(){confMan.modCommand("stop",null,"all");});$("#"+recording_id).click(function(){var file=prompt("Please enter file name","");confMan.modCommand("recording",null,["start",file]);});$("#"+rec_stop_id).click(function(){confMan.modCommand("recording",null,["stop","all"]);});} +function genControls(jq,rowid){var x=parseInt(rowid);var kick_id="kick_"+x;var tmute_id="tmute_"+x;var box_id="box_"+x;var volup_id="volume_in_up"+x;var voldn_id="volume_in_dn"+x;var transfer_id="transfer"+x;var html="
"+""+""+""+""+""+"
";jq.html(html);if(!jq.data("mouse")){$("#"+box_id).hide();} +jq.mouseover(function(e){jq.data({"mouse":true});$("#"+box_id).show();});jq.mouseout(function(e){jq.data({"mouse":false});$("#"+box_id).hide();});$("#"+transfer_id).click(function(){var xten=prompt("Enter Extension");confMan.modCommand("transfer",x,xten);});$("#"+kick_id).click(function(){confMan.modCommand("kick",x);});$("#"+tmute_id).click(function(){confMan.modCommand("tmute",x);});$("#"+volup_id).click(function(){confMan.modCommand("volume_in",x,"up");});$("#"+voldn_id).click(function(){confMan.modCommand("volume_in",x,"down");});return html;} +var atitle="";var awidth=0;if(confMan.params.laData.role==="moderator"){atitle="Action";awidth=200;if(confMan.params.mainModID){genMainMod($(confMan.params.mainModID));$(confMan.params.displayID).html("Moderator Controls Ready

")}else{$(confMan.params.mainModID).html("");} +verto.subscribe(confMan.params.laData.modChannel,{handler:function(v,e){console.error("MODDATA:",e.data);if(confMan.params.onBroadcast){confMan.params.onBroadcast(verto,confMan,e.data);} +if(!confMan.destroyed&&confMan.params.displayID){$(confMan.params.displayID).html(e.data.response+"

");if(confMan.lastTimeout){clearTimeout(confMan.lastTimeout);confMan.lastTimeout=0;} +confMan.lastTimeout=setTimeout(function(){$(confMan.params.displayID).html(confMan.destroyed?"":"Moderator Controls Ready

")},4000);}}});} +var row_callback=null;if(confMan.params.laData.role==="moderator"){row_callback=function(nRow,aData,iDisplayIndex,iDisplayIndexFull){if(!aData[5]){var $row=$('td:eq(5)',nRow);genControls($row,aData);if(confMan.params.onLaRow){confMan.params.onLaRow(verto,confMan,$row,aData);}}};} +confMan.lt=new $.verto.liveTable(verto,confMan.params.laData.laChannel,confMan.params.laData.laName,$(confMan.params.tableID),{subParams:{callID:confMan.params.dialog?confMan.params.dialog.callID:null},"onChange":function(obj,args){$(confMan.params.statusID).text("Conference Members: "+" ("+obj.arrayLen()+" Total)");if(confMan.params.onLaChange){confMan.params.onLaChange(verto,confMan,$.verto.enum.confEvent.laChange,obj,args);}},"aaData":[],"aoColumns":[{"sTitle":"ID"},{"sTitle":"Number"},{"sTitle":"Name"},{"sTitle":"Codec"},{"sTitle":"Status","sWidth":confMan.params.hasVid?"300px":"150px"},{"sTitle":atitle,"sWidth":awidth,}],"bAutoWidth":true,"bDestroy":true,"bSort":false,"bInfo":false,"bFilter":false,"bLengthChange":false,"bPaginate":false,"iDisplayLength":1000,"oLanguage":{"sEmptyTable":"The Conference is Empty....."},"fnRowCallback":row_callback});} +$.verto.confMan.prototype.modCommand=function(cmd,id,value){var confMan=this;confMan.verto.sendMethod("verto.broadcast",{"eventChannel":confMan.params.laData.modChannel,"data":{"application":"conf-control","command":cmd,"id":id,"value":value}});} +$.verto.confMan.prototype.destroy=function(){var confMan=this;confMan.destroyed=true;if(confMan.lt){confMan.lt.destroy();} +if(confMan.params.laData.modChannel){confMan.verto.unsubscribe(confMan.params.laData.modChannel);} +if(confMan.params.mainModID){$(confMan.params.mainModID).html("");}} +$.verto.dialog=function(direction,verto,params){var dialog=this;dialog.params=$.extend({useVideo:verto.options.useVideo,useStereo:verto.options.useStereo,tag:verto.options.tag,login:verto.options.login},params);dialog.verto=verto;dialog.direction=direction;dialog.lastState=null;dialog.state=dialog.lastState=$.verto.enum.state.new;dialog.callbacks=verto.callbacks;dialog.answered=false;dialog.attach=params.attach||false;if(dialog.params.callID){dialog.callID=dialog.params.callID;}else{dialog.callID=dialog.params.callID=generateGUID();} +if(dialog.params.tag){dialog.audioStream=document.getElementById(dialog.params.tag);if(dialog.params.useVideo){dialog.videoStream=dialog.audioStream;}} +dialog.verto.dialogs[dialog.callID]=dialog;var RTCcallbacks={};if(dialog.direction==$.verto.enum.direction.inbound){dialog.params.remote_caller_id_name=dialog.params.caller_id_name;dialog.params.remote_caller_id_number=dialog.params.caller_id_number;if(!dialog.params.remote_caller_id_name){dialog.params.remote_caller_id_name="Nobody";} +if(!dialog.params.remote_caller_id_number){dialog.params.remote_caller_id_number="UNKNOWN";} +RTCcallbacks.onMessage=function(rtc,msg){console.debug(msg);};RTCcallbacks.onAnswerSDP=function(rtc,sdp){console.error("answer sdp",sdp);};}else{dialog.params.remote_caller_id_name="Outbound Call";dialog.params.remote_caller_id_number=dialog.params.destination_number;} +RTCcallbacks.onICESDP=function(rtc){if(rtc.type=="offer"){console.log("offer",rtc.mediaData.SDP);dialog.setState($.verto.enum.state.requesting);dialog.sendMethod("verto.invite",{sdp:rtc.mediaData.SDP});}else{dialog.setState($.verto.enum.state.answering);dialog.sendMethod(dialog.attach?"verto.attach":"verto.answer",{sdp:dialog.rtc.mediaData.SDP});}};RTCcallbacks.onICE=function(rtc){if(rtc.type=="offer"){console.log("offer",rtc.mediaData.candidate);return;}};RTCcallbacks.onError=function(e){console.error("ERROR:",e);dialog.hangup();};dialog.rtc=new $.FSRTC({callbacks:RTCcallbacks,useVideo:dialog.videoStream,useAudio:dialog.audioStream,useStereo:dialog.params.useStereo,videoParams:verto.options.videoParams,iceServers:verto.options.iceServers});dialog.rtc.verto=dialog.verto;if(dialog.direction==$.verto.enum.direction.inbound){if(dialog.attach){dialog.answer();}else{dialog.ring();}}};$.verto.dialog.prototype.invite=function(){var dialog=this;dialog.rtc.call();};$.verto.dialog.prototype.sendMethod=function(method,obj){var dialog=this;obj.dialogParams={};for(var i in dialog.params){if(i=="sdp"&&method!="verto.invite"&&method!="verto.attach"){continue;} +obj.dialogParams[i]=dialog.params[i];} +dialog.verto.rpcClient.call(method,obj,function(e){dialog.processReply(method,true,e);},function(e){dialog.processReply(method,false,e);});};function checkStateChange(oldS,newS){if(newS==$.verto.enum.state.purge||$.verto.enum.states[oldS.name][newS.name]){return true;} +return false;} +$.verto.dialog.prototype.setState=function(state){var dialog=this;if(dialog.state==$.verto.enum.state.ringing){dialog.stopRinging();} +if(dialog.state==state||!checkStateChange(dialog.state,state)){console.error("Dialog "+dialog.callID+": INVALID state change from "+dialog.state.name+" to "+state.name);dialog.hangup();return false;} +console.info("Dialog "+dialog.callID+": state change from "+dialog.state.name+" to "+state.name);dialog.lastState=dialog.state;dialog.state=state;if(!dialog.causeCode){dialog.causeCode=16;} +if(!dialog.cause){dialog.cause="NORMAL CLEARING";} +if(dialog.callbacks.onDialogState){dialog.callbacks.onDialogState(this);} +switch(dialog.state){case $.verto.enum.state.trying:setTimeout(function(){if(dialog.state==$.verto.enum.state.trying){dialog.setState($.verto.enum.state.hangup);}},30000);break;case $.verto.enum.state.purge:dialog.setState($.verto.enum.state.destroy);break;case $.verto.enum.state.hangup:if(dialog.lastState.val>$.verto.enum.state.requesting.val&&dialog.lastState.val<$.verto.enum.state.hangup.val){dialog.sendMethod("verto.bye",{});} +dialog.setState($.verto.enum.state.destroy);break;case $.verto.enum.state.destroy:delete dialog.verto.dialogs[dialog.callID];dialog.rtc.stop();break;} +return true;};$.verto.dialog.prototype.processReply=function(method,success,e){var dialog=this;switch(method){case"verto.answer":case"verto.attach":if(success){dialog.setState($.verto.enum.state.active);}else{dialog.hangup();} +break;case"verto.invite":if(success){dialog.setState($.verto.enum.state.trying);}else{dialog.setState($.verto.enum.state.destroy);} +break;case"verto.bye":dialog.hangup();break;case"verto.modify":if(e.holdState){if(e.holdState=="held"){if(dialog.state!=$.verto.enum.state.held){dialog.setState($.verto.enum.state.held);}}else if(e.holdState=="active"){if(dialog.state!=$.verto.enum.state.active){dialog.setState($.verto.enum.state.active);}}} +if(success){} +break;default:break;}};$.verto.dialog.prototype.hangup=function(params){var dialog=this;if(params){if(params.causeCode){dialog.causeCode=params.causeCode;} +if(params.cause){dialog.cause=params.cause;}} +if(dialog.state.val>$.verto.enum.state.new.val&&dialog.state.val<$.verto.enum.state.hangup.val){dialog.setState($.verto.enum.state.hangup);}else if(dialog.state.val<$.verto.enum.state.destroy){dialog.setState($.verto.enum.state.destroy);}};$.verto.dialog.prototype.stopRinging=function(){var dialog=this;if(dialog.verto.ringer){dialog.verto.ringer.stop();}};$.verto.dialog.prototype.indicateRing=function(){var dialog=this;if(dialog.verto.ringer){dialog.verto.ringer.attr("src",dialog.verto.options.ringFile)[0].play();setTimeout(function(){dialog.stopRinging();if(dialog.state==$.verto.enum.state.ringing){dialog.indicateRing();}},dialog.verto.options.ringSleep);}};$.verto.dialog.prototype.ring=function(){var dialog=this;dialog.setState($.verto.enum.state.ringing);dialog.indicateRing();};$.verto.dialog.prototype.useVideo=function(on){var dialog=this;dialog.params.useVideo=on;if(on){dialog.videoStream=dialog.audioStream;}else{dialog.videoStream=null;} +dialog.rtc.useVideo(dialog.videoStream);};$.verto.dialog.prototype.useStereo=function(on){var dialog=this;dialog.params.useStereo=on;dialog.rtc.useStereo(on);};$.verto.dialog.prototype.dtmf=function(digits){var dialog=this;if(digits){dialog.sendMethod("verto.info",{dtmf:digits});}};$.verto.dialog.prototype.transfer=function(dest,params){var dialog=this;if(dest){cur_call.sendMethod("verto.modify",{action:"transfer",destination:dest,params:params});}};$.verto.dialog.prototype.hold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"hold",params:params});};$.verto.dialog.prototype.unhold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"unhold",params:params});};$.verto.dialog.prototype.toggleHold=function(params){var dialog=this;cur_call.sendMethod("verto.modify",{action:"toggleHold",params:params});};$.verto.dialog.prototype.message=function(msg){var dialog=this;var err=0;msg.from=dialog.params.login;if(!msg.to){console.error("Missing To");err++;} +if(!msg.body){console.error("Missing Body");err++;} +if(err){return false;} +dialog.sendMethod("verto.info",{msg:msg});return true;};$.verto.dialog.prototype.answer=function(params){var dialog=this;if(!dialog.answered){if(params){if(params.useVideo){dialog.useVideo(true);} +dialog.params.callee_id_name=params.callee_id_name;dialog.params.callee_id_number=params.callee_id_number;} +dialog.rtc.createAnswer(dialog.params.sdp);dialog.answered=true;}};$.verto.dialog.prototype.handleAnswer=function(params){var dialog=this;dialog.gotAnswer=true;if(dialog.state.val>=$.verto.enum.state.active.val){return;} +if(dialog.state.val>=$.verto.enum.state.early.val){dialog.setState($.verto.enum.state.active);}else{if(dialog.gotEarly){console.log("Dialog "+dialog.callID+"Got answer while still establishing early media, delaying...");}else{console.log("Dialog "+dialog.callID+"Answering Channel");dialog.rtc.answer(params.sdp,function(){dialog.setState($.verto.enum.state.active);},function(e){console.error(e);dialog.hangup();});console.log("Dialog "+dialog.callID+"ANSWER SDP",params.sdp);}}};$.verto.dialog.prototype.cidString=function(enc){var dialog=this;var party=dialog.params.remote_caller_id_name+(enc?" <":" <")+dialog.params.remote_caller_id_number+(enc?">":">");return party;};$.verto.dialog.prototype.sendMessage=function(msg,params){var dialog=this;if(dialog.callbacks.onMessage){dialog.callbacks.onMessage(dialog.verto,dialog,msg,params);}};$.verto.dialog.prototype.handleInfo=function(params){var dialog=this;dialog.sendMessage($.verto.enum.message.info,params.msg);};$.verto.dialog.prototype.handleDisplay=function(params){var dialog=this;if(params.display_name){dialog.params.remote_caller_id_name=params.display_name;} +if(params.display_number){dialog.params.remote_caller_id_number=params.display_number;} +dialog.sendMessage($.verto.enum.message.display,{});};$.verto.dialog.prototype.handleMedia=function(params){var dialog=this;if(dialog.state.val>=$.verto.enum.state.early.val){return;} +dialog.gotEarly=true;dialog.rtc.answer(params.sdp,function(){console.log("Dialog "+dialog.callID+"Establishing early media");dialog.setState($.verto.enum.state.early);if(dialog.gotAnswer){console.log("Dialog "+dialog.callID+"Answering Channel");dialog.setState($.verto.enum.state.active);}},function(e){console.error(e);dialog.hangup();});console.log("Dialog "+dialog.callID+"EARLY SDP",params.sdp);};$.verto.ENUM=function(s){var i=0,o={};s.split(" ").map(function(x){o[x]={name:x,val:i++};});return Object.freeze(o);};$.verto.enum={};$.verto.enum.states=Object.freeze({new:{requesting:1,recovering:1,ringing:1,destroy:1,answering:1},requesting:{trying:1,hangup:1},recovering:{answering:1,hangup:1},trying:{active:1,early:1,hangup:1},ringing:{answering:1,hangup:1},answering:{active:1,hangup:1},active:{hangup:1,held:1},held:{hangup:1,active:1},early:{hangup:1,active:1},hangup:{destroy:1},destroy:{},purge:{destroy:1}});$.verto.enum.state=$.verto.ENUM("new requesting trying recovering ringing answering early active held hangup destroy purge");$.verto.enum.direction=$.verto.ENUM("inbound outbound");$.verto.enum.message=$.verto.ENUM("display info pvtEvent");$.verto.enum=Object.freeze($.verto.enum);$.verto.saved=[];$(window).bind('beforeunload',function(){for(var i in $.verto.saved){var verto=$.verto.saved[i];if(verto){verto.logout();verto.purge();}} +return $.verto.warnOnUnload;});})(jQuery); \ No newline at end of file diff --git a/html5/verto/js/src/jquery.verto.js b/html5/verto/js/src/jquery.verto.js index 72b2c7dc7e..4530703257 100644 --- a/html5/verto/js/src/jquery.verto.js +++ b/html5/verto/js/src/jquery.verto.js @@ -1597,7 +1597,7 @@ dialog.setState($.verto.enum.state.destroy); break; case $.verto.enum.state.destroy: - delete verto.dialogs[dialog.callID]; + delete dialog.verto.dialogs[dialog.callID]; dialog.rtc.stop(); break; } From 1772be207143a5d92e67b05c8575952f7c8ddcf7 Mon Sep 17 00:00:00 2001 From: stangor Date: Thu, 14 Aug 2014 17:28:14 -0700 Subject: [PATCH 11/47] FS-5497 add sofia gateway parameter destination-prefix in case you need to send Invites with prefix only to this gateway --- src/mod/endpoints/mod_sofia/mod_sofia.c | 4 ++-- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia.c | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 0dca2d700f..33f4e0f855 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -4319,9 +4319,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session } if (!strchr(dest, '@')) { - tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s@%s", dest, sofia_glue_strip_proto(gateway_ptr->register_proxy)); + tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s@%s", gateway_ptr->destination_prefix, dest, sofia_glue_strip_proto(gateway_ptr->register_proxy)); } else { - tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s", dest); + tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s", gateway_ptr->destination_prefix, dest); } if ((host = switch_core_session_strdup(nsession, tech_pvt->dest))) { diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index da9c2c4122..577ff07bbc 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -478,6 +478,7 @@ struct sofia_gateway { char *register_context; char *expires_str; char *register_url; + char *destination_prefix; char *from_domain; sofia_transport_t register_transport; uint32_t freq; diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index befca00ab1..79339e9781 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -3315,6 +3315,7 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag) gateway->ob_calls = 0; gateway->ib_failed_calls = 0; gateway->ob_failed_calls = 0; + gateway->destination_prefix = ""; if ((x_params = switch_xml_child(gateway_tag, "variables"))) { param = switch_xml_child(x_params, "variable"); @@ -3416,6 +3417,10 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag) outbound_proxy = val; } else if (!strcmp(var, "distinct-to")) { distinct_to = switch_true(val); + } else if (!strcmp(var, "destination-prefix")) { + if (!zstr(val)) { + gateway->destination_prefix = switch_core_strdup(gateway->pool, val); + } } else if (!strcmp(var, "rfc-5626")) { rfc_5626 = switch_true(val); } else if (!strcmp(var, "reg-id")) { From 24413bfa11f1143f5772fa4c95d892b45378ee46 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Aug 2014 00:37:43 +0500 Subject: [PATCH 12/47] copy changes from verto ws.c to sofia --- libs/sofia-sip/libsofia-sip-ua/tport/ws.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c index 8a0d3addcc..2153855b08 100644 --- a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c +++ b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c @@ -1,11 +1,6 @@ #include "ws.h" #include -#ifdef _MSC_VER -/* warning C4706: assignment within conditional expression*/ -#pragma warning(disable: 4706) -#endif - #ifndef _MSC_VER #include #endif @@ -97,10 +92,18 @@ void init_ssl(void) { OpenSSL_add_all_algorithms(); /* load & register cryptos */ SSL_load_error_strings(); /* load all error messages */ - ws_globals.ssl_method = TLSv1_server_method(); /* create server instance */ + ws_globals.ssl_method = SSLv23_server_method(); /* create server instance */ ws_globals.ssl_ctx = SSL_CTX_new(ws_globals.ssl_method); /* create context */ assert(ws_globals.ssl_ctx); - + + /* Disable SSLv2 */ + SSL_CTX_set_options(globals.ssl_ctx, SSL_OP_NO_SSLv2); + /* Disable SSLv3 */ + SSL_CTX_set_options(globals.ssl_ctx, SSL_OP_NO_SSLv3); + /* Disable TLSv1 */ + SSL_CTX_set_options(globals.ssl_ctx, SSL_OP_NO_TLSv1); + /* Disable Compression CRIME (Compression Ratio Info-leak Made Easy) */ + SSL_CTX_set_options(globals.ssl_ctx, SSL_OP_NO_COMPRESSION); /* set the local certificate from CertFile */ SSL_CTX_use_certificate_file(ws_globals.ssl_ctx, ws_globals.cert, SSL_FILETYPE_PEM); /* set the private key from KeyFile */ From 0ee48c22101e5713e2d14ecb175f5d938a003fd9 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Aug 2014 00:43:20 +0500 Subject: [PATCH 13/47] FS-6738 #comment can you test this patch and see if the tcp keepalive can detect the timeout --- src/mod/endpoints/mod_verto/mod_verto.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 73219240b6..98d1f8de59 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -3235,6 +3235,18 @@ static int start_jsock(verto_profile_t *profile, int sock) /* no nagle please */ setsockopt(jsock->client_socket, IPPROTO_TCP, TCP_NODELAY, (char *)&flag, sizeof(flag)); + +#if defined(SO_KEEPALIVE) + setsockopt(jsock->client_socket, SOL_SOCKET, SO_KEEPALIVE, (void *)&flag, sizeof(flag)); +#endif + flag = 30; +#if defined(TCP_KEEPIDLE) + setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPIDLE, (void *)&flag, sizeof(flag)); +#endif +#if defined(TCP_KEEPINTVL) + setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPINTVL, (void *)&flag, sizeof(flag)); +#endif + td = switch_core_alloc(jsock->pool, sizeof(*td)); td->alloc = 0; From cbe0bc05d0d8eac9d9b8deceb7e8661c23c037c8 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Aug 2014 01:34:30 +0500 Subject: [PATCH 14/47] force sofia rebuild --- libs/sofia-sip/.update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/sofia-sip/.update b/libs/sofia-sip/.update index d148929f9e..66c9d49924 100644 --- a/libs/sofia-sip/.update +++ b/libs/sofia-sip/.update @@ -1 +1 @@ -Mon Aug 11 21:02:23 CDT 2014 +Sat Aug 16 01:34:24 CDT 2014 From cb928cdf37390c07c68289a1ec72ebb828d07192 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Aug 2014 01:52:03 +0500 Subject: [PATCH 15/47] fix typo --- src/switch_core_media.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 505f024c3e..8e095744b0 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -5091,11 +5091,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi } if ((val = switch_channel_get_variable(session->channel, "rtp_manual_rtp_bugs"))) { - switch_core_media_parse_rtp_bugs(&a_engine->rtp_bugs, val); + switch_core_media_parse_rtp_bugs(&a_engine->manual_rtp_bugs, val); } if (switch_channel_test_flag(session->channel, CF_WEBRTC)) { - smh->mparams->manual_rtp_bugs = RTP_BUG_SEND_LINEAR_TIMESTAMPS; + smh->mparams->manual_rtp_bugs |= RTP_BUG_SEND_LINEAR_TIMESTAMPS; } switch_rtp_intentional_bugs(a_engine->rtp_session, a_engine->rtp_bugs | smh->mparams->manual_rtp_bugs); From 5173471b06d88063ec7e2622c92c9674840ae4b1 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Sat, 16 Aug 2014 02:00:38 +0500 Subject: [PATCH 16/47] nm --- src/switch_core_media.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch_core_media.c b/src/switch_core_media.c index 8e095744b0..505f024c3e 100644 --- a/src/switch_core_media.c +++ b/src/switch_core_media.c @@ -5091,11 +5091,11 @@ SWITCH_DECLARE(switch_status_t) switch_core_media_activate_rtp(switch_core_sessi } if ((val = switch_channel_get_variable(session->channel, "rtp_manual_rtp_bugs"))) { - switch_core_media_parse_rtp_bugs(&a_engine->manual_rtp_bugs, val); + switch_core_media_parse_rtp_bugs(&a_engine->rtp_bugs, val); } if (switch_channel_test_flag(session->channel, CF_WEBRTC)) { - smh->mparams->manual_rtp_bugs |= RTP_BUG_SEND_LINEAR_TIMESTAMPS; + smh->mparams->manual_rtp_bugs = RTP_BUG_SEND_LINEAR_TIMESTAMPS; } switch_rtp_intentional_bugs(a_engine->rtp_session, a_engine->rtp_bugs | smh->mparams->manual_rtp_bugs); From ecbf662ce7a5f14779780a5d36833b93c71a0b28 Mon Sep 17 00:00:00 2001 From: Seven Du Date: Sat, 16 Aug 2014 10:08:39 +0800 Subject: [PATCH 17/47] FS-6738 #comment fix mac build introduced by 0ee48c2 --- src/mod/endpoints/mod_verto/mod_verto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 98d1f8de59..0850cce948 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -3241,10 +3241,10 @@ static int start_jsock(verto_profile_t *profile, int sock) #endif flag = 30; #if defined(TCP_KEEPIDLE) - setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPIDLE, (void *)&flag, sizeof(flag)); + setsockopt(jsock->client_socket, IPPROTO_TCP, TCP_KEEPIDLE, (void *)&flag, sizeof(flag)); #endif #if defined(TCP_KEEPINTVL) - setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPINTVL, (void *)&flag, sizeof(flag)); + setsockopt(jsock->client_socket, IPPROTO_TCP, TCP_KEEPINTVL, (void *)&flag, sizeof(flag)); #endif td = switch_core_alloc(jsock->pool, sizeof(*td)); From 571cf932dcaa9db96125f2f5a7dcba83d0825bba Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Sat, 16 Aug 2014 18:22:41 -0500 Subject: [PATCH 18/47] fix VS2010 build warning --- libs/sofia-sip/libsofia-sip-ua/tport/ws.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c index 2153855b08..b96c6c140a 100644 --- a/libs/sofia-sip/libsofia-sip-ua/tport/ws.c +++ b/libs/sofia-sip/libsofia-sip-ua/tport/ws.c @@ -1,6 +1,11 @@ #include "ws.h" #include +#ifdef _MSC_VER +/* warning C4706: assignment within conditional expression*/ +#pragma warning(disable: 4706) +#endif + #ifndef _MSC_VER #include #endif From ad3715d4be28012aea0d75ab67cff8623aededbc Mon Sep 17 00:00:00 2001 From: Jeff Lenk Date: Sun, 17 Aug 2014 13:28:06 -0600 Subject: [PATCH 19/47] FS-6696 VS2010 Express fixes for pa and v8 --- Freeswitch.2010.express.sln | 1200 ++++++++++++++++++++++++++++++++++- 1 file changed, 1166 insertions(+), 34 deletions(-) diff --git a/Freeswitch.2010.express.sln b/Freeswitch.2010.express.sln index 8837d349f7..8b469e9759 100644 --- a/Freeswitch.2010.express.sln +++ b/Freeswitch.2010.express.sln @@ -89,8 +89,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_curl", "src\mod\xml EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_en", "src\mod\say\mod_say_en\mod_say_en.2010.vcxproj", "{988CACF7-3FCB-4992-BE69-77872AE67DC8}" EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\portaudio\build\msvc\portaudio.2010.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}" -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_xml_cdr", "src\mod\xml_int\mod_xml_cdr\mod_xml_cdr.2010.vcxproj", "{08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_amr", "src\mod\codecs\mod_amr\mod_amr.2010.vcxproj", "{8DEB383C-4091-4F42-A56F-C9E46D552D79}" @@ -345,14 +343,28 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libspeexdsp", "libs\win32\s EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download LDNS", "libs\win32\Download LDNS.2010.vcxproj", "{5BE9A596-F11F-4379-928C-412F81AE182B}" EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download PORTAUDIO", "libs\win32\Download PORTAUDIO.2010.vcxproj", "{C0779BCC-C037-4F58-B890-EF37BA956B3C}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "portaudio", "libs\win32\portaudio\portaudio.2010.vcxproj", "{0A18A071-125E-442F-AFF7-A3F68ABECF99}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Download V8", "libs\win32\Download V8.2010.vcxproj", "{13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libv8", "libs\win32\v8\libv8.2010.vcxproj", "{AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_v8", "src\mod\languages\mod_v8\mod_v8.2010.vcxproj", "{9B9D2551-D6BD-4F20-8BE5-DE30E154A064}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution All|Win32 = All|Win32 All|x64 = All|x64 + Debug DirectSound|Win32 = Debug DirectSound|Win32 + Debug DirectSound|x64 = Debug DirectSound|x64 Debug_RTL_dll|Win32 = Debug_RTL_dll|Win32 Debug_RTL_dll|x64 = Debug_RTL_dll|x64 Debug|Win32 = Debug|Win32 Debug|x64 = Debug|x64 + Release DirectSound|Win32 = Release DirectSound|Win32 + Release DirectSound|x64 = Release DirectSound|x64 Release_Dynamic_SSE|Win32 = Release_Dynamic_SSE|Win32 Release_Dynamic_SSE|x64 = Release_Dynamic_SSE|x64 Release_Dynamic|Win32 = Release_Dynamic|Win32 @@ -372,6 +384,9 @@ Global {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|Win32.ActiveCfg = Release|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.ActiveCfg = Release|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.All|x64.Build.0 = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug DirectSound|x64.Build.0 = Debug|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -379,6 +394,9 @@ Global {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|Win32.Build.0 = Debug|Win32 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.ActiveCfg = Debug|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Debug|x64.Build.0 = Debug|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release DirectSound|x64.Build.0 = Release|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1AF3A893-F7BE-43DD-B697-8AB2397C0D67}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -404,6 +422,9 @@ Global {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|Win32.ActiveCfg = Release|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.ActiveCfg = Release|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.All|x64.Build.0 = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug DirectSound|x64.Build.0 = Debug|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -411,6 +432,9 @@ Global {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|Win32.Build.0 = Debug|Win32 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.ActiveCfg = Debug|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Debug|x64.Build.0 = Debug|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release DirectSound|x64.ActiveCfg = Release|x64 + {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release DirectSound|x64.Build.0 = Release|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {202D7A4E-760D-4D0E-AFA1-D7459CED30FF}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -436,6 +460,9 @@ Global {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|Win32.ActiveCfg = Release Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.ActiveCfg = Release Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.All|x64.Build.0 = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug DirectSound|Win32.ActiveCfg = Debug Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug DirectSound|x64.ActiveCfg = Debug Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug DirectSound|x64.Build.0 = Debug Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug_RTL_dll|Win32.ActiveCfg = Debug Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug_RTL_dll|x64.ActiveCfg = Debug Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug_RTL_dll|x64.Build.0 = Debug Passthrough|x64 @@ -443,6 +470,9 @@ Global {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|Win32.Build.0 = Debug Passthrough|Win32 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.ActiveCfg = Debug Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Debug|x64.Build.0 = Debug Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release DirectSound|Win32.ActiveCfg = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release DirectSound|x64.ActiveCfg = Release Passthrough|x64 + {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release DirectSound|x64.Build.0 = Release Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release_Dynamic_SSE|Win32.ActiveCfg = Release Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release_Dynamic_SSE|x64.ActiveCfg = Release Passthrough|x64 {1D95CD95-0DE2-48C3-AC23-D5C7D1C9C0F0}.Release_Dynamic_SSE|x64.Build.0 = Release Passthrough|x64 @@ -468,6 +498,9 @@ Global {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|Win32.ActiveCfg = Release|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.ActiveCfg = Release|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.All|x64.Build.0 = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug DirectSound|x64.Build.0 = Debug|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -475,6 +508,9 @@ Global {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|Win32.Build.0 = Debug|Win32 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.ActiveCfg = Debug|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Debug|x64.Build.0 = Debug|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release DirectSound|x64.ActiveCfg = Release|x64 + {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release DirectSound|x64.Build.0 = Release|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {AFAC0568-7548-42D5-9F6A-8D3400A1E4F6}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -500,6 +536,9 @@ Global {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|Win32.ActiveCfg = Release|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.ActiveCfg = Release|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.All|x64.Build.0 = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug DirectSound|x64.Build.0 = Debug|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -507,6 +546,9 @@ Global {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|Win32.Build.0 = Debug|Win32 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.ActiveCfg = Debug|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Debug|x64.Build.0 = Debug|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release DirectSound|x64.ActiveCfg = Release|x64 + {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release DirectSound|x64.Build.0 = Release|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -531,11 +573,17 @@ Global {5FD31A25-5D83-4794-8BEE-904DAD84CE71}.Release|x64.Build.0 = Release|x64 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|Win32.ActiveCfg = Release|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.All|x64.ActiveCfg = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|Win32.ActiveCfg = Debug|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Debug|x64.ActiveCfg = Debug|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release DirectSound|Win32.Build.0 = Release|Win32 + {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release DirectSound|x64.ActiveCfg = Release|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {1A1FF289-4FD6-4285-A422-D31DD67A4723}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -559,6 +607,9 @@ Global {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|Win32.ActiveCfg = Release|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.ActiveCfg = Release|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.All|x64.Build.0 = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug DirectSound|x64.Build.0 = Debug|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -566,6 +617,9 @@ Global {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|Win32.Build.0 = Debug|Win32 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.ActiveCfg = Debug|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Debug|x64.Build.0 = Debug|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release DirectSound|x64.ActiveCfg = Release|x64 + {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release DirectSound|x64.Build.0 = Release|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {07113B25-D3AF-4E04-BA77-4CD1171F022C}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -591,6 +645,9 @@ Global {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|Win32.ActiveCfg = Release MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.ActiveCfg = Release MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.All|x64.Build.0 = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug DirectSound|Win32.ActiveCfg = Debug MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug DirectSound|x64.ActiveCfg = Debug MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug DirectSound|x64.Build.0 = Debug MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug_RTL_dll|Win32.ActiveCfg = Debug MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug_RTL_dll|x64.ActiveCfg = Debug MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug_RTL_dll|x64.Build.0 = Debug MS-LDAP|x64 @@ -598,6 +655,9 @@ Global {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|Win32.Build.0 = Debug MS-LDAP|Win32 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.ActiveCfg = Debug MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Debug|x64.Build.0 = Debug MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release DirectSound|Win32.ActiveCfg = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release DirectSound|x64.ActiveCfg = Release MS-LDAP|x64 + {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release DirectSound|x64.Build.0 = Release MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release_Dynamic_SSE|Win32.ActiveCfg = Release MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release_Dynamic_SSE|x64.ActiveCfg = Release MS-LDAP|x64 {EC3E5C7F-EE09-47E2-80FE-546363D14A98}.Release_Dynamic_SSE|x64.Build.0 = Release MS-LDAP|x64 @@ -623,6 +683,9 @@ Global {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|Win32.ActiveCfg = Release|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.ActiveCfg = Release|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.All|x64.Build.0 = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug DirectSound|x64.Build.0 = Debug|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -630,6 +693,9 @@ Global {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|Win32.Build.0 = Debug|Win32 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.ActiveCfg = Debug|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Debug|x64.Build.0 = Debug|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release DirectSound|x64.ActiveCfg = Release|x64 + {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release DirectSound|x64.Build.0 = Release|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {A27CCA23-1541-4337-81A4-F0A6413078A0}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -655,6 +721,9 @@ Global {784113EF-44D9-4949-835D-7065D3C7AD08}.All|Win32.ActiveCfg = Release|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.ActiveCfg = Release|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.All|x64.Build.0 = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug DirectSound|x64.Build.0 = Debug|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -662,6 +731,9 @@ Global {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|Win32.Build.0 = Debug|Win32 {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.ActiveCfg = Debug|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Debug|x64.Build.0 = Debug|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release DirectSound|x64.ActiveCfg = Release|x64 + {784113EF-44D9-4949-835D-7065D3C7AD08}.Release DirectSound|x64.Build.0 = Release|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {784113EF-44D9-4949-835D-7065D3C7AD08}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -687,6 +759,9 @@ Global {89385C74-5860-4174-9CAF-A39E7C48909C}.All|Win32.ActiveCfg = Release|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.ActiveCfg = Release|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.All|x64.Build.0 = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug DirectSound|x64.Build.0 = Debug|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -694,6 +769,9 @@ Global {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|Win32.Build.0 = Debug|Win32 {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.ActiveCfg = Debug|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Debug|x64.Build.0 = Debug|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release DirectSound|x64.ActiveCfg = Release|x64 + {89385C74-5860-4174-9CAF-A39E7C48909C}.Release DirectSound|x64.Build.0 = Release|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {89385C74-5860-4174-9CAF-A39E7C48909C}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -719,11 +797,17 @@ Global {692F6330-4D87-4C82-81DF-40DB5892636E}.All|Win32.ActiveCfg = Release|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.ActiveCfg = Release|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.All|x64.Build.0 = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug DirectSound|x64.Build.0 = Debug|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|Win32.ActiveCfg = Debug|Win32 {692F6330-4D87-4C82-81DF-40DB5892636E}.Debug|x64.ActiveCfg = Debug|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {692F6330-4D87-4C82-81DF-40DB5892636E}.Release DirectSound|x64.Build.0 = Release|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {692F6330-4D87-4C82-81DF-40DB5892636E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -747,6 +831,9 @@ Global {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|Win32.ActiveCfg = Release|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.ActiveCfg = Release|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.All|x64.Build.0 = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug DirectSound|x64.Build.0 = Debug|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -754,6 +841,9 @@ Global {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|Win32.Build.0 = Debug|Win32 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.ActiveCfg = Debug|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Debug|x64.Build.0 = Debug|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release DirectSound|x64.Build.0 = Release|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D3EC0AFF-76FC-4210-A825-9A17410660A3}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -779,6 +869,9 @@ Global {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|Win32.ActiveCfg = Release|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.ActiveCfg = Release|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.All|x64.Build.0 = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug DirectSound|x64.Build.0 = Debug|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -786,6 +879,9 @@ Global {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|Win32.Build.0 = Debug|Win32 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.ActiveCfg = Debug|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Debug|x64.Build.0 = Debug|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release DirectSound|x64.ActiveCfg = Release|x64 + {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release DirectSound|x64.Build.0 = Release|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {FFAA4C52-3A53-4F99-90C1-D59D1F0427F3}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -811,6 +907,9 @@ Global {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|Win32.ActiveCfg = Release|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.ActiveCfg = Release|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.All|x64.Build.0 = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug DirectSound|x64.Build.0 = Debug|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -818,6 +917,9 @@ Global {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|Win32.Build.0 = Debug|Win32 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.ActiveCfg = Debug|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Debug|x64.Build.0 = Debug|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release DirectSound|x64.ActiveCfg = Release|x64 + {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release DirectSound|x64.Build.0 = Release|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {30A5B29C-983E-4580-9FD0-D647CCDCC7EB}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -843,6 +945,9 @@ Global {1C453396-D912-4213-89FD-9B489162B7B5}.All|Win32.ActiveCfg = Release|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.ActiveCfg = Release|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.All|x64.Build.0 = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Debug DirectSound|x64.Build.0 = Debug|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -850,6 +955,9 @@ Global {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|Win32.Build.0 = Debug|Win32 {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.ActiveCfg = Debug|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Debug|x64.Build.0 = Debug|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1C453396-D912-4213-89FD-9B489162B7B5}.Release DirectSound|x64.Build.0 = Release|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1C453396-D912-4213-89FD-9B489162B7B5}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -875,6 +983,9 @@ Global {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|Win32.ActiveCfg = Release|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.ActiveCfg = Release|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.All|x64.Build.0 = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug DirectSound|x64.Build.0 = Debug|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -882,6 +993,9 @@ Global {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|Win32.Build.0 = Debug|Win32 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.ActiveCfg = Debug|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Debug|x64.Build.0 = Debug|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release DirectSound|x64.ActiveCfg = Release|x64 + {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release DirectSound|x64.Build.0 = Release|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {CBEC7225-0C21-4DA8-978E-1F158F8AD950}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -907,6 +1021,9 @@ Global {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|Win32.ActiveCfg = Release|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.ActiveCfg = Release|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.All|x64.Build.0 = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug DirectSound|x64.Build.0 = Debug|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -914,6 +1031,9 @@ Global {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|Win32.Build.0 = Debug|Win32 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.ActiveCfg = Debug|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Debug|x64.Build.0 = Debug|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release DirectSound|x64.Build.0 = Release|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B69247FA-ECD6-40ED-8E44-5CA6C3BAF9A4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -939,6 +1059,9 @@ Global {C24FB505-05D7-4319-8485-7540B44C8603}.All|Win32.ActiveCfg = Release|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.ActiveCfg = Release|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.All|x64.Build.0 = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Debug DirectSound|x64.Build.0 = Debug|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -946,6 +1069,9 @@ Global {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|Win32.Build.0 = Debug|Win32 {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.ActiveCfg = Debug|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Debug|x64.Build.0 = Debug|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release DirectSound|x64.ActiveCfg = Release|x64 + {C24FB505-05D7-4319-8485-7540B44C8603}.Release DirectSound|x64.Build.0 = Release|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {C24FB505-05D7-4319-8485-7540B44C8603}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -971,6 +1097,9 @@ Global {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|Win32.ActiveCfg = Release|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.ActiveCfg = Release|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.All|x64.Build.0 = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug DirectSound|x64.Build.0 = Debug|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -978,6 +1107,9 @@ Global {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|Win32.Build.0 = Debug|Win32 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.ActiveCfg = Debug|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Debug|x64.Build.0 = Debug|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release DirectSound|x64.Build.0 = Release|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B5881A85-FE70-4F64-8607-2CAAE52669C6}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1003,6 +1135,9 @@ Global {05515420-16DE-4E63-BE73-85BE85BA5142}.All|Win32.ActiveCfg = Release|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.ActiveCfg = Release|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.All|x64.Build.0 = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug DirectSound|x64.Build.0 = Debug|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1010,6 +1145,9 @@ Global {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|Win32.Build.0 = Debug|Win32 {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.ActiveCfg = Debug|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Debug|x64.Build.0 = Debug|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release DirectSound|x64.ActiveCfg = Release|x64 + {05515420-16DE-4E63-BE73-85BE85BA5142}.Release DirectSound|x64.Build.0 = Release|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {05515420-16DE-4E63-BE73-85BE85BA5142}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1035,6 +1173,9 @@ Global {1906D736-08BD-4EE1-924F-B536249B9A54}.All|Win32.ActiveCfg = Release DLL|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.ActiveCfg = Release DLL|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.All|x64.Build.0 = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug DirectSound|Win32.ActiveCfg = Debug DLL|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug DirectSound|Win32.Build.0 = Debug DLL|Win32 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug DirectSound|x64.ActiveCfg = Debug DLL|Win32 {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1042,6 +1183,9 @@ Global {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|Win32.Build.0 = Debug|Win32 {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.ActiveCfg = Debug|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Debug|x64.Build.0 = Debug|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release DirectSound|Win32.ActiveCfg = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release DirectSound|x64.ActiveCfg = Release DLL|x64 + {1906D736-08BD-4EE1-924F-B536249B9A54}.Release DirectSound|x64.Build.0 = Release DLL|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1906D736-08BD-4EE1-924F-B536249B9A54}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1067,6 +1211,9 @@ Global {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|Win32.ActiveCfg = Release Dll|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.ActiveCfg = Release Dll|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.All|x64.Build.0 = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug DirectSound|Win32.ActiveCfg = Debug Dll|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug DirectSound|Win32.Build.0 = Debug Dll|Win32 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug DirectSound|x64.ActiveCfg = Debug Dll|Win32 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1074,6 +1221,9 @@ Global {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|Win32.Build.0 = Debug|Win32 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.ActiveCfg = Debug|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Debug|x64.Build.0 = Debug|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release DirectSound|Win32.ActiveCfg = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release DirectSound|x64.ActiveCfg = Release Dll|x64 + {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release DirectSound|x64.Build.0 = Release Dll|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {EEF031CB-FED8-451E-A471-91EC8D4F6750}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1099,6 +1249,9 @@ Global {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|Win32.ActiveCfg = Release DLL|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.ActiveCfg = Release DLL|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.All|x64.Build.0 = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug DirectSound|Win32.ActiveCfg = Debug DLL|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug DirectSound|Win32.Build.0 = Debug DLL|Win32 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug DirectSound|x64.ActiveCfg = Debug DLL|Win32 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1106,6 +1259,9 @@ Global {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|Win32.Build.0 = Debug|Win32 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.ActiveCfg = Debug|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Debug|x64.Build.0 = Debug|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release DirectSound|Win32.ActiveCfg = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release DirectSound|x64.ActiveCfg = Release DLL|x64 + {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release DirectSound|x64.Build.0 = Release DLL|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {6EDFEFD5-3596-4FA9-8EBA-B331547B35A3}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1131,6 +1287,9 @@ Global {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|Win32.ActiveCfg = Release DLL|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.ActiveCfg = Release DLL|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.All|x64.Build.0 = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug DirectSound|Win32.ActiveCfg = Debug DLL|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug DirectSound|Win32.Build.0 = Debug DLL|Win32 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug DirectSound|x64.ActiveCfg = Debug DLL|Win32 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1138,6 +1297,9 @@ Global {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|Win32.Build.0 = Debug|Win32 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.ActiveCfg = Debug|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Debug|x64.Build.0 = Debug|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release DirectSound|Win32.ActiveCfg = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release DirectSound|x64.ActiveCfg = Release DLL|x64 + {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release DirectSound|x64.Build.0 = Release DLL|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {8D04B550-D240-4A44-8A18-35DA3F7038D9}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1163,6 +1325,9 @@ Global {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|Win32.ActiveCfg = Release|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.ActiveCfg = Release|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.All|x64.Build.0 = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug DirectSound|x64.Build.0 = Debug|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1170,6 +1335,9 @@ Global {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|Win32.Build.0 = Debug|Win32 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.ActiveCfg = Debug|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Debug|x64.Build.0 = Debug|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release DirectSound|x64.ActiveCfg = Release|x64 + {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release DirectSound|x64.Build.0 = Release|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {F6C55D93-B927-4483-BB69-15AEF3DD2DFF}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1195,6 +1363,9 @@ Global {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|Win32.ActiveCfg = Release|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.ActiveCfg = Release|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.All|x64.Build.0 = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug DirectSound|x64.Build.0 = Debug|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1202,6 +1373,9 @@ Global {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|Win32.Build.0 = Debug|Win32 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.ActiveCfg = Debug|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Debug|x64.Build.0 = Debug|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release DirectSound|x64.ActiveCfg = Release|x64 + {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release DirectSound|x64.Build.0 = Release|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {F057DA7F-79E5-4B00-845C-EF446EF055E3}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1227,6 +1401,9 @@ Global {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|Win32.ActiveCfg = Release|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.ActiveCfg = Release|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.All|x64.Build.0 = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug DirectSound|x64.Build.0 = Debug|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1234,6 +1411,9 @@ Global {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|Win32.Build.0 = Debug|Win32 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.ActiveCfg = Debug|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Debug|x64.Build.0 = Debug|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release DirectSound|x64.ActiveCfg = Release|x64 + {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release DirectSound|x64.Build.0 = Release|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {E727E8F6-935D-46FE-8B0E-37834748A0E3}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1259,6 +1439,9 @@ Global {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|Win32.ActiveCfg = Release|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.ActiveCfg = Release|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.All|x64.Build.0 = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug DirectSound|x64.Build.0 = Debug|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1266,6 +1449,9 @@ Global {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|Win32.Build.0 = Debug|Win32 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.ActiveCfg = Debug|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Debug|x64.Build.0 = Debug|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release DirectSound|x64.Build.0 = Release|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {3D0370CA-BED2-4657-A475-32375CBCB6E4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1291,6 +1477,9 @@ Global {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|Win32.ActiveCfg = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.ActiveCfg = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.All|x64.Build.0 = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug DirectSound|x64.Build.0 = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1298,6 +1487,9 @@ Global {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|Win32.Build.0 = Debug|Win32 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.ActiveCfg = Debug|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Debug|x64.Build.0 = Debug|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release DirectSound|x64.ActiveCfg = Release|x64 + {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release DirectSound|x64.Build.0 = Release|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {87EE9DA4-DE1E-4448-8324-183C98DCA588}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1323,6 +1515,9 @@ Global {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|Win32.ActiveCfg = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.ActiveCfg = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.All|x64.Build.0 = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug DirectSound|x64.Build.0 = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1330,6 +1525,9 @@ Global {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|Win32.Build.0 = Debug|Win32 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.ActiveCfg = Debug|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Debug|x64.Build.0 = Debug|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release DirectSound|x64.ActiveCfg = Release|x64 + {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release DirectSound|x64.Build.0 = Release|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {155844C3-EC5F-407F-97A4-A2DDADED9B2F}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1355,6 +1553,9 @@ Global {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|Win32.ActiveCfg = Release|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.ActiveCfg = Release|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.All|x64.Build.0 = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug DirectSound|x64.Build.0 = Debug|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1362,6 +1563,9 @@ Global {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|Win32.Build.0 = Debug|Win32 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.ActiveCfg = Debug|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Debug|x64.Build.0 = Debug|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release DirectSound|x64.Build.0 = Release|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0DF3ABD0-DDC0-4265-B778-07C66780979B}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1387,6 +1591,9 @@ Global {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|Win32.ActiveCfg = Release|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.ActiveCfg = Release|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.All|x64.Build.0 = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug DirectSound|x64.Build.0 = Debug|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1394,6 +1601,9 @@ Global {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|Win32.Build.0 = Debug|Win32 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.ActiveCfg = Debug|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Debug|x64.Build.0 = Debug|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release DirectSound|x64.ActiveCfg = Release|x64 + {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release DirectSound|x64.Build.0 = Release|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {70A49BC2-7500-41D0-B75D-EDCC5BE987A0}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1420,6 +1630,9 @@ Global {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|Win32.Build.0 = Release|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.ActiveCfg = Release|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.All|x64.Build.0 = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -1427,6 +1640,9 @@ Global {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|Win32.Build.0 = Debug|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.ActiveCfg = Debug|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Debug|x64.Build.0 = Debug|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release DirectSound|Win32.Build.0 = Release|Win32 + {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release DirectSound|x64.ActiveCfg = Release|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {8B3B4C4C-13C2-446C-BEB0-F412CC2CFB9A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -1452,6 +1668,9 @@ Global {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|Win32.ActiveCfg = Release DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.ActiveCfg = Release DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.All|x64.Build.0 = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug DirectSound|Win32.ActiveCfg = Debug DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug DirectSound|x64.ActiveCfg = Debug DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug DirectSound|x64.Build.0 = Debug DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug_RTL_dll|Win32.ActiveCfg = Debug DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug_RTL_dll|x64.ActiveCfg = Debug DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug_RTL_dll|x64.Build.0 = Debug DLL|x64 @@ -1459,6 +1678,9 @@ Global {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|Win32.Build.0 = Debug DLL|Win32 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.ActiveCfg = Debug DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Debug|x64.Build.0 = Debug DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release DirectSound|Win32.ActiveCfg = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release DirectSound|x64.ActiveCfg = Release DLL|x64 + {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release DirectSound|x64.Build.0 = Release DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release_Dynamic_SSE|x64.ActiveCfg = Release DLL|x64 {DF018947-0FFF-4EB3-BDEE-441DC81DA7A4}.Release_Dynamic_SSE|x64.Build.0 = Release DLL|x64 @@ -1484,6 +1706,9 @@ Global {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|Win32.ActiveCfg = Release Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.ActiveCfg = Release Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.All|x64.Build.0 = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug DirectSound|Win32.ActiveCfg = Debug Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug DirectSound|x64.ActiveCfg = Debug Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug DirectSound|x64.Build.0 = Debug Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug_RTL_dll|Win32.ActiveCfg = Debug Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug_RTL_dll|x64.ActiveCfg = Debug Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug_RTL_dll|x64.Build.0 = Debug Passthrough|x64 @@ -1491,6 +1716,9 @@ Global {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|Win32.Build.0 = Debug Passthrough|Win32 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.ActiveCfg = Debug Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Debug|x64.Build.0 = Debug Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release DirectSound|Win32.ActiveCfg = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release DirectSound|x64.ActiveCfg = Release Passthrough|x64 + {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release DirectSound|x64.Build.0 = Release Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release_Dynamic_SSE|Win32.ActiveCfg = Release Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release_Dynamic_SSE|x64.ActiveCfg = Release Passthrough|x64 {FEA1EEF7-876F-48DE-88BF-C0E3E606D758}.Release_Dynamic_SSE|x64.Build.0 = Release Passthrough|x64 @@ -1516,6 +1744,9 @@ Global {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|Win32.ActiveCfg = Release|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.ActiveCfg = Release|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.All|x64.Build.0 = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug DirectSound|x64.Build.0 = Debug|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1523,6 +1754,9 @@ Global {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|Win32.Build.0 = Debug|Win32 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.ActiveCfg = Debug|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Debug|x64.Build.0 = Debug|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release DirectSound|x64.ActiveCfg = Release|x64 + {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release DirectSound|x64.Build.0 = Release|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {9254C4B0-6F60-42B6-BB3A-36D63FC001C7}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1548,6 +1782,9 @@ Global {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|Win32.ActiveCfg = Release|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.ActiveCfg = Release|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.All|x64.Build.0 = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug DirectSound|x64.Build.0 = Debug|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1555,6 +1792,9 @@ Global {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|Win32.Build.0 = Debug|Win32 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.ActiveCfg = Debug|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Debug|x64.Build.0 = Debug|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release DirectSound|x64.ActiveCfg = Release|x64 + {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release DirectSound|x64.Build.0 = Release|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {71A967D5-0E99-4CEF-A587-98836EE6F2EF}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1580,6 +1820,9 @@ Global {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|Win32.ActiveCfg = Release|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.ActiveCfg = Release|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.All|x64.Build.0 = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug DirectSound|x64.Build.0 = Debug|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1587,6 +1830,9 @@ Global {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|Win32.Build.0 = Debug|Win32 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.ActiveCfg = Debug|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Debug|x64.Build.0 = Debug|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release DirectSound|x64.Build.0 = Release|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {AB91A099-7690-4ECF-8994-E458F4EA1ED4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1612,6 +1858,9 @@ Global {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|Win32.ActiveCfg = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.ActiveCfg = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.All|x64.Build.0 = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug DirectSound|x64.Build.0 = Debug|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1619,6 +1868,9 @@ Global {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|Win32.Build.0 = Debug|Win32 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.ActiveCfg = Debug|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Debug|x64.Build.0 = Debug|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release DirectSound|x64.ActiveCfg = Release|x64 + {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release DirectSound|x64.Build.0 = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1641,41 +1893,12 @@ Global {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|Win32.Build.0 = Release|Win32 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.ActiveCfg = Release|x64 {988CACF7-3FCB-4992-BE69-77872AE67DC8}.Release|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release DirectSound|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release DirectSound|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.Build.0 = Release DirectSound|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|x64.Build.0 = Debug|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug|Win32 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug|Win32 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.Build.0 = Debug|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|Win32.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|x64.Build.0 = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release|Win32 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release|Win32 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|x64 - {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.Build.0 = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|Win32.ActiveCfg = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.ActiveCfg = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.All|x64.Build.0 = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug DirectSound|x64.Build.0 = Debug|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1683,6 +1906,9 @@ Global {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|Win32.Build.0 = Debug|Win32 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.ActiveCfg = Debug|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Debug|x64.Build.0 = Debug|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release DirectSound|x64.ActiveCfg = Release|x64 + {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release DirectSound|x64.Build.0 = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {08DAD348-9E0A-4A2E-97F1-F1E7E24A7836}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1708,6 +1934,9 @@ Global {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|Win32.ActiveCfg = Release Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.ActiveCfg = Release Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.All|x64.Build.0 = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug DirectSound|Win32.ActiveCfg = Debug Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug DirectSound|x64.ActiveCfg = Debug Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug DirectSound|x64.Build.0 = Debug Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug_RTL_dll|Win32.ActiveCfg = Debug Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug_RTL_dll|x64.ActiveCfg = Debug Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug_RTL_dll|x64.Build.0 = Debug Passthrough|x64 @@ -1715,6 +1944,9 @@ Global {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|Win32.Build.0 = Debug Passthrough|Win32 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.ActiveCfg = Debug Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Debug|x64.Build.0 = Debug Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release DirectSound|Win32.ActiveCfg = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release DirectSound|x64.ActiveCfg = Release Passthrough|x64 + {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release DirectSound|x64.Build.0 = Release Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release_Dynamic_SSE|Win32.ActiveCfg = Release Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release_Dynamic_SSE|x64.ActiveCfg = Release Passthrough|x64 {8DEB383C-4091-4F42-A56F-C9E46D552D79}.Release_Dynamic_SSE|x64.Build.0 = Release Passthrough|x64 @@ -1740,6 +1972,9 @@ Global {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|Win32.ActiveCfg = Release|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.ActiveCfg = Release|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.All|x64.Build.0 = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug DirectSound|x64.Build.0 = Debug|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1747,6 +1982,9 @@ Global {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|Win32.Build.0 = Debug|Win32 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.ActiveCfg = Debug|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Debug|x64.Build.0 = Debug|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release DirectSound|x64.ActiveCfg = Release|x64 + {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release DirectSound|x64.Build.0 = Release|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {2C3C2423-234B-4772-8899-D3B137E5CA35}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1772,6 +2010,9 @@ Global {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|Win32.ActiveCfg = Release|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.ActiveCfg = Release|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.All|x64.Build.0 = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug DirectSound|x64.Build.0 = Debug|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1779,6 +2020,9 @@ Global {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|Win32.Build.0 = Debug|Win32 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.ActiveCfg = Debug|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Debug|x64.Build.0 = Debug|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release DirectSound|x64.ActiveCfg = Release|x64 + {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release DirectSound|x64.Build.0 = Release|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {3850D93A-5F24-4922-BC1C-74D08C37C256}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1804,6 +2048,9 @@ Global {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|Win32.ActiveCfg = Release|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.ActiveCfg = Release|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.All|x64.Build.0 = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug DirectSound|x64.Build.0 = Debug|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1811,6 +2058,9 @@ Global {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|Win32.Build.0 = Debug|Win32 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.ActiveCfg = Debug|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Debug|x64.Build.0 = Debug|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release DirectSound|x64.ActiveCfg = Release|x64 + {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release DirectSound|x64.Build.0 = Release|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {2CA40887-1622-46A1-A7F9-17FD7E7E545B}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1836,6 +2086,9 @@ Global {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|Win32.ActiveCfg = Release|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.ActiveCfg = Release|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.All|x64.Build.0 = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug DirectSound|x64.Build.0 = Debug|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1843,6 +2096,9 @@ Global {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|Win32.Build.0 = Debug|Win32 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.ActiveCfg = Debug|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Debug|x64.Build.0 = Debug|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release DirectSound|x64.Build.0 = Release|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D7F1E3F2-A3F4-474C-8555-15122571AF52}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1868,6 +2124,9 @@ Global {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|Win32.ActiveCfg = Release|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.ActiveCfg = Release|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.All|x64.Build.0 = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug DirectSound|x64.Build.0 = Debug|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1875,6 +2134,9 @@ Global {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|Win32.Build.0 = Debug|Win32 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.ActiveCfg = Debug|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Debug|x64.Build.0 = Debug|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release DirectSound|x64.ActiveCfg = Release|x64 + {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release DirectSound|x64.Build.0 = Release|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {5BC072DB-3826-48EA-AF34-FE32AA01E83B}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1900,6 +2162,9 @@ Global {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|Win32.ActiveCfg = Release|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.ActiveCfg = Release|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.All|x64.Build.0 = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug DirectSound|x64.Build.0 = Debug|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1907,6 +2172,9 @@ Global {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|Win32.Build.0 = Debug|Win32 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.ActiveCfg = Debug|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Debug|x64.Build.0 = Debug|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release DirectSound|x64.Build.0 = Release|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {FA429E98-8B03-45E6-A096-A4BC5E821DE4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1932,6 +2200,9 @@ Global {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|Win32.ActiveCfg = Release|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.ActiveCfg = Release|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.All|x64.Build.0 = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug DirectSound|x64.Build.0 = Debug|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1939,6 +2210,9 @@ Global {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|Win32.Build.0 = Debug|Win32 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.ActiveCfg = Debug|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Debug|x64.Build.0 = Debug|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release DirectSound|x64.ActiveCfg = Release|x64 + {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release DirectSound|x64.Build.0 = Release|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {06E3A538-AB32-44F2-B477-755FF9CB5D37}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1964,6 +2238,9 @@ Global {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|Win32.ActiveCfg = Release|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.ActiveCfg = Release|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.All|x64.Build.0 = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug DirectSound|x64.Build.0 = Debug|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -1971,6 +2248,9 @@ Global {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|Win32.Build.0 = Debug|Win32 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.ActiveCfg = Debug|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Debug|x64.Build.0 = Debug|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release DirectSound|x64.ActiveCfg = Release|x64 + {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release DirectSound|x64.Build.0 = Release|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {6D1BEC70-4DCD-4FE9-ADBD-4A43A67E4D05}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -1996,6 +2276,9 @@ Global {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|Win32.ActiveCfg = Release|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.ActiveCfg = Release|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.All|x64.Build.0 = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug DirectSound|x64.Build.0 = Debug|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2003,6 +2286,9 @@ Global {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|Win32.Build.0 = Debug|Win32 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.ActiveCfg = Debug|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Debug|x64.Build.0 = Debug|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release DirectSound|x64.ActiveCfg = Release|x64 + {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release DirectSound|x64.Build.0 = Release|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {A4B122CF-5196-476B-8C0E-D8BD59AC3C14}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2028,6 +2314,9 @@ Global {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|Win32.ActiveCfg = Release|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.ActiveCfg = Release|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.All|x64.Build.0 = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug DirectSound|x64.Build.0 = Debug|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2035,6 +2324,9 @@ Global {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|Win32.Build.0 = Debug|Win32 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.ActiveCfg = Debug|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Debug|x64.Build.0 = Debug|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release DirectSound|x64.ActiveCfg = Release|x64 + {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release DirectSound|x64.Build.0 = Release|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {75DF7F29-2FBF-47F7-B5AF-5B4952DC1ABD}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2060,6 +2352,9 @@ Global {F6A33240-8F29-48BD-98F0-826995911799}.All|Win32.ActiveCfg = Release|x64 {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.ActiveCfg = Release|x64 {F6A33240-8F29-48BD-98F0-826995911799}.All|x64.Build.0 = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Debug DirectSound|x64.Build.0 = Debug|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2067,6 +2362,9 @@ Global {F6A33240-8F29-48BD-98F0-826995911799}.Debug|Win32.Build.0 = Debug|Win32 {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.ActiveCfg = Debug|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Debug|x64.Build.0 = Debug|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Release DirectSound|x64.ActiveCfg = Release|x64 + {F6A33240-8F29-48BD-98F0-826995911799}.Release DirectSound|x64.Build.0 = Release|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {F6A33240-8F29-48BD-98F0-826995911799}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2092,6 +2390,9 @@ Global {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|Win32.ActiveCfg = Release|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.ActiveCfg = Release|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.All|x64.Build.0 = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug DirectSound|x64.Build.0 = Debug|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2099,6 +2400,9 @@ Global {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|Win32.Build.0 = Debug|Win32 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.ActiveCfg = Debug|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Debug|x64.Build.0 = Debug|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release DirectSound|x64.Build.0 = Release|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {65A6273D-FCAB-4C55-B09E-65100141A5D4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2124,6 +2428,9 @@ Global {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|Win32.ActiveCfg = Release|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.ActiveCfg = Release|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.All|x64.Build.0 = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug DirectSound|x64.Build.0 = Debug|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2131,6 +2438,9 @@ Global {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|Win32.Build.0 = Debug|Win32 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.ActiveCfg = Debug|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Debug|x64.Build.0 = Debug|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release DirectSound|x64.ActiveCfg = Release|x64 + {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release DirectSound|x64.Build.0 = Release|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {E7BC026C-7CC5-45A3-BC7C-3B88EEF01F24}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2156,6 +2466,9 @@ Global {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|Win32.ActiveCfg = Release|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.ActiveCfg = Release|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.All|x64.Build.0 = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug DirectSound|x64.Build.0 = Debug|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2163,6 +2476,9 @@ Global {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|Win32.Build.0 = Debug|Win32 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.ActiveCfg = Debug|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Debug|x64.Build.0 = Debug|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release DirectSound|x64.Build.0 = Release|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D0BCAC02-D94B-46B8-9B49-CDDCC2BD7909}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2188,6 +2504,9 @@ Global {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|Win32.ActiveCfg = Release|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.ActiveCfg = Release|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.All|x64.Build.0 = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug DirectSound|x64.Build.0 = Debug|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2195,6 +2514,9 @@ Global {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|Win32.Build.0 = Debug|Win32 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.ActiveCfg = Debug|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Debug|x64.Build.0 = Debug|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release DirectSound|x64.Build.0 = Release|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {44D7DEAF-FDA5-495E-8B9D-1439E4F4C21E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2220,6 +2542,9 @@ Global {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|Win32.ActiveCfg = Release|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.ActiveCfg = Release|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.All|x64.Build.0 = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug DirectSound|x64.Build.0 = Debug|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2227,6 +2552,9 @@ Global {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|Win32.Build.0 = Debug|Win32 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.ActiveCfg = Debug|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Debug|x64.Build.0 = Debug|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release DirectSound|x64.ActiveCfg = Release|x64 + {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release DirectSound|x64.Build.0 = Release|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {6FF941AC-82C5-429F-AA4C-AD2FB9E5DA52}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2252,6 +2580,9 @@ Global {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|Win32.ActiveCfg = Release|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.ActiveCfg = Release|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.All|x64.Build.0 = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug DirectSound|x64.Build.0 = Debug|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2259,6 +2590,9 @@ Global {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|Win32.Build.0 = Debug|Win32 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.ActiveCfg = Debug|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Debug|x64.Build.0 = Debug|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release DirectSound|x64.ActiveCfg = Release|x64 + {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release DirectSound|x64.Build.0 = Release|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {E3246D17-E29B-4AB5-962A-C69B0C5837BB}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2284,6 +2618,9 @@ Global {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|Win32.ActiveCfg = Release|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.ActiveCfg = Release|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.All|x64.Build.0 = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug DirectSound|x64.Build.0 = Debug|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2291,6 +2628,9 @@ Global {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|Win32.Build.0 = Debug|Win32 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.ActiveCfg = Debug|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Debug|x64.Build.0 = Debug|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release DirectSound|x64.ActiveCfg = Release|x64 + {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release DirectSound|x64.Build.0 = Release|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {7B077E7F-1BE7-4291-AB86-55E527B25CAC}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2316,6 +2656,9 @@ Global {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|Win32.ActiveCfg = Release|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.ActiveCfg = Release|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.All|x64.Build.0 = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug DirectSound|x64.Build.0 = Debug|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2323,6 +2666,9 @@ Global {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|Win32.Build.0 = Debug|Win32 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.ActiveCfg = Debug|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Debug|x64.Build.0 = Debug|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release DirectSound|x64.Build.0 = Release|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D2396DD7-7D38-473A-ABB7-6F96D65AE1B9}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2348,6 +2694,9 @@ Global {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|Win32.ActiveCfg = Release|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.ActiveCfg = Release|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.All|x64.Build.0 = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug DirectSound|x64.Build.0 = Debug|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2355,6 +2704,9 @@ Global {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|Win32.Build.0 = Debug|Win32 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.ActiveCfg = Debug|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Debug|x64.Build.0 = Debug|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release DirectSound|x64.ActiveCfg = Release|x64 + {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release DirectSound|x64.Build.0 = Release|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {CEE544A9-0303-44C2-8ECE-EFA7D7BCBBBA}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2380,6 +2732,9 @@ Global {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|Win32.ActiveCfg = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.ActiveCfg = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.All|x64.Build.0 = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug DirectSound|x64.Build.0 = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2387,6 +2742,9 @@ Global {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|Win32.Build.0 = Debug|Win32 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.ActiveCfg = Debug|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Debug|x64.Build.0 = Debug|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release DirectSound|x64.Build.0 = Release|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0D108721-EAE8-4BAF-8102-D8960EC93647}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2412,6 +2770,9 @@ Global {B535402E-38D2-4D54-8360-423ACBD17192}.All|Win32.ActiveCfg = Release|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.ActiveCfg = Release|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.All|x64.Build.0 = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Debug DirectSound|x64.Build.0 = Debug|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2419,6 +2780,9 @@ Global {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|Win32.Build.0 = Debug|Win32 {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.ActiveCfg = Debug|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Debug|x64.Build.0 = Debug|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B535402E-38D2-4D54-8360-423ACBD17192}.Release DirectSound|x64.Build.0 = Release|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B535402E-38D2-4D54-8360-423ACBD17192}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2445,6 +2809,9 @@ Global {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|Win32.Build.0 = Release|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.ActiveCfg = Release|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.All|x64.Build.0 = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2452,6 +2819,9 @@ Global {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|Win32.Build.0 = Debug|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.ActiveCfg = Debug|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Debug|x64.Build.0 = Debug|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release DirectSound|Win32.Build.0 = Release|Win32 + {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release DirectSound|x64.ActiveCfg = Release|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {4F92B672-DADB-4047-8D6A-4BB3796733FD}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2478,6 +2848,9 @@ Global {2DEE4895-1134-439C-B688-52203E57D878}.All|Win32.Build.0 = Release|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.ActiveCfg = Release|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.All|x64.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2485,6 +2858,9 @@ Global {2DEE4895-1134-439C-B688-52203E57D878}.Debug|Win32.Build.0 = Debug|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.ActiveCfg = Debug|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Debug|x64.Build.0 = Debug|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release DirectSound|Win32.Build.0 = Release|Win32 + {2DEE4895-1134-439C-B688-52203E57D878}.Release DirectSound|x64.ActiveCfg = Release|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {2DEE4895-1134-439C-B688-52203E57D878}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2511,6 +2887,9 @@ Global {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|Win32.Build.0 = Release|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.ActiveCfg = Release|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.All|x64.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2518,6 +2897,9 @@ Global {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|Win32.Build.0 = Debug|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.ActiveCfg = Debug|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Debug|x64.Build.0 = Debug|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release DirectSound|Win32.Build.0 = Release|Win32 + {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release DirectSound|x64.ActiveCfg = Release|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {AF8163EE-FA76-4904-A11D-7D70A1B5BA2E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2543,6 +2925,9 @@ Global {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|Win32.ActiveCfg = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.ActiveCfg = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.All|x64.Build.0 = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug DirectSound|x64.Build.0 = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2550,6 +2935,9 @@ Global {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|Win32.Build.0 = Debug|Win32 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.ActiveCfg = Debug|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Debug|x64.Build.0 = Debug|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release DirectSound|x64.ActiveCfg = Release|x64 + {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release DirectSound|x64.Build.0 = Release|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {2F025EAD-99BD-40F5-B2CC-F0A28CAD7F2D}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2575,6 +2963,9 @@ Global {94001A0E-A837-445C-8004-F918F10D0226}.All|Win32.ActiveCfg = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.ActiveCfg = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.All|x64.Build.0 = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Debug DirectSound|x64.Build.0 = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2582,6 +2973,9 @@ Global {94001A0E-A837-445C-8004-F918F10D0226}.Debug|Win32.Build.0 = Debug|Win32 {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.ActiveCfg = Debug|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Debug|x64.Build.0 = Debug|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Release DirectSound|x64.ActiveCfg = Release|x64 + {94001A0E-A837-445C-8004-F918F10D0226}.Release DirectSound|x64.Build.0 = Release|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {94001A0E-A837-445C-8004-F918F10D0226}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2608,6 +3002,9 @@ Global {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|Win32.Build.0 = Release|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.ActiveCfg = Release|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.All|x64.Build.0 = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2615,6 +3012,9 @@ Global {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|Win32.Build.0 = Debug|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.ActiveCfg = Debug|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Debug|x64.Build.0 = Debug|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release DirectSound|Win32.Build.0 = Release|Win32 + {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release DirectSound|x64.ActiveCfg = Release|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2639,11 +3039,17 @@ Global {3CE1DC99-8246-4DB1-A709-74F19F08EC67}.Release|x64.Build.0 = Release|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|Win32.ActiveCfg = Release|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.All|x64.ActiveCfg = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|Win32.ActiveCfg = Debug|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Debug|x64.ActiveCfg = Debug|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release DirectSound|Win32.Build.0 = Release|Win32 + {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release DirectSound|x64.ActiveCfg = Release|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {87A1FE3D-F410-4C8E-9591-8C625985BC70}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2668,6 +3074,9 @@ Global {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|Win32.Build.0 = Release|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.ActiveCfg = Release|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.All|x64.Build.0 = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2675,6 +3084,9 @@ Global {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|Win32.Build.0 = Debug|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.ActiveCfg = Debug|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Debug|x64.Build.0 = Debug|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release DirectSound|Win32.Build.0 = Release|Win32 + {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release DirectSound|x64.ActiveCfg = Release|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2699,11 +3111,17 @@ Global {7A8D8174-B355-4114-AFC1-04777CB9DE0A}.Release|x64.Build.0 = Release|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.All|Win32.ActiveCfg = Release|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.All|x64.ActiveCfg = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|Win32.ActiveCfg = Debug|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Debug|x64.ActiveCfg = Debug|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Release DirectSound|Win32.Build.0 = Release|Win32 + {7EB71250-F002-4ED8-92CA-CA218114537A}.Release DirectSound|x64.ActiveCfg = Release|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {7EB71250-F002-4ED8-92CA-CA218114537A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2726,11 +3144,17 @@ Global {7EB71250-F002-4ED8-92CA-CA218114537A}.Release|x64.ActiveCfg = Release|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|Win32.ActiveCfg = Release|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.All|x64.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|Win32.ActiveCfg = Debug|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Debug|x64.ActiveCfg = Debug|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release DirectSound|Win32.Build.0 = Release|Win32 + {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release DirectSound|x64.ActiveCfg = Release|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2753,11 +3177,17 @@ Global {6E49F6C2-ADDA-4BFB-81FE-AB9AF51B455F}.Release|x64.ActiveCfg = Release|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.All|Win32.ActiveCfg = Release|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.All|x64.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|Win32.ActiveCfg = Debug|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Debug|x64.ActiveCfg = Debug|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Release DirectSound|Win32.Build.0 = Release|Win32 + {464AAB78-5489-4916-BE51-BF8D61822311}.Release DirectSound|x64.ActiveCfg = Release|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {464AAB78-5489-4916-BE51-BF8D61822311}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2781,6 +3211,9 @@ Global {0AD1177E-1FD8-4643-9391-431467A11084}.All|Win32.ActiveCfg = Release|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.ActiveCfg = Release|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.All|x64.Build.0 = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Debug DirectSound|x64.Build.0 = Debug|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2788,6 +3221,9 @@ Global {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|Win32.Build.0 = Debug|Win32 {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.ActiveCfg = Debug|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Debug|x64.Build.0 = Debug|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0AD1177E-1FD8-4643-9391-431467A11084}.Release DirectSound|x64.Build.0 = Release|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0AD1177E-1FD8-4643-9391-431467A11084}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2813,11 +3249,17 @@ Global {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|Win32.ActiveCfg = Release Static|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.ActiveCfg = Release Static|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.All|x64.Build.0 = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug DirectSound|Win32.ActiveCfg = Debug Static|Win32 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug DirectSound|Win32.Build.0 = Debug Static|Win32 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug DirectSound|x64.ActiveCfg = Debug Static|Win32 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug_RTL_dll|x64.Build.0 = Debug|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|Win32.ActiveCfg = Debug|Win32 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Debug|x64.ActiveCfg = Debug|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release DirectSound|Win32.ActiveCfg = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release DirectSound|x64.ActiveCfg = Release Static|x64 + {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release DirectSound|x64.Build.0 = Release Static|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {66444AEE-554C-11DD-A9F0-8C5D56D89593}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -2842,6 +3284,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2849,6 +3294,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82FDD086DB1B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2875,6 +3323,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2882,6 +3333,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB2086DB1B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2908,6 +3362,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2915,6 +3372,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB3086DB1B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2941,6 +3401,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.All|x64.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -2948,6 +3411,9 @@ Global {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|Win32.Build.0 = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.ActiveCfg = Debug|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Debug|x64.Build.0 = Debug|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D5D2BF72-29FE-4982-A9FA-82AB1086DB1B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -2973,6 +3439,9 @@ Global {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|Win32.ActiveCfg = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.ActiveCfg = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.All|x64.Build.0 = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug DirectSound|x64.Build.0 = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -2980,6 +3449,9 @@ Global {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|Win32.Build.0 = Debug|Win32 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.ActiveCfg = Debug|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Debug|x64.Build.0 = Debug|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release DirectSound|x64.ActiveCfg = Release|x64 + {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release DirectSound|x64.Build.0 = Release|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {E316772F-5D8F-4F2A-8F71-094C3E859D34}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3005,6 +3477,9 @@ Global {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|Win32.ActiveCfg = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.ActiveCfg = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.All|x64.Build.0 = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug DirectSound|x64.Build.0 = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3012,6 +3487,9 @@ Global {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|Win32.Build.0 = Debug|Win32 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.ActiveCfg = Debug|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Debug|x64.Build.0 = Debug|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release DirectSound|x64.Build.0 = Release|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D3D8B329-20BE-475E-9E83-653CEA0E0EF5}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3037,6 +3515,9 @@ Global {38FE0559-9910-43A8-9E45-3E5004C27692}.All|Win32.ActiveCfg = Release|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.ActiveCfg = Release|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.All|x64.Build.0 = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug DirectSound|x64.Build.0 = Debug|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3044,6 +3525,9 @@ Global {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|Win32.Build.0 = Debug|Win32 {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.ActiveCfg = Debug|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Debug|x64.Build.0 = Debug|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release DirectSound|x64.ActiveCfg = Release|x64 + {38FE0559-9910-43A8-9E45-3E5004C27692}.Release DirectSound|x64.Build.0 = Release|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {38FE0559-9910-43A8-9E45-3E5004C27692}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3069,6 +3553,9 @@ Global {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|Win32.ActiveCfg = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.ActiveCfg = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.All|x64.Build.0 = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug DirectSound|x64.Build.0 = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3076,6 +3563,9 @@ Global {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|Win32.Build.0 = Debug|Win32 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.ActiveCfg = Debug|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Debug|x64.Build.0 = Debug|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release DirectSound|x64.Build.0 = Release|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0FEEAEC6-4399-4C46-B7DB-62ECE80D15B4}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3101,6 +3591,9 @@ Global {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|Win32.ActiveCfg = Release|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.ActiveCfg = Release|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.All|x64.Build.0 = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug DirectSound|x64.Build.0 = Debug|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3108,6 +3601,9 @@ Global {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|Win32.Build.0 = Debug|Win32 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.ActiveCfg = Debug|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Debug|x64.Build.0 = Debug|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release DirectSound|x64.ActiveCfg = Release|x64 + {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release DirectSound|x64.Build.0 = Release|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {2A3D00C6-588D-4E86-81AC-9EF5EDE86E03}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3133,6 +3629,9 @@ Global {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|Win32.ActiveCfg = Release|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.ActiveCfg = Release|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.All|x64.Build.0 = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug DirectSound|x64.Build.0 = Debug|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3140,6 +3639,9 @@ Global {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|Win32.Build.0 = Debug|Win32 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.ActiveCfg = Debug|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Debug|x64.Build.0 = Debug|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release DirectSound|x64.Build.0 = Release|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B6A9FB7A-1CC4-442B-812D-EC33E4E4A36E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3165,6 +3667,9 @@ Global {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|Win32.ActiveCfg = Release_Mono|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.ActiveCfg = Release_Mono|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.All|x64.Build.0 = Release_Mono|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug DirectSound|Win32.ActiveCfg = Debug_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug DirectSound|x64.ActiveCfg = Debug_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug DirectSound|x64.Build.0 = Debug_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug_RTL_dll|Win32.ActiveCfg = Debug_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug_RTL_dll|x64.ActiveCfg = Debug_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug_RTL_dll|x64.Build.0 = Debug_CLR|x64 @@ -3172,6 +3677,9 @@ Global {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|Win32.Build.0 = Debug_CLR|Win32 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.ActiveCfg = Debug_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Debug|x64.Build.0 = Debug_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release DirectSound|Win32.ActiveCfg = Release_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release DirectSound|x64.ActiveCfg = Release_CLR|x64 + {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release DirectSound|x64.Build.0 = Release_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release_Dynamic_SSE|x64.ActiveCfg = Release_CLR|x64 {7B42BDA1-72C0-4378-A9B6-5C530F8CD61E}.Release_Dynamic_SSE|x64.Build.0 = Release_CLR|x64 @@ -3198,6 +3706,9 @@ Global {E796E337-DE78-4303-8614-9A590862EE95}.All|Win32.Build.0 = Release|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.ActiveCfg = Release|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.All|x64.Build.0 = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -3205,6 +3716,9 @@ Global {E796E337-DE78-4303-8614-9A590862EE95}.Debug|Win32.Build.0 = Debug|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.ActiveCfg = Debug|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Debug|x64.Build.0 = Debug|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release DirectSound|Win32.Build.0 = Release|Win32 + {E796E337-DE78-4303-8614-9A590862EE95}.Release DirectSound|x64.ActiveCfg = Release|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {E796E337-DE78-4303-8614-9A590862EE95}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3230,6 +3744,9 @@ Global {419C8F80-D858-4B48-A25C-AF4007608137}.All|Win32.ActiveCfg = Release|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.ActiveCfg = Release|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.All|x64.Build.0 = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Debug DirectSound|x64.Build.0 = Debug|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3237,6 +3754,9 @@ Global {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|Win32.Build.0 = Debug|Win32 {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.ActiveCfg = Debug|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Debug|x64.Build.0 = Debug|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release DirectSound|x64.ActiveCfg = Release|x64 + {419C8F80-D858-4B48-A25C-AF4007608137}.Release DirectSound|x64.Build.0 = Release|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {419C8F80-D858-4B48-A25C-AF4007608137}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3262,6 +3782,9 @@ Global {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|Win32.ActiveCfg = Release|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.ActiveCfg = Release|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.All|x64.Build.0 = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug DirectSound|x64.Build.0 = Debug|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3269,6 +3792,9 @@ Global {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|Win32.Build.0 = Debug|Win32 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.ActiveCfg = Debug|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Debug|x64.Build.0 = Debug|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release DirectSound|x64.Build.0 = Release|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B3F424EC-3D8F-417C-B244-3919D5E1A577}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3294,6 +3820,9 @@ Global {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|Win32.ActiveCfg = Release|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.ActiveCfg = Release|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.All|x64.Build.0 = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug DirectSound|x64.Build.0 = Debug|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3301,6 +3830,9 @@ Global {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|Win32.Build.0 = Debug|Win32 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.ActiveCfg = Debug|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Debug|x64.Build.0 = Debug|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release DirectSound|x64.ActiveCfg = Release|x64 + {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release DirectSound|x64.Build.0 = Release|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {14E4A972-9CFB-436D-B0A5-4943F3F80D47}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3326,6 +3858,9 @@ Global {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|Win32.ActiveCfg = Release|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.ActiveCfg = Release|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.All|x64.Build.0 = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug DirectSound|x64.Build.0 = Debug|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3333,6 +3868,9 @@ Global {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|Win32.Build.0 = Debug|Win32 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.ActiveCfg = Debug|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Debug|x64.Build.0 = Debug|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release DirectSound|x64.Build.0 = Release|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1BC8A8EC-E03B-44DF-BCD9-088650F4D29C}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3358,6 +3896,9 @@ Global {0B6C905B-142E-4999-B39D-92FF7951E921}.All|Win32.ActiveCfg = Release|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.ActiveCfg = Release|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.All|x64.Build.0 = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug DirectSound|x64.Build.0 = Debug|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3365,6 +3906,9 @@ Global {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|Win32.Build.0 = Debug|Win32 {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.ActiveCfg = Debug|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Debug|x64.Build.0 = Debug|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0B6C905B-142E-4999-B39D-92FF7951E921}.Release DirectSound|x64.Build.0 = Release|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0B6C905B-142E-4999-B39D-92FF7951E921}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3390,6 +3934,9 @@ Global {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|Win32.ActiveCfg = Release|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.ActiveCfg = Release|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.All|x64.Build.0 = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug DirectSound|x64.Build.0 = Debug|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3397,6 +3944,9 @@ Global {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|Win32.Build.0 = Debug|Win32 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.ActiveCfg = Debug|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Debug|x64.Build.0 = Debug|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release DirectSound|x64.Build.0 = Release|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {CF405366-9558-4AE8-90EF-5E21B51CCB4E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3422,6 +3972,9 @@ Global {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|Win32.ActiveCfg = Release|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.ActiveCfg = Release|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.All|x64.Build.0 = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug DirectSound|x64.Build.0 = Debug|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3429,6 +3982,9 @@ Global {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|Win32.Build.0 = Debug|Win32 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.ActiveCfg = Debug|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Debug|x64.Build.0 = Debug|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release DirectSound|x64.Build.0 = Release|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D2FB8043-D208-4AEE-8F18-3B5857C871B9}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3454,6 +4010,9 @@ Global {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|Win32.ActiveCfg = Release|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.ActiveCfg = Release|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.All|x64.Build.0 = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug DirectSound|x64.Build.0 = Debug|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3461,6 +4020,9 @@ Global {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|Win32.Build.0 = Debug|Win32 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.ActiveCfg = Debug|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Debug|x64.Build.0 = Debug|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release DirectSound|x64.ActiveCfg = Release|x64 + {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release DirectSound|x64.Build.0 = Release|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {329FD5B0-EF28-4606-86D0-F6EA21CF8E36}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3486,6 +4048,9 @@ Global {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|Win32.ActiveCfg = Release|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.ActiveCfg = Release|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.All|x64.Build.0 = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug DirectSound|x64.Build.0 = Debug|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3493,6 +4058,9 @@ Global {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|Win32.Build.0 = Debug|Win32 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.ActiveCfg = Debug|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Debug|x64.Build.0 = Debug|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release DirectSound|x64.Build.0 = Release|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1A3793D1-05D1-4B57-9B0F-5AF3E79DC439}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3518,6 +4086,9 @@ Global {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|Win32.ActiveCfg = Release|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.ActiveCfg = Release|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.All|x64.Build.0 = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug DirectSound|x64.Build.0 = Debug|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3525,6 +4096,9 @@ Global {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|Win32.Build.0 = Debug|Win32 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.ActiveCfg = Debug|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Debug|x64.Build.0 = Debug|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release DirectSound|x64.Build.0 = Release|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1CBB0077-18C5-455F-801C-0A0CE7B0BBF5}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3550,6 +4124,9 @@ Global {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|Win32.ActiveCfg = Release|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.ActiveCfg = Release|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.All|x64.Build.0 = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug DirectSound|x64.Build.0 = Debug|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3557,6 +4134,9 @@ Global {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|Win32.Build.0 = Debug|Win32 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.ActiveCfg = Debug|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Debug|x64.Build.0 = Debug|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release DirectSound|x64.ActiveCfg = Release|x64 + {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release DirectSound|x64.Build.0 = Release|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {9A5DDF08-C88C-4A35-B7F6-D605228446BD}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3582,6 +4162,9 @@ Global {D0B36172-CD76-454A-9B89-990025266C2A}.All|Win32.ActiveCfg = Release|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.ActiveCfg = Release|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.All|x64.Build.0 = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Debug DirectSound|x64.Build.0 = Debug|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3589,6 +4172,9 @@ Global {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|Win32.Build.0 = Debug|Win32 {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.ActiveCfg = Debug|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Debug|x64.Build.0 = Debug|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D0B36172-CD76-454A-9B89-990025266C2A}.Release DirectSound|x64.Build.0 = Release|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D0B36172-CD76-454A-9B89-990025266C2A}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3614,11 +4200,17 @@ Global {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.ActiveCfg = Release|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|Win32.Build.0 = Release|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.All|x64.ActiveCfg = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|Win32.ActiveCfg = Debug|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Debug|x64.ActiveCfg = Debug|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release DirectSound|Win32.Build.0 = Release|Win32 + {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release DirectSound|x64.ActiveCfg = Release|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3641,11 +4233,17 @@ Global {05C9FB27-480E-4D53-B3B7-6338E2526666}.Release|x64.ActiveCfg = Release|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|Win32.ActiveCfg = Release|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.All|x64.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|Win32.ActiveCfg = Debug|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Debug|x64.ActiveCfg = Debug|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release DirectSound|Win32.Build.0 = Release|Win32 + {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release DirectSound|x64.ActiveCfg = Release|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {CC1DD008-9406-448D-A0AD-33C3186CFADB}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3669,6 +4267,9 @@ Global {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|Win32.Build.0 = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.All|x64.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug DirectSound|Win32.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug DirectSound|Win32.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug DirectSound|x64.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug_RTL_dll|Win32.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug_RTL_dll|Win32.Build.0 = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug_RTL_dll|x64.ActiveCfg = All|Win32 @@ -3676,6 +4277,9 @@ Global {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|Win32.Build.0 = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Debug|x64.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release DirectSound|Win32.ActiveCfg = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release DirectSound|Win32.Build.0 = All|Win32 + {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release DirectSound|x64.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release_Dynamic_SSE|Win32.ActiveCfg = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release_Dynamic_SSE|Win32.Build.0 = All|Win32 {DEE932AB-5911-4700-9EEB-8C7090A0A330}.Release_Dynamic_SSE|x64.ActiveCfg = All|Win32 @@ -3701,6 +4305,9 @@ Global {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|Win32.Build.0 = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.All|x64.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug DirectSound|Win32.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug DirectSound|Win32.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug DirectSound|x64.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug_RTL_dll|Win32.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug_RTL_dll|Win32.Build.0 = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug_RTL_dll|x64.ActiveCfg = All|Win32 @@ -3708,6 +4315,9 @@ Global {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|Win32.Build.0 = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Debug|x64.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release DirectSound|Win32.ActiveCfg = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release DirectSound|Win32.Build.0 = All|Win32 + {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release DirectSound|x64.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release_Dynamic_SSE|Win32.ActiveCfg = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release_Dynamic_SSE|Win32.Build.0 = All|Win32 {329A6FA0-0FCC-4435-A950-E670AEFA9838}.Release_Dynamic_SSE|x64.ActiveCfg = All|Win32 @@ -3733,11 +4343,17 @@ Global {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|Win32.ActiveCfg = Release|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.ActiveCfg = Release|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.All|x64.Build.0 = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug DirectSound|x64.Build.0 = Debug|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug_RTL_dll|x64.Build.0 = Debug|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|Win32.ActiveCfg = Debug|Win32 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Debug|x64.ActiveCfg = Debug|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release DirectSound|x64.ActiveCfg = Release|x64 + {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release DirectSound|x64.Build.0 = Release|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {11C9BC3D-45E9-46E3-BE84-B8CEE4685E39}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3761,6 +4377,9 @@ Global {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|Win32.ActiveCfg = Release|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.ActiveCfg = Release|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.All|x64.Build.0 = Release|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug DirectSound|x64.Build.0 = Debug|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -3768,6 +4387,9 @@ Global {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|Win32.Build.0 = Debug|Win32 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.ActiveCfg = Debug|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Debug|x64.Build.0 = Debug|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release DirectSound|x64.ActiveCfg = Release|x64 + {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release DirectSound|x64.Build.0 = Release|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {A61D7CB4-75A5-4A55-8CA1-BE5AF615D921}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -3793,11 +4415,17 @@ Global {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.ActiveCfg = Release|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|Win32.Build.0 = Release|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.All|x64.ActiveCfg = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|Win32.ActiveCfg = Debug|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Debug|x64.ActiveCfg = Debug|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release DirectSound|Win32.Build.0 = Release|Win32 + {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release DirectSound|x64.ActiveCfg = Release|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3820,11 +4448,17 @@ Global {C6E78A4C-DB1E-47F4-9B63-4DC27D86343F}.Release|x64.ActiveCfg = Release|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.All|Win32.ActiveCfg = Release|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.All|x64.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|Win32.ActiveCfg = Debug|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Debug|x64.ActiveCfg = Debug|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Release DirectSound|Win32.Build.0 = Release|Win32 + {1F0A8A77-E661-418F-BB92-82172AE43803}.Release DirectSound|x64.ActiveCfg = Release|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {1F0A8A77-E661-418F-BB92-82172AE43803}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3849,6 +4483,9 @@ Global {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|Win32.Build.0 = Release|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.ActiveCfg = Release|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.All|x64.Build.0 = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -3856,6 +4493,9 @@ Global {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|Win32.Build.0 = Debug|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.ActiveCfg = Debug|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Debug|x64.Build.0 = Debug|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release DirectSound|Win32.Build.0 = Release|Win32 + {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release DirectSound|x64.ActiveCfg = Release|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3880,11 +4520,17 @@ Global {4F5C9D55-98EF-4256-8311-32D7BD360406}.Release|x64.Build.0 = Release|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|Win32.ActiveCfg = Release|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.All|x64.ActiveCfg = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|Win32.ActiveCfg = Debug|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Debug|x64.ActiveCfg = Debug|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release DirectSound|Win32.Build.0 = Release|Win32 + {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release DirectSound|x64.ActiveCfg = Release|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {E10571C4-E7F4-4608-B5F2-B22E7EB95400}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3909,6 +4555,9 @@ Global {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|Win32.Build.0 = Release|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.ActiveCfg = Release|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.All|x64.Build.0 = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -3916,6 +4565,9 @@ Global {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|Win32.Build.0 = Debug|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.ActiveCfg = Debug|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Debug|x64.Build.0 = Debug|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3940,11 +4592,17 @@ Global {D1ABE208-6442-4FB4-9AAD-1677E41BC870}.Release|x64.Build.0 = Release|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|Win32.ActiveCfg = Release|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.All|x64.ActiveCfg = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|Win32.ActiveCfg = Debug|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Debug|x64.ActiveCfg = Debug|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release DirectSound|Win32.Build.0 = Release|Win32 + {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release DirectSound|x64.ActiveCfg = Release|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3967,11 +4625,17 @@ Global {BA599D0A-4310-4505-91DA-6A6447B3E289}.Release|x64.ActiveCfg = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|Win32.ActiveCfg = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.All|x64.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|Win32.ActiveCfg = Debug|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Debug|x64.ActiveCfg = Debug|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release DirectSound|Win32.Build.0 = Release|Win32 + {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release DirectSound|x64.ActiveCfg = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {EED13FC7-4F81-4E6F-93DB-CDB7DF5CF959}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -3995,6 +4659,9 @@ Global {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|Win32.ActiveCfg = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.ActiveCfg = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.All|x64.Build.0 = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug DirectSound|x64.Build.0 = Debug|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4002,6 +4669,9 @@ Global {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|Win32.Build.0 = Debug|Win32 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.ActiveCfg = Debug|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Debug|x64.Build.0 = Debug|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release DirectSound|x64.Build.0 = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {3C977801-FE88-48F2-83D3-FA2EBFF6688E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4028,6 +4698,9 @@ Global {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|Win32.Build.0 = Release|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.ActiveCfg = Release|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.All|x64.Build.0 = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug DirectSound|x64.Build.0 = Debug|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4035,6 +4708,9 @@ Global {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|Win32.Build.0 = Debug|Win32 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.ActiveCfg = Debug|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Debug|x64.Build.0 = Debug|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release DirectSound|x64.ActiveCfg = Release|x64 + {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release DirectSound|x64.Build.0 = Release|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4059,6 +4735,9 @@ Global {0382E8FD-CFDC-41C0-8B03-792C7C84FC31}.Release|x64.Build.0 = Release|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|Win32.ActiveCfg = Release|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.All|x64.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug DirectSound|x64.Build.0 = Debug|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4066,6 +4745,9 @@ Global {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|Win32.Build.0 = Debug|Win32 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.ActiveCfg = Debug|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Debug|x64.Build.0 = Debug|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release DirectSound|x64.ActiveCfg = Release|x64 + {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release DirectSound|x64.Build.0 = Release|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {432DB165-1EB2-4781-A9C0-71E62610B20A}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4091,6 +4773,9 @@ Global {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.ActiveCfg = Release|Win32 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|Win32.Build.0 = Release|Win32 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.All|x64.ActiveCfg = Release|Win32 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug DirectSound|x64.Build.0 = Debug|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4098,6 +4783,9 @@ Global {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|Win32.Build.0 = Debug|Win32 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.ActiveCfg = Debug|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Debug|x64.Build.0 = Debug|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release DirectSound|x64.ActiveCfg = Release|x64 + {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release DirectSound|x64.Build.0 = Release|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {CF70F278-3364-4395-A2E1-23501C9B8AD2}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4123,6 +4811,9 @@ Global {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|Win32.ActiveCfg = Release|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.ActiveCfg = Release|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.All|x64.Build.0 = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug DirectSound|x64.Build.0 = Debug|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4130,6 +4821,9 @@ Global {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|Win32.Build.0 = Debug|Win32 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.ActiveCfg = Debug|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Debug|x64.Build.0 = Debug|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release DirectSound|x64.ActiveCfg = Release|x64 + {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release DirectSound|x64.Build.0 = Release|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4155,6 +4849,9 @@ Global {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.ActiveCfg = Release|Win32 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|Win32.Build.0 = Release|Win32 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.All|x64.ActiveCfg = Release|Win32 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug DirectSound|x64.Build.0 = Debug|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4162,6 +4859,9 @@ Global {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|Win32.Build.0 = Debug|Win32 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.ActiveCfg = Debug|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Debug|x64.Build.0 = Debug|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release DirectSound|x64.ActiveCfg = Release|x64 + {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release DirectSound|x64.Build.0 = Release|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {13DEECA0-BDD4-4744-A1A2-8EB0A44DF3D2}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4187,6 +4887,9 @@ Global {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.ActiveCfg = Release|Win32 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|Win32.Build.0 = Release|Win32 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.All|x64.ActiveCfg = Release|Win32 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug DirectSound|x64.Build.0 = Debug|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4194,6 +4897,9 @@ Global {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|Win32.Build.0 = Debug|Win32 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.ActiveCfg = Debug|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Debug|x64.Build.0 = Debug|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release DirectSound|x64.ActiveCfg = Release|x64 + {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release DirectSound|x64.Build.0 = Release|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {B5A00BFA-6083-4FAE-A097-71642D6473B5}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4219,6 +4925,9 @@ Global {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.ActiveCfg = Release|Win32 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|Win32.Build.0 = Release|Win32 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.All|x64.ActiveCfg = Release|Win32 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug DirectSound|x64.Build.0 = Debug|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4226,6 +4935,9 @@ Global {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|Win32.Build.0 = Debug|Win32 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.ActiveCfg = Debug|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Debug|x64.Build.0 = Debug|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release DirectSound|x64.Build.0 = Release|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1C320193-46A6-4B34-9C56-8AB584FC1B56}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4251,6 +4963,9 @@ Global {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.ActiveCfg = Release|Win32 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|Win32.Build.0 = Release|Win32 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.All|x64.ActiveCfg = Release|Win32 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug DirectSound|x64.Build.0 = Debug|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4258,6 +4973,9 @@ Global {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|Win32.Build.0 = Debug|Win32 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.ActiveCfg = Debug|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Debug|x64.Build.0 = Debug|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release DirectSound|x64.ActiveCfg = Release|x64 + {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release DirectSound|x64.Build.0 = Release|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {72782932-37CC-46AE-8C7F-9A7B1A6EE108}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4283,6 +5001,9 @@ Global {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.ActiveCfg = Release|Win32 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|Win32.Build.0 = Release|Win32 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.All|x64.ActiveCfg = Release|Win32 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug DirectSound|x64.Build.0 = Debug|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4290,6 +5011,9 @@ Global {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|Win32.Build.0 = Debug|Win32 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.ActiveCfg = Debug|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Debug|x64.Build.0 = Debug|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release DirectSound|x64.ActiveCfg = Release|x64 + {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release DirectSound|x64.Build.0 = Release|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {12A49562-BAB9-43A3-A21D-15B60BBB4C31}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4315,6 +5039,9 @@ Global {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.ActiveCfg = Release|Win32 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|Win32.Build.0 = Release|Win32 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.All|x64.ActiveCfg = Release|Win32 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug DirectSound|x64.Build.0 = Debug|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4322,6 +5049,9 @@ Global {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|Win32.Build.0 = Debug|Win32 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.ActiveCfg = Debug|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Debug|x64.Build.0 = Debug|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release DirectSound|x64.ActiveCfg = Release|x64 + {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release DirectSound|x64.Build.0 = Release|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {A9EDAC04-6A5F-4BA7-BC0D-CCE7B255B6EA}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4347,6 +5077,9 @@ Global {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.ActiveCfg = Release|Win32 {504B3154-7A4F-459D-9877-B951021C3F1F}.All|Win32.Build.0 = Release|Win32 {504B3154-7A4F-459D-9877-B951021C3F1F}.All|x64.ActiveCfg = Release|Win32 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug DirectSound|x64.Build.0 = Debug|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4354,6 +5087,9 @@ Global {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|Win32.Build.0 = Debug|Win32 {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.ActiveCfg = Debug|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Debug|x64.Build.0 = Debug|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release DirectSound|x64.ActiveCfg = Release|x64 + {504B3154-7A4F-459D-9877-B951021C3F1F}.Release DirectSound|x64.Build.0 = Release|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {504B3154-7A4F-459D-9877-B951021C3F1F}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4379,6 +5115,9 @@ Global {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.ActiveCfg = Release|Win32 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|Win32.Build.0 = Release|Win32 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.All|x64.ActiveCfg = Release|Win32 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug DirectSound|x64.Build.0 = Debug|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4386,6 +5125,9 @@ Global {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|Win32.Build.0 = Debug|Win32 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.ActiveCfg = Debug|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Debug|x64.Build.0 = Debug|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release DirectSound|x64.ActiveCfg = Release|x64 + {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release DirectSound|x64.Build.0 = Release|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {746F3632-5BB2-4570-9453-31D6D58A7D8E}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4411,6 +5153,9 @@ Global {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.ActiveCfg = Release|Win32 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|Win32.Build.0 = Release|Win32 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.All|x64.ActiveCfg = Release|Win32 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug DirectSound|x64.Build.0 = Debug|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4418,6 +5163,9 @@ Global {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|Win32.Build.0 = Debug|Win32 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.ActiveCfg = Debug|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Debug|x64.Build.0 = Debug|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release DirectSound|x64.ActiveCfg = Release|x64 + {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release DirectSound|x64.Build.0 = Release|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {DEB01ACB-D65F-4A62-AED9-58C1054499E9}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4443,6 +5191,9 @@ Global {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.ActiveCfg = Release|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|Win32.Build.0 = Release|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.All|x64.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -4450,6 +5201,9 @@ Global {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|Win32.Build.0 = Debug|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.ActiveCfg = Debug|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Debug|x64.Build.0 = Debug|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release DirectSound|Win32.Build.0 = Release|Win32 + {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release DirectSound|x64.ActiveCfg = Release|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {FFF82F9B-6A2B-4BE3-95D8-DC5A4FC71E19}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4475,6 +5229,9 @@ Global {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug DirectSound|x64.Build.0 = Debug|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4482,6 +5239,9 @@ Global {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release DirectSound|x64.ActiveCfg = Release|x64 + {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release DirectSound|x64.Build.0 = Release|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4507,6 +5267,9 @@ Global {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|Win32.ActiveCfg = Release Passthrough|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.ActiveCfg = Release Passthrough|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.All|x64.Build.0 = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug DirectSound|x64.Build.0 = Debug|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4514,6 +5277,9 @@ Global {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|Win32.Build.0 = Debug|Win32 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.ActiveCfg = Debug|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Debug|x64.Build.0 = Debug|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release DirectSound|Win32.ActiveCfg = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release DirectSound|x64.ActiveCfg = Release Passthrough|x64 + {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release DirectSound|x64.Build.0 = Release Passthrough|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {4D418176-3B33-47E6-A63E-01BA34ADD21C}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4539,11 +5305,17 @@ Global {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|Win32.ActiveCfg = Debug|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Debug|x64.ActiveCfg = Debug|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release DirectSound|Win32.Build.0 = Release|Win32 + {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release DirectSound|x64.ActiveCfg = Release|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4567,6 +5339,9 @@ Global {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|Win32.ActiveCfg = Release|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.ActiveCfg = Release|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.All|x64.Build.0 = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug DirectSound|x64.Build.0 = Debug|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4574,6 +5349,9 @@ Global {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|Win32.Build.0 = Debug|Win32 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.ActiveCfg = Debug|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Debug|x64.Build.0 = Debug|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release DirectSound|x64.ActiveCfg = Release|x64 + {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release DirectSound|x64.Build.0 = Release|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4599,6 +5377,9 @@ Global {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.ActiveCfg = Release|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|Win32.Build.0 = Release|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.All|x64.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 @@ -4606,6 +5387,9 @@ Global {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|Win32.Build.0 = Debug|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.ActiveCfg = Debug|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Debug|x64.Build.0 = Debug|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release DirectSound|Win32.Build.0 = Release|Win32 + {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release DirectSound|x64.ActiveCfg = Release|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {B808178B-82F0-4CF4-A2B1-921939FA24D0}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4631,6 +5415,9 @@ Global {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|Win32.ActiveCfg = Release|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.ActiveCfg = Release|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.All|x64.Build.0 = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug DirectSound|x64.Build.0 = Debug|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4638,6 +5425,9 @@ Global {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|Win32.Build.0 = Debug|Win32 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.ActiveCfg = Debug|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Debug|x64.Build.0 = Debug|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release DirectSound|x64.ActiveCfg = Release|x64 + {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release DirectSound|x64.Build.0 = Release|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {9778F1C0-09BC-4698-8EBC-BD982247209A}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4663,6 +5453,9 @@ Global {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|Win32.ActiveCfg = Release|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.ActiveCfg = Release|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.All|x64.Build.0 = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug DirectSound|x64.Build.0 = Debug|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4670,6 +5463,9 @@ Global {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|Win32.Build.0 = Debug|Win32 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.ActiveCfg = Debug|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Debug|x64.Build.0 = Debug|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release DirectSound|x64.ActiveCfg = Release|x64 + {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release DirectSound|x64.Build.0 = Release|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {AFA983D6-4569-4F88-BA94-555ED00FD9A8}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4695,6 +5491,9 @@ Global {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.ActiveCfg = Release|Win32 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|Win32.Build.0 = Release|Win32 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.All|x64.ActiveCfg = Release|Win32 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug DirectSound|x64.Build.0 = Debug|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4702,6 +5501,9 @@ Global {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|Win32.Build.0 = Debug|Win32 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.ActiveCfg = Debug|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Debug|x64.Build.0 = Debug|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release DirectSound|x64.ActiveCfg = Release|x64 + {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release DirectSound|x64.Build.0 = Release|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {56B91D01-9150-4BBF-AFA1-5B68AB991B76}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4727,6 +5529,9 @@ Global {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.ActiveCfg = Release|Win32 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|Win32.Build.0 = Release|Win32 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.All|x64.ActiveCfg = Release|Win32 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug DirectSound|x64.Build.0 = Debug|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4734,6 +5539,9 @@ Global {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|Win32.Build.0 = Debug|Win32 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.ActiveCfg = Debug|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Debug|x64.Build.0 = Debug|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release DirectSound|x64.ActiveCfg = Release|x64 + {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release DirectSound|x64.Build.0 = Release|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {990BAA76-89D3-4E38-8479-C7B28784EFC8}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4759,6 +5567,9 @@ Global {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|Win32.ActiveCfg = Release|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.ActiveCfg = Release|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.All|x64.Build.0 = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug DirectSound|x64.Build.0 = Debug|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4766,6 +5577,9 @@ Global {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|Win32.Build.0 = Debug|Win32 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.ActiveCfg = Debug|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Debug|x64.Build.0 = Debug|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release DirectSound|x64.ActiveCfg = Release|x64 + {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release DirectSound|x64.Build.0 = Release|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {1E21AFE0-6FDB-41D2-942D-863607C24B91}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4791,6 +5605,9 @@ Global {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|Win32.ActiveCfg = Release|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.ActiveCfg = Release|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.All|x64.Build.0 = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug DirectSound|x64.Build.0 = Debug|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -4798,6 +5615,9 @@ Global {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|Win32.Build.0 = Debug|Win32 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.ActiveCfg = Debug|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Debug|x64.Build.0 = Debug|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release DirectSound|x64.ActiveCfg = Release|x64 + {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release DirectSound|x64.Build.0 = Release|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {2E250296-0C08-4342-9C8A-BCBDD0E7DF65}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -4823,12 +5643,18 @@ Global {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.ActiveCfg = Release|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|Win32.Build.0 = Release|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.All|x64.ActiveCfg = Release|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.ActiveCfg = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|Win32.Build.0 = Debug|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Debug|x64.ActiveCfg = Debug|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release DirectSound|Win32.Build.0 = Release|Win32 + {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release DirectSound|x64.ActiveCfg = Release|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {401A40CD-5DB4-4E34-AC68-FA99E9FAC014}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4853,12 +5679,18 @@ Global {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.ActiveCfg = Release|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|Win32.Build.0 = Release|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.All|x64.ActiveCfg = Release|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.ActiveCfg = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|Win32.Build.0 = Debug|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Debug|x64.ActiveCfg = Debug|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D578E676-7EC8-4548-BD8B-845C635F14AD}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4883,12 +5715,18 @@ Global {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.ActiveCfg = Release|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|Win32.Build.0 = Release|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.All|x64.ActiveCfg = Release|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.ActiveCfg = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|Win32.Build.0 = Debug|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Debug|x64.ActiveCfg = Debug|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release DirectSound|Win32.Build.0 = Release|Win32 + {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release DirectSound|x64.ActiveCfg = Release|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {D331904D-A00A-4694-A5A3-FCFF64AB5DBE}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4913,12 +5751,18 @@ Global {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.ActiveCfg = Release|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|Win32.Build.0 = Release|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.All|x64.ActiveCfg = Release|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.ActiveCfg = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|Win32.Build.0 = Debug|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Debug|x64.ActiveCfg = Debug|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release DirectSound|Win32.Build.0 = Release|Win32 + {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release DirectSound|x64.ActiveCfg = Release|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {B4B62169-5AD4-4559-8707-3D933AC5DB39}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4943,12 +5787,18 @@ Global {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.ActiveCfg = Release|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|Win32.Build.0 = Release|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.All|x64.ActiveCfg = Release|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.ActiveCfg = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|Win32.Build.0 = Debug|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Debug|x64.ActiveCfg = Debug|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release DirectSound|Win32.Build.0 = Release|Win32 + {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release DirectSound|x64.ActiveCfg = Release|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {25BD39B1-C8BF-4676-A738-9CABD9C6BC79}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -4973,11 +5823,17 @@ Global {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|Win32.ActiveCfg = Release|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|Win32.Build.0 = Release|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.All|x64.ActiveCfg = Release|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|Win32.ActiveCfg = Debug|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Debug|x64.ActiveCfg = Debug|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release DirectSound|Win32.Build.0 = Release|Win32 + {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release DirectSound|x64.ActiveCfg = Release|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {B889A18E-70A7-44B5-B2C9-47798D4F43B3}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5001,12 +5857,18 @@ Global {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.Build.0 = Release|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release DirectSound|Win32.Build.0 = Release|Win32 + {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release DirectSound|x64.ActiveCfg = Release|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {23B4D303-79FC-49E0-89E2-2280E7E28940}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5031,12 +5893,18 @@ Global {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.ActiveCfg = Release|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|Win32.Build.0 = Release|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.All|x64.ActiveCfg = Release|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.ActiveCfg = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|Win32.Build.0 = Debug|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Debug|x64.ActiveCfg = Debug|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release DirectSound|Win32.Build.0 = Release|Win32 + {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release DirectSound|x64.ActiveCfg = Release|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {1CED5987-A529-46DC-B30F-870D85FF9C94}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5061,6 +5929,9 @@ Global {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|Win32.ActiveCfg = Release|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.ActiveCfg = Release|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.All|x64.Build.0 = Release|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug DirectSound|Win32.ActiveCfg = Debug|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug DirectSound|x64.ActiveCfg = Debug|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug DirectSound|x64.Build.0 = Debug|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug_RTL_dll|x64.ActiveCfg = Debug|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug_RTL_dll|x64.Build.0 = Debug|x64 @@ -5068,6 +5939,9 @@ Global {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|Win32.Build.0 = Debug|Win32 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.ActiveCfg = Debug|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Debug|x64.Build.0 = Debug|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release DirectSound|Win32.ActiveCfg = Release|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release DirectSound|x64.ActiveCfg = Release|x64 + {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release DirectSound|x64.Build.0 = Release|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|x64 {C13CC324-0032-4492-9A30-310A6BD64FF5}.Release_Dynamic_SSE|x64.Build.0 = Release|x64 @@ -5093,12 +5967,18 @@ Global {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.ActiveCfg = Release|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|Win32.Build.0 = Release|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.All|x64.ActiveCfg = Release|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.ActiveCfg = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|Win32.Build.0 = Debug|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Debug|x64.ActiveCfg = Debug|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release DirectSound|Win32.Build.0 = Release|Win32 + {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release DirectSound|x64.ActiveCfg = Release|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {652AD5F7-8488-489F-AAD0-7FBE064703B6}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5123,12 +6003,18 @@ Global {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.ActiveCfg = Release|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|Win32.Build.0 = Release|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.All|x64.ActiveCfg = Release|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.ActiveCfg = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|Win32.Build.0 = Debug|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Debug|x64.ActiveCfg = Debug|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release DirectSound|Win32.Build.0 = Release|Win32 + {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release DirectSound|x64.ActiveCfg = Release|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {019DBD2A-273D-4BA4-BF86-B5EFE2ED76B1}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5153,12 +6039,18 @@ Global {BED7539C-0099-4A14-AD5D-30828F15A171}.All|Win32.ActiveCfg = Release|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.All|Win32.Build.0 = Release|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.All|x64.ActiveCfg = Release|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|Win32.ActiveCfg = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|Win32.Build.0 = Debug|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Debug|x64.ActiveCfg = Debug|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Release DirectSound|Win32.Build.0 = Release|Win32 + {BED7539C-0099-4A14-AD5D-30828F15A171}.Release DirectSound|x64.ActiveCfg = Release|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {BED7539C-0099-4A14-AD5D-30828F15A171}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5183,6 +6075,9 @@ Global {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.All|Win32.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.All|Win32.Build.0 = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.All|x64.ActiveCfg = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug DirectSound|Win32.ActiveCfg = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug DirectSound|Win32.Build.0 = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug DirectSound|x64.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug_RTL_dll|Win32.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug_RTL_dll|Win32.Build.0 = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug_RTL_dll|x64.ActiveCfg = All|Win32 @@ -5190,6 +6085,9 @@ Global {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug|Win32.Build.0 = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug|x64.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Debug|x64.Build.0 = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release DirectSound|Win32.ActiveCfg = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release DirectSound|Win32.Build.0 = All|Win32 + {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release DirectSound|x64.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release_Dynamic_SSE|Win32.ActiveCfg = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release_Dynamic_SSE|Win32.Build.0 = All|Win32 {9D04A840-CE18-4FF5-A6D3-0A2BB92FF2E6}.Release_Dynamic_SSE|x64.ActiveCfg = All|Win32 @@ -5215,6 +6113,9 @@ Global {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|Win32.Build.0 = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.All|x64.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug DirectSound|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug DirectSound|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug DirectSound|x64.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug_RTL_dll|Win32.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug_RTL_dll|Win32.Build.0 = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug_RTL_dll|x64.ActiveCfg = All|Win32 @@ -5222,6 +6123,9 @@ Global {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|Win32.Build.0 = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Debug|x64.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release DirectSound|Win32.ActiveCfg = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release DirectSound|Win32.Build.0 = All|Win32 + {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release DirectSound|x64.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release_Dynamic_SSE|Win32.ActiveCfg = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release_Dynamic_SSE|Win32.Build.0 = All|Win32 {85F0CF8C-C7AB-48F6-BA19-CC94CF87F981}.Release_Dynamic_SSE|x64.ActiveCfg = All|Win32 @@ -5247,12 +6151,18 @@ Global {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|Win32.Build.0 = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.All|x64.ActiveCfg = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug DirectSound|Win32.ActiveCfg = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug DirectSound|Win32.Build.0 = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug DirectSound|x64.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug_RTL_dll|Win32.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug_RTL_dll|Win32.Build.0 = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug_RTL_dll|x64.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug|Win32.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug|Win32.Build.0 = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Debug|x64.ActiveCfg = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release DirectSound|Win32.ActiveCfg = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release DirectSound|Win32.Build.0 = All|Win32 + {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release DirectSound|x64.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release_Dynamic_SSE|Win32.ActiveCfg = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release_Dynamic_SSE|Win32.Build.0 = All|Win32 {EDDB8AB9-C53E-44C0-A620-0E86C2CBD5D5}.Release_Dynamic_SSE|x64.ActiveCfg = All|Win32 @@ -5277,12 +6187,18 @@ Global {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.All|Win32.ActiveCfg = Release|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.All|Win32.Build.0 = Release|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.All|x64.ActiveCfg = Release|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug|Win32.ActiveCfg = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug|Win32.Build.0 = Debug|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Debug|x64.ActiveCfg = Debug|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release DirectSound|Win32.Build.0 = Release|Win32 + {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release DirectSound|x64.ActiveCfg = Release|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {3970BCDE-BE1A-4CF3-A65F-5264BA2E47B5}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5307,12 +6223,18 @@ Global {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.All|Win32.ActiveCfg = Release|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.All|Win32.Build.0 = Release|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.All|x64.ActiveCfg = Release|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug|Win32.ActiveCfg = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug|Win32.Build.0 = Debug|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Debug|x64.ActiveCfg = Debug|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release DirectSound|Win32.Build.0 = Release|Win32 + {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release DirectSound|x64.ActiveCfg = Release|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {B1E7E876-347F-4DC9-9BEA-D1AFBD9DFF8A}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5337,12 +6259,18 @@ Global {1BDAB935-27DC-47E3-95EA-17E024D39C31}.All|Win32.ActiveCfg = Release|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.All|Win32.Build.0 = Release|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.All|x64.ActiveCfg = Release|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug|Win32.ActiveCfg = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug|Win32.Build.0 = Debug|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Debug|x64.ActiveCfg = Debug|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release DirectSound|Win32.Build.0 = Release|Win32 + {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release DirectSound|x64.ActiveCfg = Release|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {1BDAB935-27DC-47E3-95EA-17E024D39C31}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5367,12 +6295,18 @@ Global {97D25665-34CD-4E0C-96E7-88F0795B8883}.All|Win32.ActiveCfg = Release|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.All|Win32.Build.0 = Release|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.All|x64.ActiveCfg = Release|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug|Win32.ActiveCfg = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug|Win32.Build.0 = Debug|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Debug|x64.ActiveCfg = Debug|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release DirectSound|Win32.Build.0 = Release|Win32 + {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release DirectSound|x64.ActiveCfg = Release|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {97D25665-34CD-4E0C-96E7-88F0795B8883}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5397,12 +6331,18 @@ Global {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.ActiveCfg = Release|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|Win32.Build.0 = Release|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.All|x64.ActiveCfg = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug_RTL_dll|Win32.ActiveCfg = Debug_RTL_dll|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug_RTL_dll|Win32.Build.0 = Debug_RTL_dll|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug_RTL_dll|x64.ActiveCfg = Debug_RTL_dll|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.ActiveCfg = Debug|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|Win32.Build.0 = Debug|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Debug|x64.ActiveCfg = Debug|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release DirectSound|Win32.Build.0 = Release|Win32 + {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release DirectSound|x64.ActiveCfg = Release|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release_Dynamic_SSE|Win32.ActiveCfg = Release_Dynamic|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release_Dynamic_SSE|Win32.Build.0 = Release_Dynamic|Win32 {E972C52F-9E85-4D65-B19C-031E511E9DB4}.Release_Dynamic_SSE|x64.ActiveCfg = Release_Dynamic|Win32 @@ -5427,12 +6367,18 @@ Global {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.ActiveCfg = Release|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|Win32.Build.0 = Release|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.All|x64.ActiveCfg = Release|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.ActiveCfg = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|Win32.Build.0 = Debug|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Debug|x64.ActiveCfg = Debug|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release DirectSound|Win32.Build.0 = Release|Win32 + {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release DirectSound|x64.ActiveCfg = Release|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release_Dynamic_SSE|Win32.ActiveCfg = Release_Dynamic_SSE|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release_Dynamic_SSE|Win32.Build.0 = Release_Dynamic_SSE|Win32 {03207781-0D1C-4DB3-A71D-45C608F28DBD}.Release_Dynamic_SSE|x64.ActiveCfg = Release_Dynamic_SSE|Win32 @@ -5457,12 +6403,18 @@ Global {5BE9A596-F11F-4379-928C-412F81AE182B}.All|Win32.ActiveCfg = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.All|Win32.Build.0 = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.All|x64.ActiveCfg = Release|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug|Win32.ActiveCfg = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug|Win32.Build.0 = Debug|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Debug|x64.ActiveCfg = Debug|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Release DirectSound|Win32.Build.0 = Release|Win32 + {5BE9A596-F11F-4379-928C-412F81AE182B}.Release DirectSound|x64.ActiveCfg = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 @@ -5484,6 +6436,186 @@ Global {5BE9A596-F11F-4379-928C-412F81AE182B}.Release|Win32.ActiveCfg = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Release|Win32.Build.0 = Release|Win32 {5BE9A596-F11F-4379-928C-412F81AE182B}.Release|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.All|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.All|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.All|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug|Win32.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug|Win32.Build.0 = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Debug|x64.ActiveCfg = Debug|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release DirectSound|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release DirectSound|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Dynamic|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_RTL_dll|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_RTL_dll|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_RTL_dll|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE2|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_SSE2|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Static_SSE|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Static_SSE|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release_Static_SSE|x64.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|Win32.ActiveCfg = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|Win32.Build.0 = Release|Win32 + {C0779BCC-C037-4F58-B890-EF37BA956B3C}.Release|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.All|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug DirectSound|Win32.ActiveCfg = Debug DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug DirectSound|Win32.Build.0 = Debug DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug DirectSound|x64.ActiveCfg = Debug DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.ActiveCfg = Debug DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|Win32.Build.0 = Debug DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Debug|x64.ActiveCfg = Debug|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release DirectSound|Win32.ActiveCfg = Release DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release DirectSound|Win32.Build.0 = Release DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release DirectSound|x64.ActiveCfg = Release DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Dynamic|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_RTL_dll|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_SSE2|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|Win32.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|Win32.Build.0 = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release_Static_SSE|x64.ActiveCfg = Release|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.ActiveCfg = Release DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|Win32.Build.0 = Release DirectSound|Win32 + {0A18A071-125E-442F-AFF7-A3F68ABECF99}.Release|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.All|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|Win32.Build.0 = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Debug|x64.ActiveCfg = Debug|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release DirectSound|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release DirectSound|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Dynamic|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_RTL_dll|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_RTL_dll|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_RTL_dll|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE2|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_SSE2|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Static_SSE|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Static_SSE|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release_Static_SSE|x64.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.ActiveCfg = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|Win32.Build.0 = Release|Win32 + {13077E43-E5DF-4EF6-9EB1-2A0B22E8DFAF}.Release|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.All|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|Win32.Build.0 = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Debug|x64.ActiveCfg = Debug|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release DirectSound|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release DirectSound|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Dynamic|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_RTL_dll|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_RTL_dll|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_RTL_dll|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE2|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_SSE2|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Static_SSE|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Static_SSE|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release_Static_SSE|x64.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.ActiveCfg = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|Win32.Build.0 = Release|Win32 + {AB03E82B-48B1-4374-B32A-A1AF83DDC6C2}.Release|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.All|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug DirectSound|Win32.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug DirectSound|Win32.Build.0 = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug DirectSound|x64.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug_RTL_dll|Win32.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug_RTL_dll|Win32.Build.0 = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug_RTL_dll|x64.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|Win32.Build.0 = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Debug|x64.ActiveCfg = Debug|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release DirectSound|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release DirectSound|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release DirectSound|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic_SSE|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic_SSE|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic_SSE|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Dynamic|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_RTL_dll|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_RTL_dll|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_RTL_dll|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE2|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE2|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_SSE2|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Static_SSE|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Static_SSE|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release_Static_SSE|x64.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.ActiveCfg = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|Win32.Build.0 = Release|Win32 + {9B9D2551-D6BD-4F20-8BE5-DE30E154A064}.Release|x64.ActiveCfg = Release|Win32 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE From 733db22f1dde5fe3a801da78030ccd6e1d67ef1c Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Mon, 18 Aug 2014 21:39:56 +0200 Subject: [PATCH 20/47] testing new hook FS-6677 #new_state #comment this is a test --- src/mod/endpoints/mod_skypopen/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_skypopen/README b/src/mod/endpoints/mod_skypopen/README index 90314cda68..c84b9993cd 100644 --- a/src/mod/endpoints/mod_skypopen/README +++ b/src/mod/endpoints/mod_skypopen/README @@ -1,4 +1,4 @@ -Skypopen, Skype Endpoint and Trunk +Skypopen, Skype Endpoint and Trunk All documentation on compiling, using, configuring, tricks and tweaks, possible problems at: From c086f9647b07a9e3de56dee6bc160eb12303786a Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Mon, 18 Aug 2014 21:46:40 +0200 Subject: [PATCH 21/47] testing new hook TKT-6677 #Waiting #comment this is a test --- src/mod/endpoints/mod_skypopen/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_skypopen/README b/src/mod/endpoints/mod_skypopen/README index c84b9993cd..90314cda68 100644 --- a/src/mod/endpoints/mod_skypopen/README +++ b/src/mod/endpoints/mod_skypopen/README @@ -1,4 +1,4 @@ -Skypopen, Skype Endpoint and Trunk +Skypopen, Skype Endpoint and Trunk All documentation on compiling, using, configuring, tricks and tweaks, possible problems at: From eccf505a3bf6550edd0f50038612b756eb48a576 Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Mon, 18 Aug 2014 21:55:03 +0200 Subject: [PATCH 22/47] testing new hook FS-6677 #Waiting #comment this is a test --- src/mod/endpoints/mod_skypopen/README | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/mod/endpoints/mod_skypopen/README b/src/mod/endpoints/mod_skypopen/README index 90314cda68..c84b9993cd 100644 --- a/src/mod/endpoints/mod_skypopen/README +++ b/src/mod/endpoints/mod_skypopen/README @@ -1,4 +1,4 @@ -Skypopen, Skype Endpoint and Trunk +Skypopen, Skype Endpoint and Trunk All documentation on compiling, using, configuring, tricks and tweaks, possible problems at: From 7bbdbadb42d4eb2e35ec03ecbb9a6753a35a7294 Mon Sep 17 00:00:00 2001 From: Anthony Minessale Date: Tue, 19 Aug 2014 03:25:24 +0500 Subject: [PATCH 23/47] tweak some cid display issues --- html5/verto/demo/js/verto-min.js | 3 +- html5/verto/js/src/jquery.verto.js | 10 ++++-- src/mod/endpoints/mod_verto/mod_verto.c | 46 +++++++++++-------------- src/switch_ivr_bridge.c | 4 ++- 4 files changed, 33 insertions(+), 30 deletions(-) diff --git a/html5/verto/demo/js/verto-min.js b/html5/verto/demo/js/verto-min.js index c42c4c88c1..01ee8b57a4 100644 --- a/html5/verto/demo/js/verto-min.js +++ b/html5/verto/demo/js/verto-min.js @@ -188,7 +188,8 @@ if(confMan.params.laData.modChannel){confMan.verto.unsubscribe(confMan.params.la if(confMan.params.mainModID){$(confMan.params.mainModID).html("");}} $.verto.dialog=function(direction,verto,params){var dialog=this;dialog.params=$.extend({useVideo:verto.options.useVideo,useStereo:verto.options.useStereo,tag:verto.options.tag,login:verto.options.login},params);dialog.verto=verto;dialog.direction=direction;dialog.lastState=null;dialog.state=dialog.lastState=$.verto.enum.state.new;dialog.callbacks=verto.callbacks;dialog.answered=false;dialog.attach=params.attach||false;if(dialog.params.callID){dialog.callID=dialog.params.callID;}else{dialog.callID=dialog.params.callID=generateGUID();} if(dialog.params.tag){dialog.audioStream=document.getElementById(dialog.params.tag);if(dialog.params.useVideo){dialog.videoStream=dialog.audioStream;}} -dialog.verto.dialogs[dialog.callID]=dialog;var RTCcallbacks={};if(dialog.direction==$.verto.enum.direction.inbound){dialog.params.remote_caller_id_name=dialog.params.caller_id_name;dialog.params.remote_caller_id_number=dialog.params.caller_id_number;if(!dialog.params.remote_caller_id_name){dialog.params.remote_caller_id_name="Nobody";} +dialog.verto.dialogs[dialog.callID]=dialog;var RTCcallbacks={};if(dialog.direction==$.verto.enum.direction.inbound){if(dialog.params.display_direction==="outbound"){dialog.params.remote_caller_id_name=dialog.params.caller_id_name;dialog.params.remote_caller_id_number=dialog.params.caller_id_number;}else{dialog.params.remote_caller_id_name=dialog.params.callee_id_name;dialog.params.remote_caller_id_number=dialog.params.callee_id_number;} +if(!dialog.params.remote_caller_id_name){dialog.params.remote_caller_id_name="Nobody";} if(!dialog.params.remote_caller_id_number){dialog.params.remote_caller_id_number="UNKNOWN";} RTCcallbacks.onMessage=function(rtc,msg){console.debug(msg);};RTCcallbacks.onAnswerSDP=function(rtc,sdp){console.error("answer sdp",sdp);};}else{dialog.params.remote_caller_id_name="Outbound Call";dialog.params.remote_caller_id_number=dialog.params.destination_number;} RTCcallbacks.onICESDP=function(rtc){if(rtc.type=="offer"){console.log("offer",rtc.mediaData.SDP);dialog.setState($.verto.enum.state.requesting);dialog.sendMethod("verto.invite",{sdp:rtc.mediaData.SDP});}else{dialog.setState($.verto.enum.state.answering);dialog.sendMethod(dialog.attach?"verto.attach":"verto.answer",{sdp:dialog.rtc.mediaData.SDP});}};RTCcallbacks.onICE=function(rtc){if(rtc.type=="offer"){console.log("offer",rtc.mediaData.candidate);return;}};RTCcallbacks.onError=function(e){console.error("ERROR:",e);dialog.hangup();};dialog.rtc=new $.FSRTC({callbacks:RTCcallbacks,useVideo:dialog.videoStream,useAudio:dialog.audioStream,useStereo:dialog.params.useStereo,videoParams:verto.options.videoParams,iceServers:verto.options.iceServers});dialog.rtc.verto=dialog.verto;if(dialog.direction==$.verto.enum.direction.inbound){if(dialog.attach){dialog.answer();}else{dialog.ring();}}};$.verto.dialog.prototype.invite=function(){var dialog=this;dialog.rtc.call();};$.verto.dialog.prototype.sendMethod=function(method,obj){var dialog=this;obj.dialogParams={};for(var i in dialog.params){if(i=="sdp"&&method!="verto.invite"&&method!="verto.attach"){continue;} diff --git a/html5/verto/js/src/jquery.verto.js b/html5/verto/js/src/jquery.verto.js index 4530703257..c09d4f5756 100644 --- a/html5/verto/js/src/jquery.verto.js +++ b/html5/verto/js/src/jquery.verto.js @@ -1430,9 +1430,13 @@ var RTCcallbacks = {}; if (dialog.direction == $.verto.enum.direction.inbound) { - - dialog.params.remote_caller_id_name = dialog.params.caller_id_name; - dialog.params.remote_caller_id_number = dialog.params.caller_id_number; + if (dialog.params.display_direction === "outbound") { + dialog.params.remote_caller_id_name = dialog.params.caller_id_name; + dialog.params.remote_caller_id_number = dialog.params.caller_id_number; + } else { + dialog.params.remote_caller_id_name = dialog.params.callee_id_name; + dialog.params.remote_caller_id_number = dialog.params.callee_id_number; + } if (!dialog.params.remote_caller_id_name) { dialog.params.remote_caller_id_name = "Nobody"; diff --git a/src/mod/endpoints/mod_verto/mod_verto.c b/src/mod/endpoints/mod_verto/mod_verto.c index 0850cce948..2782380ba7 100644 --- a/src/mod/endpoints/mod_verto/mod_verto.c +++ b/src/mod/endpoints/mod_verto/mod_verto.c @@ -963,33 +963,25 @@ static switch_bool_t check_auth(jsock_t *jsock, cJSON *params, int *code, char * static void set_call_params(cJSON *params, verto_pvt_t *tech_pvt) { const char *caller_id_name = NULL; const char *caller_id_number = NULL; + const char *callee_id_name = NULL; + const char *callee_id_number = NULL; + + caller_id_name = switch_channel_get_variable(tech_pvt->channel, "caller_id_name"); + caller_id_number = switch_channel_get_variable(tech_pvt->channel, "caller_id_number"); + callee_id_name = switch_channel_get_variable(tech_pvt->channel, "callee_id_name"); + callee_id_number = switch_channel_get_variable(tech_pvt->channel, "callee_id_number"); + + if (caller_id_name) cJSON_AddItemToObject(params, "caller_id_name", cJSON_CreateString(caller_id_name)); + if (caller_id_number) cJSON_AddItemToObject(params, "caller_id_number", cJSON_CreateString(caller_id_number)); + + if (callee_id_name) cJSON_AddItemToObject(params, "callee_id_name", cJSON_CreateString(callee_id_name)); + if (callee_id_number) cJSON_AddItemToObject(params, "callee_id_number", cJSON_CreateString(callee_id_number)); - if (switch_channel_outbound_display(tech_pvt->channel)) { - caller_id_name = switch_channel_get_variable(tech_pvt->channel, "caller_id_name"); - caller_id_number = switch_channel_get_variable(tech_pvt->channel, "caller_id_number"); - } else { - caller_id_name = switch_channel_get_variable(tech_pvt->channel, "verto_remote_caller_id_name"); - caller_id_number = switch_channel_get_variable(tech_pvt->channel, "verto_remote_caller_id_number"); + cJSON_AddItemToObject(params, "display_direction", + cJSON_CreateString(switch_channel_direction(tech_pvt->channel) == SWITCH_CALL_DIRECTION_OUTBOUND ? "outbound" : "inbound")); - if (!caller_id_name) { - caller_id_name = switch_channel_get_variable(tech_pvt->channel, "callee_id_name"); - } - if (!caller_id_number) { - caller_id_number = switch_channel_get_variable(tech_pvt->channel, "callee_id_number"); - } - } - if (zstr(caller_id_name)) { - caller_id_name = "Outbound Call"; - } - - if (zstr(caller_id_number)) { - caller_id_number = switch_channel_get_variable(tech_pvt->channel, "destination_number"); - } - - cJSON_AddItemToObject(params, "caller_id_name", cJSON_CreateString(caller_id_name)); - cJSON_AddItemToObject(params, "caller_id_number", cJSON_CreateString(caller_id_number)); } static jsock_t *get_jsock(const char *uuid) @@ -1655,10 +1647,10 @@ static switch_status_t verto_on_init(switch_core_session_t *session) { switch_status_t status = SWITCH_STATUS_SUCCESS; verto_pvt_t *tech_pvt = switch_core_session_get_private_class(session, SWITCH_PVT_SECONDARY); - + if (switch_channel_test_flag(tech_pvt->channel, CF_RECOVERING_BRIDGE) || switch_channel_test_flag(tech_pvt->channel, CF_RECOVERING)) { int tries = 120; - + switch_core_session_clear_crypto(session); while(--tries > 0) { @@ -1883,8 +1875,12 @@ static switch_status_t messagehook (switch_core_session_t *session, switch_core_ if (name || number) { jmsg = jrpc_new_req("verto.display", tech_pvt->call_id, ¶ms); + switch_ivr_eavesdrop_update_display(session, name, number); + switch_channel_set_variable(tech_pvt->channel, "last_sent_display_name", name); + switch_channel_set_variable(tech_pvt->channel, "last_sent_display_number", number); cJSON_AddItemToObject(params, "display_name", cJSON_CreateString(name)); cJSON_AddItemToObject(params, "display_number", cJSON_CreateString(number)); + set_call_params(params, tech_pvt); jsock_queue_event(jsock, &jmsg, SWITCH_TRUE); } diff --git a/src/switch_ivr_bridge.c b/src/switch_ivr_bridge.c index 9c238ff16a..360223c30f 100644 --- a/src/switch_ivr_bridge.c +++ b/src/switch_ivr_bridge.c @@ -1691,7 +1691,9 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_uuid_bridge(const char *originator_uu if (switch_channel_direction(originator_channel) == SWITCH_CALL_DIRECTION_OUTBOUND && !switch_channel_test_flag(originator_channel, CF_DIALPLAN)) { - switch_channel_flip_cid(originator_channel); + if (!switch_channel_test_flag(originator_channel, CF_RECOVERING_BRIDGE)) { + switch_channel_flip_cid(originator_channel); + } switch_channel_set_flag(originator_channel, CF_DIALPLAN); } From 64060c7dbdc195da42f97ae7a6983a9e0ca881a6 Mon Sep 17 00:00:00 2001 From: Stan Gor Date: Tue, 19 Aug 2014 11:54:09 -0700 Subject: [PATCH 24/47] Add sofia gateway parameter "destination-prefix" FS-5497 add sofia gateway parameter destination-prefix in case you need to send Invites to your provider with prefix only to this gateway --- src/mod/endpoints/mod_sofia/mod_sofia.c | 4 ++-- src/mod/endpoints/mod_sofia/mod_sofia.h | 1 + src/mod/endpoints/mod_sofia/sofia.c | 5 +++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.c b/src/mod/endpoints/mod_sofia/mod_sofia.c index 0dca2d700f..33f4e0f855 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.c +++ b/src/mod/endpoints/mod_sofia/mod_sofia.c @@ -4319,9 +4319,9 @@ static switch_call_cause_t sofia_outgoing_channel(switch_core_session_t *session } if (!strchr(dest, '@')) { - tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s@%s", dest, sofia_glue_strip_proto(gateway_ptr->register_proxy)); + tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s@%s", gateway_ptr->destination_prefix, dest, sofia_glue_strip_proto(gateway_ptr->register_proxy)); } else { - tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s", dest); + tech_pvt->dest = switch_core_session_sprintf(nsession, "sip:%s%s", gateway_ptr->destination_prefix, dest); } if ((host = switch_core_session_strdup(nsession, tech_pvt->dest))) { diff --git a/src/mod/endpoints/mod_sofia/mod_sofia.h b/src/mod/endpoints/mod_sofia/mod_sofia.h index da9c2c4122..577ff07bbc 100644 --- a/src/mod/endpoints/mod_sofia/mod_sofia.h +++ b/src/mod/endpoints/mod_sofia/mod_sofia.h @@ -478,6 +478,7 @@ struct sofia_gateway { char *register_context; char *expires_str; char *register_url; + char *destination_prefix; char *from_domain; sofia_transport_t register_transport; uint32_t freq; diff --git a/src/mod/endpoints/mod_sofia/sofia.c b/src/mod/endpoints/mod_sofia/sofia.c index befca00ab1..79339e9781 100644 --- a/src/mod/endpoints/mod_sofia/sofia.c +++ b/src/mod/endpoints/mod_sofia/sofia.c @@ -3315,6 +3315,7 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag) gateway->ob_calls = 0; gateway->ib_failed_calls = 0; gateway->ob_failed_calls = 0; + gateway->destination_prefix = ""; if ((x_params = switch_xml_child(gateway_tag, "variables"))) { param = switch_xml_child(x_params, "variable"); @@ -3416,6 +3417,10 @@ static void parse_gateways(sofia_profile_t *profile, switch_xml_t gateways_tag) outbound_proxy = val; } else if (!strcmp(var, "distinct-to")) { distinct_to = switch_true(val); + } else if (!strcmp(var, "destination-prefix")) { + if (!zstr(val)) { + gateway->destination_prefix = switch_core_strdup(gateway->pool, val); + } } else if (!strcmp(var, "rfc-5626")) { rfc_5626 = switch_true(val); } else if (!strcmp(var, "reg-id")) { From f2ca3c5211815645425a98466d65c02d19d0f8b8 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Wed, 20 Aug 2014 10:22:27 +0000 Subject: [PATCH 25/47] Decode params to `curl_sendfile` `curl_sendfile` generates a multipart message with Content-Type: multipart/form-data with no separate Content-Type headers in the parts for each non-file argument. These parts therefore default to text/plain. However, prior to this commit, we were putting the URL encoded POST data into these parts, which is not correct. We should be putting raw text into the parts. With this commit, we urldecode each argument key and value before composing the multipart message. See: http://www.w3.org/TR/html401/interact/forms.html#h-17.13.4.2 --- src/mod/applications/mod_curl/mod_curl.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/mod/applications/mod_curl/mod_curl.c b/src/mod/applications/mod_curl/mod_curl.c index 03c0eda5c8..61f9a78d2a 100644 --- a/src/mod/applications/mod_curl/mod_curl.c +++ b/src/mod/applications/mod_curl/mod_curl.c @@ -400,8 +400,11 @@ static void http_sendfile_initialize_curl(http_sendfile_data_t *http_data) char *argv2[4] = { 0 }; uint32_t argc2 = switch_separate_string(argv[count], '=', argv2, (sizeof(argv2) / sizeof(argv2[0]))); - if(argc2 == 2) + if(argc2 == 2) { + switch_url_decode(argv2[0]); + switch_url_decode(argv2[1]); curl_formadd(&http_data->formpost, &http_data->lastptr, CURLFORM_COPYNAME, argv2[0], CURLFORM_COPYCONTENTS, argv2[1], CURLFORM_END); + } } } From 84bc50e4adedb2c3fbded2c854692558ce4eadb5 Mon Sep 17 00:00:00 2001 From: Nathan Neulinger Date: Wed, 20 Aug 2014 14:32:02 -0500 Subject: [PATCH 26/47] mod_skinny: fix potential buffer size issue CID: 1214145 1214146 --- src/mod/endpoints/mod_skinny/mod_skinny.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.c b/src/mod/endpoints/mod_skinny/mod_skinny.c index a3970dd5c0..fe7e9fa848 100644 --- a/src/mod/endpoints/mod_skinny/mod_skinny.c +++ b/src/mod/endpoints/mod_skinny/mod_skinny.c @@ -2023,7 +2023,7 @@ switch_status_t skinny_profile_set(skinny_profile_t *profile, const char *var, c } else if (!strcasecmp(var, "digit-timeout")) { profile->digit_timeout = atoi(val); } else if (!strcasecmp(var, "date-format")) { - strncpy(profile->date_format, val, 6); + switch_copy_string(profile->date_format, val, 6); } else if (!strcasecmp(var, "odbc-dsn") && !zstr(val)) { profile->odbc_dsn = switch_core_strdup(profile->pool, val); } else if (!strcasecmp(var, "debug")) { @@ -2244,7 +2244,7 @@ static switch_status_t load_skinny_config(void) char *val = (char *) switch_xml_attr_soft(param, "value"); if (!strcasecmp(var, "firmware-version")) { - strncpy(params->firmware_version, val, 16); + switch_copy_string(params->firmware_version, val, 16); } } /* param */ switch_core_hash_insert(profile->device_type_params_hash, id_str, params); From 5f6db1db3ed16d3383dc566eb070a3b956065d70 Mon Sep 17 00:00:00 2001 From: Nathan Neulinger Date: Wed, 20 Aug 2014 14:50:46 -0500 Subject: [PATCH 27/47] mod_skinny: roll back, these are not expected to be null terminated, they are fixed length --- src/mod/endpoints/mod_skinny/mod_skinny.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/mod/endpoints/mod_skinny/mod_skinny.c b/src/mod/endpoints/mod_skinny/mod_skinny.c index fe7e9fa848..5f6bf1f14e 100644 --- a/src/mod/endpoints/mod_skinny/mod_skinny.c +++ b/src/mod/endpoints/mod_skinny/mod_skinny.c @@ -2023,7 +2023,7 @@ switch_status_t skinny_profile_set(skinny_profile_t *profile, const char *var, c } else if (!strcasecmp(var, "digit-timeout")) { profile->digit_timeout = atoi(val); } else if (!strcasecmp(var, "date-format")) { - switch_copy_string(profile->date_format, val, 6); + memcpy(profile->date_format, val, 6); } else if (!strcasecmp(var, "odbc-dsn") && !zstr(val)) { profile->odbc_dsn = switch_core_strdup(profile->pool, val); } else if (!strcasecmp(var, "debug")) { @@ -2244,7 +2244,7 @@ static switch_status_t load_skinny_config(void) char *val = (char *) switch_xml_attr_soft(param, "value"); if (!strcasecmp(var, "firmware-version")) { - switch_copy_string(params->firmware_version, val, 16); + strncpy(params->firmware_version, val, 16); } } /* param */ switch_core_hash_insert(profile->device_type_params_hash, id_str, params); From 0ba1b1efea26108ade6cc0f7d4382c9fb1e8b40a Mon Sep 17 00:00:00 2001 From: Chris Rienzo Date: Thu, 21 Aug 2014 11:06:13 -0400 Subject: [PATCH 28/47] mod_graylog2: channel variables can now be automatically added as gelf additional fields in logs w/ session UUID --- .../conf/autoload_configs/graylog2.conf.xml | 7 ++ src/mod/loggers/mod_graylog2/mod_graylog2.c | 83 +++++++++++++++---- 2 files changed, 72 insertions(+), 18 deletions(-) diff --git a/src/mod/loggers/mod_graylog2/conf/autoload_configs/graylog2.conf.xml b/src/mod/loggers/mod_graylog2/conf/autoload_configs/graylog2.conf.xml index 62320bb77c..76623e13bd 100644 --- a/src/mod/loggers/mod_graylog2/conf/autoload_configs/graylog2.conf.xml +++ b/src/mod/loggers/mod_graylog2/conf/autoload_configs/graylog2.conf.xml @@ -11,5 +11,12 @@ + + + + + + + diff --git a/src/mod/loggers/mod_graylog2/mod_graylog2.c b/src/mod/loggers/mod_graylog2/mod_graylog2.c index a65ac0281a..e799eda2cf 100644 --- a/src/mod/loggers/mod_graylog2/mod_graylog2.c +++ b/src/mod/loggers/mod_graylog2/mod_graylog2.c @@ -51,6 +51,8 @@ static struct { switch_thread_rwlock_t *shutdown_rwlock; /** log delivery queue */ switch_queue_t *log_queue; + /** Fields to automatically add to session logs */ + switch_event_t *session_fields; } globals; /** @@ -85,6 +87,7 @@ static char *to_gelf(const switch_log_node_t *node, switch_log_level_t log_level char *parsed_full_message = NULL; char *field_name = NULL; switch_event_t *log_fields = NULL; + switch_core_session_t *session = NULL; cJSON_AddItemToObject(gelf, "version", cJSON_CreateString("1.1")); if ((hostname = switch_core_get_variable("hostname")) && !zstr(hostname)) { @@ -117,27 +120,47 @@ static char *to_gelf(const switch_log_node_t *node, switch_log_level_t log_level full_message++; } - /* parse list of fields, if any */ - if (strncmp(full_message, "LOG_FIELDS", 10) == 0) { - if (switch_event_create_brackets(full_message+10, '[', ']', ',', &log_fields, &parsed_full_message, SWITCH_TRUE) == SWITCH_STATUS_SUCCESS) { - - switch_event_header_t *hp; - for (hp = log_fields->headers; hp; hp = hp->next) { - if (!zstr(hp->name) && !zstr(hp->value)) { - if (strncmp(hp->name, "@#", 2) == 0) { - field_name = switch_mprintf("_%s", hp->name + 2); - cJSON_AddItemToObject(gelf, field_name, cJSON_CreateNumber(strtod(hp->value, NULL))); - } else { - field_name = switch_mprintf("_%s", hp->name); - cJSON_AddItemToObject(gelf, field_name, cJSON_CreateString(hp->value)); + /* get fields from channel data, if configured */ + if (!zstr(node->userdata) && (session = switch_core_session_locate(node->userdata))) { + switch_channel_t *channel = switch_core_session_get_channel(session); + switch_event_header_t *hp; + /* session_fields name mapped to variable name */ + for (hp = globals.session_fields->headers; hp; hp = hp->next) { + if (!zstr(hp->name) && !zstr(hp->value)) { + const char *val = switch_channel_get_variable(channel, hp->value); + if (!zstr(val)) { + if (!log_fields) { + switch_event_create_plain(&log_fields, SWITCH_EVENT_CHANNEL_DATA); } - free(field_name); + switch_event_add_header_string(log_fields, SWITCH_STACK_BOTTOM, hp->name, val); } } - - switch_event_destroy(&log_fields); - full_message = parsed_full_message; } + switch_core_session_rwunlock(session); + } + + /* parse list of fields from message text, if any */ + if (strncmp(full_message, "LOG_FIELDS", 10) == 0) { + switch_event_create_brackets(full_message+10, '[', ']', ',', &log_fields, &parsed_full_message, SWITCH_TRUE); + full_message = parsed_full_message; + } + + /* add additional fields */ + if (log_fields) { + switch_event_header_t *hp; + for (hp = log_fields->headers; hp; hp = hp->next) { + if (!zstr(hp->name) && !zstr(hp->value)) { + if (strncmp(hp->name, "@#", 2) == 0) { + field_name = switch_mprintf("_%s", hp->name + 2); + cJSON_AddItemToObject(gelf, field_name, cJSON_CreateNumber(strtod(hp->value, NULL))); + } else { + field_name = switch_mprintf("_%s", hp->name); + cJSON_AddItemToObject(gelf, field_name, cJSON_CreateString(hp->value)); + } + free(field_name); + } + } + switch_event_destroy(&log_fields); } cJSON_AddItemToObject(gelf, "full_message", cJSON_CreateString(full_message)); @@ -293,6 +316,7 @@ static switch_status_t do_config(void) if ((settings = switch_xml_child(cfg, "settings"))) { switch_xml_t param; + switch_xml_t fields; for (param = switch_xml_child(settings, "param"); param; param = param->next) { char *name = (char *) switch_xml_attr_soft(param, "name"); char *value = (char *) switch_xml_attr_soft(param, "value"); @@ -333,6 +357,25 @@ static switch_status_t do_config(void) switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring unknown param: \"%s\"\n", name); } } + + /* map session fields to channel variables */ + if ((fields = switch_xml_child(settings, "fields"))) { + switch_xml_t field; + for (field = switch_xml_child(fields, "field"); field; field = field->next) { + char *name = (char *) switch_xml_attr_soft(field, "name"); + char *variable = (char *) switch_xml_attr_soft(field, "variable"); + if (zstr(name)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring unnamed session field\n"); + continue; + } + if (zstr(variable)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Ignoring empty channel variable for session field \"%s\"\n", name); + continue; + } + switch_event_add_header_string(globals.session_fields, SWITCH_STACK_BOTTOM, + switch_core_strdup(globals.pool, name), switch_core_strdup(globals.pool, variable)); + } + } } switch_xml_free(xml); return SWITCH_STATUS_SUCCESS; @@ -345,6 +388,8 @@ SWITCH_MODULE_LOAD_FUNCTION(mod_graylog2_load) memset(&globals, 0, sizeof(globals)); globals.pool = pool; + switch_event_create_plain(&globals.session_fields, SWITCH_EVENT_CHANNEL_DATA); + if (do_config() != SWITCH_STATUS_SUCCESS) { return SWITCH_STATUS_TERM; } @@ -362,7 +407,9 @@ SWITCH_MODULE_SHUTDOWN_FUNCTION(mod_graylog2_shutdown) { switch_log_unbind_logger(mod_graylog2_logger); stop_deliver_graylog2_thread(); - + if (globals.session_fields) { + switch_event_destroy(&globals.session_fields); + } return SWITCH_STATUS_SUCCESS; } From 2ada8286f30d75e2824a29e31432549f47944aee Mon Sep 17 00:00:00 2001 From: Giovanni Maruzzelli Date: Thu, 21 Aug 2014 20:50:30 +0200 Subject: [PATCH 29/47] skypopen: new skype client in install/install.pl --- .../endpoints/mod_skypopen/install/install.pl | 30 +++++++------------ 1 file changed, 10 insertions(+), 20 deletions(-) diff --git a/src/mod/endpoints/mod_skypopen/install/install.pl b/src/mod/endpoints/mod_skypopen/install/install.pl index 87011f96b4..4aa7439c48 100755 --- a/src/mod/endpoints/mod_skypopen/install/install.pl +++ b/src/mod/endpoints/mod_skypopen/install/install.pl @@ -1,12 +1,11 @@ #!/usr/bin/perl my $myname ; -#my $skype_download_url = "http://mirrors.kernel.org/archlinux/community/os/i686/skype-oss-2.0.0.72-3-i686.pkg.tar.xz"; -my $skype_download_url = "http://212.71.238.115:8080/skype-oss-2.0.0.72-3-i686.pkg.tar.xz"; -my $skype_download_pkg = "skype-oss-2.0.0.72-3-i686.pkg.tar.xz"; -#my $skype_binary_dir = "/usr/bin"; +my $skype_download_url = "http://download.skype.com/linux/skype-4.3.0.37.tar.bz2"; +my $skype_download_pkg = "skype-4.3.0.37.tar.bz2"; my $skype_binary_dir = "/usr/local/freeswitch/skypopen/skype-clients-symlinks-dir"; my $skype_download_dir = "/tmp/skype_download"; +my $skype_unpacked_dir = "skype-4.3.0.37"; my $skype_share_dir = "/usr/share/skype"; my $freeswitch_modules_config_dir = "/usr/local/freeswitch/conf/autoload_configs"; my $skypopen_sound_driver_dir = "/usr/local/freeswitch/skypopen/skypopen-sound-driver-dir"; @@ -205,18 +204,18 @@ printf("\n"); system("mkdir -p $skype_download_dir"); system("cd $skype_download_dir ; wget -c $skype_download_url"); -system("cd $skype_download_dir ; tar -xJf $skype_download_pkg"); +system("cd $skype_download_dir ; tar -xjf $skype_download_pkg"); system("mkdir -p $skype_binary_dir"); -system("cd $skype_download_dir/usr/bin ; cp skype $skype_binary_dir/"); +system("cd $skype_download_dir/$skype_unpacked_dir ; cp skype $skype_binary_dir/"); + system("mkdir -p $skype_share_dir"); -system("cd $skype_download_dir/usr/share/skype ; cp -a avatars $skype_share_dir/"); -system("cd $skype_download_dir/usr/share/skype ; cp -a sounds $skype_share_dir/"); -system("cd $skype_download_dir/usr/share/skype ; cp -a lang $skype_share_dir/"); +system("cd $skype_download_dir/$skype_unpacked_dir ; cp -a avatars $skype_share_dir/"); +system("cd $skype_download_dir/$skype_unpacked_dir ; cp -a sounds $skype_share_dir/"); +system("cd $skype_download_dir/$skype_unpacked_dir ; cp -a lang $skype_share_dir/"); +system("cd $skype_download_dir/$skype_unpacked_dir ; cp -a icons $skype_share_dir/"); -system("mkdir -p $skypopen_sound_driver_dir"); -system("cp ../oss/skypopen.ko $skypopen_sound_driver_dir/"); system("mkdir -p $skype_config_dir"); system("mkdir -p $skype_startup_dir"); system("mkdir -p $skype_symlinks_dir"); @@ -236,15 +235,6 @@ system("echo \"\" >> $freeswitch_modules_config_dir/skyp system("echo \"#!/bin/sh\" > $skype_startup_dir/start_skype_clients.sh"); -system("echo \"#Unload possible ALSA sound modules that would conflict with our OSS fake module\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"rmmod snd_pcm_oss\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"rmmod snd_mixer_oss\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"rmmod snd_seq_oss\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"sleep 1\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"#Create the inode our fake sound driver will use\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"mknod /dev/dsp c 14 3\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"#Load our OSS fake module\" >> $skype_startup_dir/start_skype_clients.sh"); -system("echo \"insmod $skypopen_sound_driver_dir/skypopen.ko\" >> $skype_startup_dir/start_skype_clients.sh"); system("echo >> $skype_startup_dir/start_skype_clients.sh"); system("echo >> $skype_startup_dir/start_skype_clients.sh"); From 6d1469d2fbf0053042cca5edf2cb0a2ced325503 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Thu, 21 Aug 2014 20:37:08 +0000 Subject: [PATCH 30/47] Describe how to hard-wrap text in Emacs --- docs/SubmittingPatches | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/SubmittingPatches b/docs/SubmittingPatches index 8e9b9d9e94..16be7a2479 100644 --- a/docs/SubmittingPatches +++ b/docs/SubmittingPatches @@ -50,7 +50,8 @@ commit, perhaps your commit should be broken into smaller separate commits. The commit body can be longer and can consist of multiple paragraphs. -The text of the body should be hard wrapped to 68-72 characters. +The text of the body should be hard wrapped to 68-72 characters. (In +Emacs you can hard wrap text with `M-q`.) When writing the commit body, describe in detail the problem that your commit aims to solve, how your commit solves the problem, and any From b2f59dd2003d8323108c249ce6fb5016eba6b5ed Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Thu, 21 Aug 2014 22:17:35 +0000 Subject: [PATCH 31/47] Add warning when using HTTPS with mod_curl mod_curl currently does not verify the authenticity of the peer's certificate, and does not verify whether the common name on the certificate matches the server. This makes mod_curl initiated TLS connections completely insecure. We should fix this, but until we do, we'll warn people that it's not doing what they may think it is. ref: http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYPEER.html ref: http://curl.haxx.se/libcurl/c/CURLOPT_SSL_VERIFYHOST.html --- src/mod/applications/mod_curl/mod_curl.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/mod/applications/mod_curl/mod_curl.c b/src/mod/applications/mod_curl/mod_curl.c index 61f9a78d2a..bff5df864c 100644 --- a/src/mod/applications/mod_curl/mod_curl.c +++ b/src/mod/applications/mod_curl/mod_curl.c @@ -194,6 +194,7 @@ static http_data_t *do_lookup_url(switch_memory_pool_t *pool, const char *url, c } if (!strncasecmp(url, "https", 5)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Not verifying TLS cert for %s; connection is not secure\n", url); switch_curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYPEER, 0); switch_curl_easy_setopt(curl_handle, CURLOPT_SSL_VERIFYHOST, 0); } @@ -357,6 +358,7 @@ static void http_sendfile_initialize_curl(http_sendfile_data_t *http_data) if (!strncasecmp(http_data->url, "https", 5)) { + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_WARNING, "Not verifying TLS cert for %s; connection is not secure\n", http_data->url); curl_easy_setopt(http_data->curl_handle, CURLOPT_SSL_VERIFYPEER, 0); curl_easy_setopt(http_data->curl_handle, CURLOPT_SSL_VERIFYHOST, 0); } From bf42dd65f1a13725c74f5f151aab99cfca11c434 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 00:43:27 +0000 Subject: [PATCH 32/47] Refactor `switch_fulldate_cmp` We're moving the variable declarations down to the smallest possible scope (a good idea in general) so we can address the use of undefined memory by the function in a later commit. --- src/switch_utils.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/src/switch_utils.c b/src/switch_utils.c index a995ebc405..2a6cbd649e 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -2994,21 +2994,19 @@ SWITCH_DECLARE(int) switch_fulldate_cmp(const char *exp, switch_time_t *ts) char *dup = strdup(exp); char *sStart; char *sEnd; - char *sDate; - char *sTime; - switch_time_t tsStart; - switch_time_t tsEnd; - struct tm tmTmp; - int year, month, day; - int hour, min, sec; switch_assert(dup); sStart = dup; if ((sEnd=strchr(dup, '~'))) { + char *sDate = sStart; + char *sTime; *sEnd++ = '\0'; - sDate = sStart; if ((sTime=strchr(sStart, ' '))) { + switch_time_t tsStart; + struct tm tmTmp; + int year, month, day; + int hour, min, sec; *sTime++ = '\0'; memset(&tmTmp, 0, sizeof(tmTmp)); @@ -3026,6 +3024,10 @@ SWITCH_DECLARE(int) switch_fulldate_cmp(const char *exp, switch_time_t *ts) sDate = sEnd; if ((sTime=strchr(sEnd, ' '))) { + switch_time_t tsEnd; + struct tm tmTmp; + int year, month, day; + int hour, min, sec; *sTime++ = '\0'; memset(&tmTmp, 0, sizeof(tmTmp)); From b5a87aea7f89e1e809e1e9660d882ec0959c5890 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 00:47:22 +0000 Subject: [PATCH 33/47] Avoid using undefined memory in `switch_fulldate_cmp` The `switch_split_date` and `switch_split_time` functions only set as many variables as they believe exist values in the input string. Since we didn't have defaults assigned we would read undefined stack memory if the input string didn't contain e.g. an hour. With this commit, we use 1970 if no year is present, January if no month is present, the first day of the month if none is given, and zero for each of a missing hour, minute, or second. --- src/switch_utils.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/switch_utils.c b/src/switch_utils.c index 2a6cbd649e..4f7ad9cea7 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -3005,8 +3005,8 @@ SWITCH_DECLARE(int) switch_fulldate_cmp(const char *exp, switch_time_t *ts) if ((sTime=strchr(sStart, ' '))) { switch_time_t tsStart; struct tm tmTmp; - int year, month, day; - int hour, min, sec; + int year = 1970, month = 1, day = 1; + int hour = 0, min = 0, sec = 0; *sTime++ = '\0'; memset(&tmTmp, 0, sizeof(tmTmp)); @@ -3026,8 +3026,8 @@ SWITCH_DECLARE(int) switch_fulldate_cmp(const char *exp, switch_time_t *ts) if ((sTime=strchr(sEnd, ' '))) { switch_time_t tsEnd; struct tm tmTmp; - int year, month, day; - int hour, min, sec; + int year = 1970, month = 1, day = 1; + int hour = 0, min = 0, sec = 0; *sTime++ = '\0'; memset(&tmTmp, 0, sizeof(tmTmp)); From e2d67d4ead6c7890a2e0138a180c7b65ae0eb6d9 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 00:58:53 +0000 Subject: [PATCH 34/47] Remove dead assignment --- src/switch_utils.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/switch_utils.c b/src/switch_utils.c index 4f7ad9cea7..3028122c92 100644 --- a/src/switch_utils.c +++ b/src/switch_utils.c @@ -1569,7 +1569,6 @@ SWITCH_DECLARE(switch_status_t) switch_find_local_ip(char *buf, int len, int *ma doh: if (tmp_socket > 0) { close(tmp_socket); - tmp_socket = -1; } #endif From 4f81e5942a77b4943b82b0d0d5acd451a113e934 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 01:09:05 +0000 Subject: [PATCH 35/47] Handle null argv in `switch.c` --- src/switch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch.c b/src/switch.c index df3574d2d7..241c674817 100644 --- a/src/switch.c +++ b/src/switch.c @@ -1053,7 +1053,7 @@ int main(int argc, char *argv[]) setrlimit(RLIMIT_STACK, &rlp); apr_terminate(); - ret = (int) execv(argv[0], argv); + if (argv) ret = (int) execv(argv[0], argv); for (i = 0; i < argc; i++) { switch_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s ", argv[i]); @@ -1215,7 +1215,7 @@ int main(int argc, char *argv[]) int j = 0; switch_sleep(1000000); - if (execv(argv[0], argv) == -1) { + if (!argv || execv(argv[0], argv) == -1) { fprintf(stderr, "Restart Failed [%s] resorting to plan b\n", strerror(errno)); for (j = 0; j < argc; j++) { switch_snprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), "%s ", argv[j]); From 2cf6fd728c4516bec3606bdf27be029678e5f124 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 01:20:42 +0000 Subject: [PATCH 36/47] Remove dead assignments in `switch.c` --- src/switch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch.c b/src/switch.c index 241c674817..c0d3a84f7a 100644 --- a/src/switch.c +++ b/src/switch.c @@ -251,7 +251,7 @@ static int check_fd(int fd, int ms) if ((pfds[0].revents & POLLIN)) { if ((i = read(fd, &r, sizeof(r))) > -1) { - i = write(fd, &r, sizeof(r)); + (void)write(fd, &r, sizeof(r)); } } } @@ -1189,7 +1189,7 @@ int main(int argc, char *argv[]) if ((i = write(fds[1], &v, sizeof(v))) < 0) { fprintf(stderr, "System Error [%s]\n", strerror(errno)); } else { - i = read(fds[1], &v, sizeof(v)); + (void)read(fds[1], &v, sizeof(v)); } shutdown(fds[1], 2); From 164fa133dc39e79a8f97d5a4e985285da0d13bad Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 01:33:22 +0000 Subject: [PATCH 37/47] Refactor to avoid warning about realloc usage Clang's static analyzer noticed the result of realloc was being assigned to a pointer of a different type than was used to calculate the new size. We can make things simpler and more idiomatic here by using the correct pointer type and letting C's pointer arithmetic automatically handle some multiplication. We also use the distributive property here to simplify the calculation for memset. --- src/switch_stfu.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/switch_stfu.c b/src/switch_stfu.c index e92d138fde..5bb5f50afe 100644 --- a/src/switch_stfu.c +++ b/src/switch_stfu.c @@ -167,7 +167,7 @@ void stfu_global_set_default_logger(int level) static stfu_status_t stfu_n_resize_aqueue(stfu_queue_t *queue, uint32_t qlen) { - unsigned char *m; + struct stfu_frame *m; if (qlen <= queue->real_array_size) { queue->array_size = qlen; @@ -177,8 +177,8 @@ static stfu_status_t stfu_n_resize_aqueue(stfu_queue_t *queue, uint32_t qlen) } else { m = realloc(queue->array, qlen * sizeof(struct stfu_frame)); assert(m); - memset(m + queue->array_size * sizeof(struct stfu_frame), 0, (qlen * sizeof(struct stfu_frame)) - (queue->array_size * sizeof(struct stfu_frame))); - queue->array = (struct stfu_frame *) m; + memset(m + queue->array_size, 0, (qlen - queue->array_size) * sizeof(struct stfu_frame)); + queue->array = m; queue->real_array_size = queue->array_size = qlen; } From decc19ccd130ffea2309156a71cf83352c463253 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 01:59:11 +0000 Subject: [PATCH 38/47] Handle zero channels when allocating for resampler When the number of channels was zero, we were calling malloc with a size of zero. While defined, this is unusual. And since we're initializing the speex resampler as though there were one channel in this case, we should probably just allocate the space for it. --- src/switch_resample.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/switch_resample.c b/src/switch_resample.c index fa229a68cf..ed584e39af 100644 --- a/src/switch_resample.c +++ b/src/switch_resample.c @@ -78,7 +78,7 @@ SWITCH_DECLARE(switch_status_t) switch_resample_perform_create(switch_audio_resa resampler->factor = (lto_rate / lfrom_rate); resampler->rfactor = (lfrom_rate / lto_rate); resampler->to_size = resample_buffer(to_rate, from_rate, (uint32_t) to_size); - resampler->to = malloc(resampler->to_size * sizeof(int16_t) * channels); + resampler->to = malloc(resampler->to_size * sizeof(int16_t) * (channels ? channels : 1)); resampler->channels = channels; return SWITCH_STATUS_SUCCESS; From 959e672a941cef2e2b6452772fdf990736192222 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 02:19:45 +0000 Subject: [PATCH 39/47] Fix spelling "Couldnt" -> "Couldn't" --- src/switch_limit.c | 2 +- src/switch_xml.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/switch_limit.c b/src/switch_limit.c index b2e306a4b5..e6e421b091 100644 --- a/src/switch_limit.c +++ b/src/switch_limit.c @@ -54,7 +54,7 @@ static void release_backend(switch_limit_interface_t *limit) { SWITCH_DECLARE(void) switch_limit_init(switch_memory_pool_t *pool) { if (switch_event_reserve_subclass(LIMIT_EVENT_USAGE) != SWITCH_STATUS_SUCCESS) { - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldnt register event subclass \"%s\"", LIMIT_EVENT_USAGE); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't register event subclass \"%s\"", LIMIT_EVENT_USAGE); } } diff --git a/src/switch_xml.c b/src/switch_xml.c index 8a5b76a98b..0908e5a91d 100644 --- a/src/switch_xml.c +++ b/src/switch_xml.c @@ -1376,7 +1376,7 @@ static int preprocess(const char *cwd, const char *file, FILE *write_fd, int rle if (!(read_fd = fopen(file, "r"))) { const char *reason = strerror(errno); - switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldnt open %s (%s)\n", file, reason); + switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "Couldn't open %s (%s)\n", file, reason); return -1; } From 3c32dd3bc92ccbcac538a25746f09ca68371319b Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 02:47:04 +0000 Subject: [PATCH 40/47] Return NULL from `sub_alloc` for zero size When zero was passed for the size to `sub_alloc`, we were passing this size on to `malloc` or `calloc`, which is unusual enough that static analyzers warn about this (POSIX says that either NULL or a pointer will be returned). We'll instead just return NULL right away. --- libs/sofia-sip/libsofia-sip-ua/su/su_alloc.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/libs/sofia-sip/libsofia-sip-ua/su/su_alloc.c b/libs/sofia-sip/libsofia-sip-ua/su/su_alloc.c index 005989bb75..e438a89543 100644 --- a/libs/sofia-sip/libsofia-sip-ua/su/su_alloc.c +++ b/libs/sofia-sip/libsofia-sip-ua/su/su_alloc.c @@ -432,6 +432,8 @@ void *sub_alloc(su_home_t *home, if (size >= ((size_t)1) << SIZEBITS) return (void)(errno = ENOMEM), NULL; + if (!size) return NULL; + if (sub == NULL || 3 * sub->sub_used > 2 * sub->sub_n) { /* Resize the hash table */ size_t i, n, n2; @@ -474,7 +476,7 @@ void *sub_alloc(su_home_t *home, sub = b2; } - if (size && sub && zero < do_clone && + if (sub && zero < do_clone && sub->sub_preload && size <= sub->sub_prsize) { /* Use preloaded memory */ size_t prused = sub->sub_prused + size + MEMCHECK_EXTRA; From aa1a05d0aa2b13632b10d5e8cce78794288c8295 Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 03:30:32 +0000 Subject: [PATCH 41/47] Help the static analyzer in `handle_ice` Clang's static analyzer thinks we could be using `hosts` here when it is NULL. We probably weren't, but it's easy to see how it could think so. We were checking whether `from_addr` matched `ice->addr` three times, and between the second on third time we might have modified the `ice->addr`; however we only get there if it matched the second time, so we could only make it not match at that point and avoid the third branch. We can't make it match where it did not before. We'll simplify the logic a bit here so static analyzers (and humans) can hopefully see this more readily. --- src/switch_rtp.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/switch_rtp.c b/src/switch_rtp.c index a1a95ff092..161f46f782 100644 --- a/src/switch_rtp.c +++ b/src/switch_rtp.c @@ -1056,6 +1056,7 @@ static void handle_ice(switch_rtp_t *rtp_session, switch_rtp_ice_t *ice, void *d char ipbuf[25]; switch_sockaddr_t *from_addr = rtp_session->from_addr; switch_socket_t *sock_output = rtp_session->sock_output; + uint8_t hosts_set = 0; if (is_rtcp) { from_addr = rtp_session->rtcp_from_addr; @@ -1078,6 +1079,7 @@ static void handle_ice(switch_rtp_t *rtp_session, switch_rtp_ice_t *ice, void *d switch_stun_packet_attribute_add_xor_binded_address(rpacket, (char *) remote_ip, switch_sockaddr_get_port(from_addr)); if (!switch_cmp_addr(from_addr, ice->addr)) { + hosts_set++; host = switch_get_addr(buf, sizeof(buf), from_addr); port = switch_sockaddr_get_port(from_addr); host2 = switch_get_addr(buf2, sizeof(buf2), ice->addr); @@ -1088,7 +1090,7 @@ static void handle_ice(switch_rtp_t *rtp_session, switch_rtp_ice_t *ice, void *d switch_stun_packet_attribute_add_integrity(rpacket, ice->pass); switch_stun_packet_attribute_add_fingerprint(rpacket); } else { - if (!switch_cmp_addr(from_addr, ice->addr)) { + if (hosts_set) { switch_sockaddr_info_get(&ice->addr, host, SWITCH_UNSPEC, port, 0, rtp_session->pool); switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(rtp_session->session), SWITCH_LOG_NOTICE, @@ -1111,7 +1113,7 @@ static void handle_ice(switch_rtp_t *rtp_session, switch_rtp_ice_t *ice, void *d bytes = switch_stun_packet_length(rpacket); - if (!ice->rready && (ice->type & ICE_VANILLA) && ice->ice_params && !switch_cmp_addr(from_addr, ice->addr)) { + if (!ice->rready && (ice->type & ICE_VANILLA) && ice->ice_params && hosts_set && !switch_cmp_addr(from_addr, ice->addr)) { int i = 0; ice->missed_count = 0; From d06d00405528db2deff898ab78d8ab45cfa0337e Mon Sep 17 00:00:00 2001 From: William King Date: Thu, 21 Aug 2014 23:17:23 -0700 Subject: [PATCH 42/47] Adding the ability to add a radius param when a channel variable is not set in mod_xml_radius --- src/mod/xml_int/mod_xml_radius/mod_xml_radius.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c b/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c index 95b437722c..4cfa99d39d 100644 --- a/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c +++ b/src/mod/xml_int/mod_xml_radius/mod_xml_radius.c @@ -362,6 +362,7 @@ switch_status_t mod_xml_radius_add_params(switch_core_session_t *session, switch char *variable = (char *) switch_xml_attr(param, "variable"); char *variable_secondary = (char *) switch_xml_attr(param, "variable_secondary"); char *val_default = (char *) switch_xml_attr(param, "default"); + char *skip_if_set = (char *) switch_xml_attr(param, "skip_if_set"); char *format = (char *) switch_xml_attr(param, "format"); char *other_leg = (char *) switch_xml_attr(param, "other_leg"); @@ -399,6 +400,9 @@ switch_status_t mod_xml_radius_add_params(switch_core_session_t *session, switch if ( var ) { if ( session ) { switch_channel_t *channel = switch_core_session_get_channel(session); + if ( skip_if_set && switch_channel_get_variable(channel, skip_if_set) ) { + goto end_loop; + } /* Accounting only */ if ( strncmp( var, "h323-setup-time", 15) == 0 ) { From d55505ce2a713a409a2a2d37f34893f7d1ccaf4f Mon Sep 17 00:00:00 2001 From: Italo Rossi Date: Fri, 22 Aug 2014 15:35:49 -0300 Subject: [PATCH 43/47] Adding switchname to xml_cdr and json_cdr --- src/switch_ivr.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/switch_ivr.c b/src/switch_ivr.c index d53d3e6a72..52661e2e1e 100644 --- a/src/switch_ivr.c +++ b/src/switch_ivr.c @@ -2308,6 +2308,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_generate_xml_cdr(switch_core_session_ } switch_xml_set_attr_d(cdr, "core-uuid", switch_core_get_uuid()); + switch_xml_set_attr_d(cdr, "switchname", switch_core_get_switchname()); if (!(x_channel_data = switch_xml_add_child_d(cdr, "channel_data", cdr_off++))) { goto error; @@ -2681,7 +2682,7 @@ SWITCH_DECLARE(switch_status_t) switch_ivr_generate_json_cdr(switch_core_session char tmp[512], *f; cJSON_AddItemToObject(cdr, "core-uuid", cJSON_CreateString(switch_core_get_uuid())); - + cJSON_AddItemToObject(cdr, "switchname", cJSON_CreateString(switch_core_get_switchname())); j_channel_data = cJSON_CreateObject(); cJSON_AddItemToObject(cdr, "channel_data", j_channel_data); From b874048efcee4ea985cf9e5592d289ddef2df40a Mon Sep 17 00:00:00 2001 From: Travis Cross Date: Fri, 22 Aug 2014 19:39:11 +0000 Subject: [PATCH 44/47] Handle gcc's overzealous unused-result warning Modern static analyzers warn when a variable is set but not used. GCC warns when the result of a function marked as `__attribute__((warn_unused_result))` is not set to some variable, even when the function is cast to `(void)`, which is the recognized way of indicating the intent to ignore the result. We treat all warnings as errors. The combination of behaviors here makes it difficult if we really don't care about the result of the function; the obvious workarounds are precluded. GCC's maintainers don't consider this to be a bug: Why do you think this is a bug? warn_unused_result is for cases where "not checking the result is either a security problem or always a bug". https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509#c1 GLIBC however marks functions like `read` and `write` with this attribute. While it certainly in most cases is correct to act on their return value, in some cases we really just don't care. So when we see that we're building with GCC, and that we're building with all warnings enabled, we'll just pass -Wno-unused-result to disable the warning. ref: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25509 ref: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html --- configure.ac | 1 + 1 file changed, 1 insertion(+) diff --git a/configure.ac b/configure.ac index 7baf54ecaf..58c8a3bf20 100644 --- a/configure.ac +++ b/configure.ac @@ -464,6 +464,7 @@ if test "${enable_debug}" = "yes"; then CFLAGS="$saved_CFLAGS" if test "x${ax_cv_c_compiler_vendor}" = "xgnu" ; then + APR_ADDTO(SWITCH_AM_CFLAGS, -Wno-unused-result) APR_ADDTO(SWITCH_AM_CFLAGS, -g -ggdb) export DEBUG_CFLAGS="-g -ggdb" fi From b6dc4a6c11b0ea7618bbe40baf7861e3539ff284 Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 22 Aug 2014 16:38:35 -0500 Subject: [PATCH 45/47] FS-6747 #resolve --- src/switch_core.c | 50 ++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/src/switch_core.c b/src/switch_core.c index 321bd0dd75..b2b05e8b7a 100644 --- a/src/switch_core.c +++ b/src/switch_core.c @@ -109,14 +109,35 @@ static void check_ip(void) char old_ip6[256] = ""; int ok4 = 1, ok6 = 1; int mask = 0; + switch_status_t check6, check4; + switch_event_t *event; + char *hostname = switch_core_get_variable("hostname"); gethostname(runtime.hostname, sizeof(runtime.hostname)); - switch_core_set_variable("hostname", runtime.hostname); - switch_find_local_ip(guess_ip4, sizeof(guess_ip4), &mask, AF_INET); - switch_find_local_ip(guess_ip6, sizeof(guess_ip6), NULL, AF_INET6); + if (zstr(hostname)) { + switch_core_set_variable("hostname", runtime.hostname); + } else if (strcmp(hostname, runtime.hostname)) { + if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "hostname-change"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "old-hostname", hostname ? hostname : "nil"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "new-hostname", runtime.hostname); + switch_event_fire(&event); + } - if (!*main_ip4) { + switch_core_set_variable("hostname", runtime.hostname); + } + + check4 = switch_find_local_ip(guess_ip4, sizeof(guess_ip4), &mask, AF_INET); + check6 = switch_find_local_ip(guess_ip6, sizeof(guess_ip6), NULL, AF_INET6); + + if (check6 != SWITCH_STATUS_SUCCESS && (zstr(main_ip6) || !strcasecmp(main_ip6, "::1"))) { + check6 = SWITCH_STATUS_SUCCESS; + } + + if (check4 != SWITCH_STATUS_SUCCESS) { + ok4 = 2; + } else if (!*main_ip4) { switch_set_string(main_ip4, guess_ip4); } else { if (!(ok4 = !strcmp(main_ip4, guess_ip4))) { @@ -130,7 +151,9 @@ static void check_ip(void) } } - if (!*main_ip6) { + if (check6 != SWITCH_STATUS_SUCCESS) { + ok6 = 2; + } else if (!*main_ip6) { switch_set_string(main_ip6, guess_ip6); } else { if (!(ok6 = !strcmp(main_ip6, guess_ip6))) { @@ -141,8 +164,6 @@ static void check_ip(void) } if (!ok4 || !ok6) { - switch_event_t *event; - if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "network-address-change"); if (!ok4) { @@ -156,6 +177,21 @@ static void check_ip(void) switch_event_fire(&event); } } + + if (ok4 == 2 || ok6 == 2) { + if (switch_event_create(&event, SWITCH_EVENT_TRAP) == SWITCH_STATUS_SUCCESS) { + switch_event_add_header(event, SWITCH_STACK_BOTTOM, "condition", "network-outage"); + + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-status-v4", ok4 == 2 ? "disconnected" : "active"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-v4", main_ip4); + + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-status-v6", ok6 == 2 ? "disconnected" : "active"); + switch_event_add_header_string(event, SWITCH_STACK_BOTTOM, "network-address-v6", main_ip6); + + switch_event_fire(&event); + } + } + } SWITCH_STANDARD_SCHED_FUNC(heartbeat_callback) From f4a04e65f28a3f93d585dfb28dacf19ca8407a5f Mon Sep 17 00:00:00 2001 From: Brian West Date: Fri, 22 Aug 2014 16:39:45 -0500 Subject: [PATCH 46/47] FS-6735 --- src/include/switch_apr.h | 2 ++ .../mod_event_socket/mod_event_socket.c | 2 ++ src/switch_apr.c | 28 +++++++++++++++++++ 3 files changed, 32 insertions(+) diff --git a/src/include/switch_apr.h b/src/include/switch_apr.h index c723a533e3..50096d5aff 100644 --- a/src/include/switch_apr.h +++ b/src/include/switch_apr.h @@ -985,6 +985,8 @@ SWITCH_DECLARE(switch_status_t) switch_thread_create(switch_thread_t ** new_thre #define SWITCH_SO_RCVBUF 128 #define SWITCH_SO_DISCONNECTED 256 #define SWITCH_SO_TCP_NODELAY 512 +#define SWITCH_SO_TCP_KEEPIDLE 520 +#define SWITCH_SO_TCP_KEEPINTVL 530 /** diff --git a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c index 3ad1b0c966..99a6415469 100644 --- a/src/mod/event_handlers/mod_event_socket/mod_event_socket.c +++ b/src/mod/event_handlers/mod_event_socket/mod_event_socket.c @@ -446,6 +446,8 @@ SWITCH_STANDARD_APP(socket_function) switch_socket_opt_set(new_sock, SWITCH_SO_KEEPALIVE, 1); switch_socket_opt_set(new_sock, SWITCH_SO_TCP_NODELAY, 1); + switch_socket_opt_set(new_sock, SWITCH_SO_TCP_KEEPIDLE, 30); + switch_socket_opt_set(new_sock, SWITCH_SO_TCP_KEEPINTVL, 30); if (switch_socket_connect(new_sock, sa) != SWITCH_STATUS_SUCCESS) { switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "Socket Error!\n"); diff --git a/src/switch_apr.c b/src/switch_apr.c index a12ae2ddeb..e77be82897 100644 --- a/src/switch_apr.c +++ b/src/switch_apr.c @@ -789,6 +789,34 @@ SWITCH_DECLARE(switch_status_t) switch_sockaddr_info_get(switch_sockaddr_t ** sa SWITCH_DECLARE(switch_status_t) switch_socket_opt_set(switch_socket_t *sock, int32_t opt, int32_t on) { + if (opt == SWITCH_SO_TCP_KEEPIDLE) { + int r = -10; + +#if defined(TCP_KEEPIDLE) + r = setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPIDLE, (void *)&on, sizeof(on)); +#endif + if (r == -10) { + return SWITCH_STATUS_NOTIMPL; + } + + + return r ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS; + } + + if (opt == SWITCH_SO_TCP_KEEPINTVL) { + int r = -10; + +#if defined(TCP_KEEPINTVL) + r = setsockopt(jsock->client_socket, SOL_TCP, TCP_KEEPINTVL, (void *)&on, sizeof(on)); +#endif + + if (r == -10) { + return SWITCH_STATUS_NOTIMPL; + } + + return r ? SWITCH_STATUS_FALSE : SWITCH_STATUS_SUCCESS; + } + return apr_socket_opt_set(sock, opt, on); } From 1ecc2c0c49a9fb956c898f6b4287696782b9415e Mon Sep 17 00:00:00 2001 From: root Date: Mon, 25 Aug 2014 04:29:22 +0500 Subject: [PATCH 47/47] tweak in login seq in verto --- html5/verto/demo/verto.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html5/verto/demo/verto.js b/html5/verto/demo/verto.js index 2cdcfb0520..9e68674b9f 100644 --- a/html5/verto/demo/verto.js +++ b/html5/verto/demo/verto.js @@ -241,7 +241,7 @@ var callbacks = { docall(); } } else { - goto_page("login"); + goto_page("main"); goto_dialog("login-error"); }