alexbrandmeyer@620: // alexbrandmeyer@620: // carfac_output.cc alexbrandmeyer@620: // CARFAC Open Source C++ Library alexbrandmeyer@620: // alexbrandmeyer@620: // Created by Alex Brandmeyer on 5/10/13. alexbrandmeyer@620: // alexbrandmeyer@620: // This C++ file is part of an implementation of Lyon's cochlear model: alexbrandmeyer@620: // "Cascade of Asymmetric Resonators with Fast-Acting Compression" alexbrandmeyer@620: // to supplement Lyon's upcoming book "Human and Machine Hearing" alexbrandmeyer@620: // alexbrandmeyer@620: // Licensed under the Apache License, Version 2.0 (the "License"); alexbrandmeyer@620: // you may not use this file except in compliance with the License. alexbrandmeyer@620: // You may obtain a copy of the License at alexbrandmeyer@620: // alexbrandmeyer@620: // http://www.apache.org/licenses/LICENSE-2.0 alexbrandmeyer@620: // alexbrandmeyer@620: // Unless required by applicable law or agreed to in writing, software alexbrandmeyer@620: // distributed under the License is distributed on an "AS IS" BASIS, alexbrandmeyer@620: // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. alexbrandmeyer@620: // See the License for the specific language governing permissions and alexbrandmeyer@620: // limitations under the License. alexbrandmeyer@620: alexbrandmeyer@620: #include "carfac_output.h" alexbrandmeyer@679: alexbrandmeyer@678: using std::vector; alexbrandmeyer@620: alexbrandmeyer@678: void CARFACOutput::Init(const int n_ears, const bool store_nap, alexbrandmeyer@678: const bool store_nap_decim, const bool store_bm, alexbrandmeyer@678: const bool store_ohc, const bool store_agc) { alexbrandmeyer@620: n_ears_ = n_ears; alexbrandmeyer@678: store_nap_ = store_nap; alexbrandmeyer@678: store_nap_decim_ = store_nap_decim; alexbrandmeyer@678: store_bm_ = store_bm; alexbrandmeyer@678: store_ohc_ = store_ohc; alexbrandmeyer@678: store_agc_ = store_agc; alexbrandmeyer@678: alexbrandmeyer@620: } alexbrandmeyer@620: alexbrandmeyer@679: void CARFACOutput::StoreOutput(const vector& ears) { alexbrandmeyer@678: if (store_nap_) { alexbrandmeyer@678: nap_.push_back(vector()); alexbrandmeyer@679: for (auto ear : ears) { alexbrandmeyer@678: nap_.back().push_back(ear.ihc_out()); alexbrandmeyer@678: } alexbrandmeyer@678: } alexbrandmeyer@678: if (store_ohc_) { alexbrandmeyer@678: ohc_.push_back(vector()); alexbrandmeyer@679: for (auto ear : ears) { alexbrandmeyer@678: ohc_.back().push_back(ear.za_memory()); alexbrandmeyer@678: } alexbrandmeyer@678: } alexbrandmeyer@678: if (store_agc_) { alexbrandmeyer@678: agc_.push_back(vector()); alexbrandmeyer@679: for (auto ear : ears) { alexbrandmeyer@678: agc_.back().push_back(ear.zb_memory()); alexbrandmeyer@678: } alexbrandmeyer@678: } alexbrandmeyer@678: if (store_bm_) { alexbrandmeyer@678: bm_.push_back(vector()); alexbrandmeyer@679: for (auto ear : ears) { alexbrandmeyer@678: bm_.back().push_back(ear.zy_memory()); alexbrandmeyer@678: } alexbrandmeyer@678: } alexbrandmeyer@620: }