comparison data/model/AggregateWaveModel.cpp @ 1326:54af1e21705c 3.0-integration

Update to use bqvec allocator for float vectors
author Chris Cannam
date Tue, 13 Dec 2016 15:23:21 +0000
parents 5cbf71022679
children 770f80d9ccee
comparison
equal deleted inserted replaced
1325:3aea4f7617bb 1326:54af1e21705c
92 { 92 {
93 if (m_components.empty()) return 0; 93 if (m_components.empty()) return 0;
94 return m_components.begin()->model->getSampleRate(); 94 return m_components.begin()->model->getSampleRate();
95 } 95 }
96 96
97 vector<float> 97 floatvec_t
98 AggregateWaveModel::getData(int channel, sv_frame_t start, sv_frame_t count) const 98 AggregateWaveModel::getData(int channel, sv_frame_t start, sv_frame_t count) const
99 { 99 {
100 int ch0 = channel, ch1 = channel; 100 int ch0 = channel, ch1 = channel;
101 if (channel == -1) { 101 if (channel == -1) {
102 ch0 = 0; 102 ch0 = 0;
103 ch1 = getChannelCount()-1; 103 ch1 = getChannelCount()-1;
104 } 104 }
105 105
106 vector<float> result(count, 0.f); 106 floatvec_t result(count, 0.f);
107
108 sv_frame_t longest = 0; 107 sv_frame_t longest = 0;
109 108
110 for (int c = ch0; c <= ch1; ++c) { 109 for (int c = ch0; c <= ch1; ++c) {
111 110
112 auto here = m_components[c].model->getData(m_components[c].channel, 111 auto here = m_components[c].model->getData(m_components[c].channel,
121 120
122 result.resize(longest); 121 result.resize(longest);
123 return result; 122 return result;
124 } 123 }
125 124
126 vector<vector<float>> 125 vector<floatvec_t>
127 AggregateWaveModel::getMultiChannelData(int fromchannel, int tochannel, 126 AggregateWaveModel::getMultiChannelData(int fromchannel, int tochannel,
128 sv_frame_t start, sv_frame_t count) const 127 sv_frame_t start, sv_frame_t count) const
129 { 128 {
130 sv_frame_t min = count; 129 sv_frame_t min = count;
131 130
132 vector<vector<float>> result; 131 vector<floatvec_t> result;
133 132
134 for (int c = fromchannel; c <= tochannel; ++c) { 133 for (int c = fromchannel; c <= tochannel; ++c) {
135 auto here = getData(c, start, count); 134 auto here = getData(c, start, count);
136 if (sv_frame_t(here.size()) < min) { 135 if (sv_frame_t(here.size()) < min) {
137 min = sv_frame_t(here.size()); 136 min = sv_frame_t(here.size());