Guitarix
tunerswitcher.h
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2013 Andreas Degert
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License as published by
6  * the Free Software Foundation; either version 2 of the License, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
17  * --------------------------------------------------------------------------
18  */
19 
20 #pragma once
21 
22 #ifndef SRC_HEADERS_TUNERSWITCHER_H_
23 #define SRC_HEADERS_TUNERSWITCHER_H_
24 
25 /****************************************************************
26  ** class TunerSwitcher
27  */
28 
29 class TunerSwitcher: public sigc::trackable {
30 public:
32 private:
34  mute_on = -1,
35  mute_off = -2,
36  bypass_on = -3,
37  bypass_off = -4,
38  tuner_on = -5,
39  tuner_off = -6,
40  };
43  sigc::signal<void,const Glib::ustring&,const Glib::ustring&> display;
44  sigc::signal<void,SwitcherState> set_state;
45  sigc::signal<void, bool> selection_done;
46  sigc::connection switcher_conn;
47  sigc::connection timeout_conn;
56 private:
58  bool on_state_timeout();
59  void on_tuner_freq_changed();
60  void try_load_preset();
61  bool display_bank_key(int idx);
62  bool display_preset_key(int idx);
63  void change_state(SwitcherState newstate);
64 public:
66  bool get_active() { return switcher_conn.connected(); }
67  void activate(bool tuner_active);
68  void deactivate();
69  void toggle(bool tuner_active);
70  sigc::signal<void,const Glib::ustring&,const Glib::ustring&>& signal_display() { return display; }
71  sigc::signal<void,SwitcherState>& signal_set_state() { return set_state; }
72  sigc::signal<void, bool>& signal_selection_done() { return selection_done; }
73 };
74 
75 #endif // SRC_HEADERS_TUNERSWITCHER_H_
TunerSwitcher::last_bank_idx
int last_bank_idx
Definition: tunerswitcher.h:56
TunerSwitcher::wait_start
@ wait_start
Definition: tunerswitcher.h:35
TunerSwitcher::on_tuner_freq_changed
void on_tuner_freq_changed()
TunerSwitcher::normal_mode
@ normal_mode
Definition: tunerswitcher.h:35
TunerSwitcher::set_state
sigc::signal< void, SwitcherState > set_state
Definition: tunerswitcher.h:46
TunerSwitcher::change_state
void change_state(SwitcherState newstate)
TunerSwitcher::on_state_timeout
bool on_state_timeout()
TunerSwitcher::get_active
bool get_active()
Definition: tunerswitcher.h:68
TunerSwitcher::listening
@ listening
Definition: tunerswitcher.h:35
TunerSwitcher::mute_on
@ mute_on
Definition: tunerswitcher.h:36
TunerSwitcher::deactivate
void deactivate()
TunerSwitcher::signal_selection_done
sigc::signal< void, bool > & signal_selection_done()
Definition: tunerswitcher.h:74
TunerSwitcher::state
SwitcherState state
Definition: tunerswitcher.h:51
TunerSwitcher::wait_stop
@ wait_stop
Definition: tunerswitcher.h:35
gx_engine::GxEngineState
GxEngineState
Definition: gx_modulesequencer.h:289
TunerSwitcher::mute_off
@ mute_off
Definition: tunerswitcher.h:37
TunerSwitcher::engine
gx_engine::GxEngine & engine
Definition: tunerswitcher.h:44
TunerSwitcher::new_tuner_active
bool new_tuner_active
Definition: tunerswitcher.h:55
TunerSwitcher::bypass_off
@ bypass_off
Definition: tunerswitcher.h:39
TunerSwitcher::on_note_timeout
bool on_note_timeout()
TunerSwitcher::display_preset_key
bool display_preset_key(int idx)
TunerSwitcher::settings
gx_preset::GxSettings & settings
Definition: tunerswitcher.h:43
TunerSwitcher::tuner_off
@ tuner_off
Definition: tunerswitcher.h:41
TunerSwitcher::old_tuner_active
bool old_tuner_active
Definition: tunerswitcher.h:54
TunerSwitcher::activate
void activate(bool tuner_active)
TunerSwitcher::tuner_on
@ tuner_on
Definition: tunerswitcher.h:40
gx_preset::GxSettings
Definition: gx_preset.h:140
TunerSwitcher::try_load_preset
void try_load_preset()
TunerSwitcher::display
sigc::signal< void, const Glib::ustring &, const Glib::ustring & > display
Definition: tunerswitcher.h:45
TunerSwitcher::signal_set_state
sigc::signal< void, SwitcherState > & signal_set_state()
Definition: tunerswitcher.h:73
TunerSwitcher::bypass_on
@ bypass_on
Definition: tunerswitcher.h:38
TunerSwitcher::selection_done
sigc::signal< void, bool > selection_done
Definition: tunerswitcher.h:47
TunerSwitcher::current_note
int current_note
Definition: tunerswitcher.h:50
TunerSwitcher::old_engine_state
gx_engine::GxEngineState old_engine_state
Definition: tunerswitcher.h:52
TunerSwitcher::new_engine_state
gx_engine::GxEngineState new_engine_state
Definition: tunerswitcher.h:53
TunerSwitcher::toggle
void toggle(bool tuner_active)
TunerSwitcher::TunerSwitcher
TunerSwitcher(gx_preset::GxSettings &settings, gx_engine::GxEngine &engine)
TunerSwitcher::last_preset_idx
int last_preset_idx
Definition: tunerswitcher.h:57
TunerSwitcher::signal_display
sigc::signal< void, const Glib::ustring &, const Glib::ustring & > & signal_display()
Definition: tunerswitcher.h:72
gx_engine::GxEngine
Definition: gx_engine.h:69
TunerSwitcher::SwitcherState
SwitcherState
Definition: tunerswitcher.h:33
TunerSwitcher
Definition: tunerswitcher.h:29
TunerSwitcher::switcher_conn
sigc::connection switcher_conn
Definition: tunerswitcher.h:48
TunerSwitcher::display_bank_key
bool display_bank_key(int idx)
TunerSwitcher::SwitcherActions
SwitcherActions
Definition: tunerswitcher.h:35
TunerSwitcher::timeout_conn
sigc::connection timeout_conn
Definition: tunerswitcher.h:49