aboutsummaryrefslogtreecommitdiffstats
path: root/src/DabMod.cpp
diff options
context:
space:
mode:
authorMatthias P. Braendli <matthias.braendli@mpb.li>2017-12-25 05:08:14 +0100
committerMatthias P. Braendli <matthias.braendli@mpb.li>2017-12-25 05:08:14 +0100
commit2a199ca830cb1338b5c52ca5f147ebef26330d22 (patch)
tree27cb32b7371a97160dcd1dc1f794312074c18b81 /src/DabMod.cpp
parent626cfba78e2885200450ff8b4f4cf09ff6d0b830 (diff)
downloaddabmod-2a199ca830cb1338b5c52ca5f147ebef26330d22.tar.gz
dabmod-2a199ca830cb1338b5c52ca5f147ebef26330d22.tar.bz2
dabmod-2a199ca830cb1338b5c52ca5f147ebef26330d22.zip
Do not use out_of_range for multiplex reconfiguration error
Diffstat (limited to 'src/DabMod.cpp')
-rw-r--r--src/DabMod.cpp15
1 files changed, 9 insertions, 6 deletions
diff --git a/src/DabMod.cpp b/src/DabMod.cpp
index dfefb53..b6f2dee 100644
--- a/src/DabMod.cpp
+++ b/src/DabMod.cpp
@@ -36,6 +36,7 @@
#include "InputMemory.h"
#include "OutputFile.h"
#include "FormatConverter.h"
+#include "FrameMultiplexer.h"
#if defined(HAVE_OUTPUT_UHD)
# include "OutputUHD.h"
#endif
@@ -534,17 +535,19 @@ run_modulator_state_t run_modulator(modulator_data& m)
running = 0;
ret = run_modulator_state_t::normal_end;
}
- } catch (zmq_input_overflow& e) {
+ }
+ catch (const zmq_input_overflow& e) {
// The ZeroMQ input has overflowed its buffer
etiLog.level(warn) << e.what();
ret = run_modulator_state_t::again;
- } catch (std::out_of_range& e) {
- // One of the DSP blocks has detected an invalid change
- // or value in some settings. This can be due to a multiplex
- // reconfiguration.
+ }
+ catch (const FrameMultiplexerError& e) {
+ // The FrameMultiplexer saw an error or a change in the size of a
+ // subchannel. This can be due to a multiplex reconfiguration.
etiLog.level(warn) << e.what();
ret = run_modulator_state_t::reconfigure;
- } catch (std::exception& e) {
+ }
+ catch (const std::exception& e) {
etiLog.level(error) << "Exception caught: " << e.what();
ret = run_modulator_state_t::failure;
}