From 65a4f8c2baadc2e36c7aaf1e0eaa0f1e52c9fbfa Mon Sep 17 00:00:00 2001 From: John Emmas Date: Tue, 3 Sep 2013 14:47:46 +0100 Subject: [PATCH] 'libs/panners' - Use 'std::vector' to implement arrays whose size is unknown (required to be buildable with MSVC) --- libs/panners/vbap/vbap_speakers.cc | 47 ++++++++++++++++++------------ 1 file changed, 28 insertions(+), 19 deletions(-) diff --git a/libs/panners/vbap/vbap_speakers.cc b/libs/panners/vbap/vbap_speakers.cc index b84698bbd9..c89c256ae1 100644 --- a/libs/panners/vbap/vbap_speakers.cc +++ b/libs/panners/vbap/vbap_speakers.cc @@ -31,6 +31,7 @@ of the software. */ +#include #include #include #include @@ -45,6 +46,13 @@ using namespace std; const double VBAPSpeakers::MIN_VOL_P_SIDE_LGTH = 0.01; +typedef std::vector DoubleVector; +typedef std::vector FloatVector; +typedef std::vector BoolVector; +typedef std::vector IntVector; +typedef std::vector IntVector2D; +typedef std::vector DoubleVector2D; + VBAPSpeakers::VBAPSpeakers (boost::shared_ptr s) : _dimension (2) , _parent (s) @@ -104,17 +112,18 @@ VBAPSpeakers::choose_speaker_triplets(struct ls_triplet_chain **ls_triplets) int i,j,k,l,table_size; int n_speakers = _speakers.size (); - int connections[n_speakers][n_speakers]; - float distance_table[((n_speakers * (n_speakers - 1)) / 2)]; - int distance_table_i[((n_speakers * (n_speakers - 1)) / 2)]; - int distance_table_j[((n_speakers * (n_speakers - 1)) / 2)]; - float distance; - struct ls_triplet_chain *trip_ptr, *prev, *tmp_ptr; - if (n_speakers == 0) { + if (n_speakers < 1) { return; } + FloatVector distance_table(((n_speakers * (n_speakers - 1)) / 2)); + IntVector distance_table_i(((n_speakers * (n_speakers - 1)) / 2)); + IntVector distance_table_j(((n_speakers * (n_speakers - 1)) / 2)); + IntVector2D connections(n_speakers, IntVector(n_speakers)); + float distance; + struct ls_triplet_chain *trip_ptr, *prev, *tmp_ptr; + for (i = 0; i < n_speakers; i++) { for (j = i+1; j < n_speakers; j++) { for(k=j+1;k