File: tuner.h

package info (click to toggle)
gxtuner 3.0-3
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, forky, sid
  • size: 496 kB
  • sloc: cpp: 3,901; ansic: 1,222; makefile: 437; xml: 7
file content (149 lines) | stat: -rw-r--r-- 5,131 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
/*
 * Copyright (C) 2011 Hermann Meyer, Andreas Degert
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
 * ---------------------------------------------------------------------------
 *
 *        file: tuner.h   guitar tuner for jack
 *
 * ----------------------------------------------------------------------------
 */

#pragma once

#ifndef _TUNER_H_
#define _TUNER_H_

#include <gtk/gtk.h>
//#include <gtk/gtkprivate.h>

#include <jack/jack.h>

#include <string> 
#include <cmath>
#include <cstdlib>



typedef std::string (*getcmdvar)
             (int x);
typedef float (*getptvar)
             ();
typedef jack_port_t* (*getport)
             ();
typedef jack_client_t* (*getclient)
             ();
typedef void (*setptvar)
             (float x);

// the tuner widget class, add all functions and widget pointers 
// used in the tuner class here.

class TunerWidget {
 private:
    int                 desk;
    GtkAdjustment*      adjt;
    GtkAdjustment*      adj;
    GtkWidget*          window;
    GtkWidget*          tuner;
    GError*             err;
    GtkWidget*          box;
    GtkWidget*          box1;
    GtkWidget*          box2;
    GtkWidget*          abox;  
    GtkWidget*          bbox; 
    GtkWidget*          cbox; 
    GtkWidget*          dbox; 
    GtkWidget*          ebox;
    GtkWidget*          fbox;
    GtkWidget*          gbox;
    GtkWidget*          hbox;
    GtkWidget*          habox;
    GtkWidget*          hbbox;
    GtkWidget*          hcbox;
    GtkWidget*          hhbox;
    GtkWidget*          ibox;
    GtkWidget*          jbox;
    GtkWidget*          kbox;
    GtkWidget*          lbox;
    GtkWidget*          mbox;
    GtkWidget*          nbox;
    GtkWidget*          obox;
    GtkWidget*          pbox;
    //GtkWidget*          pabox;
    //GtkWidget*          pbbox;
    //GtkWidget*          pcbox;
    GtkWidget*          spinner;
    GtkWidget*          spinnert;
    GtkWidget*          selectord; //changes mode
    GtkWidget*          selectore; // changes reference note
    GtkWidget*          selectorf; // 03comma
    GtkWidget*          selectorg; // 05comma
    GtkWidget*          selectorh; // 07comma 
    GtkWidget*          selectori; // 11comma
    GtkWidget*          selectorj; // 13comma
    GtkWidget*          selectork; // 17comma
    GtkWidget*          selectorl; // 19comma
    GtkWidget*          selectorm; // 23comma
    GtkWidget*          selectorn; // 29comma
    GtkWidget*          selectoro; // 31comma
    
    static gboolean     delete_event(GtkWidget *widget, GdkEvent *event,
                             gpointer data);
    static gboolean     ref_freq_changed(gpointer arg);
    static gboolean     threshold_changed(gpointer arg);
    static gboolean     mode_changed(gpointer arg);
    static gboolean     reference_note_changed(gpointer arg); //#1
    static gboolean     reference_03comma_changed(gpointer arg);
    static gboolean     reference_05comma_changed(gpointer arg);
    static gboolean     reference_07comma_changed(gpointer arg);
    static gboolean     reference_11comma_changed(gpointer arg);
    static gboolean     reference_13comma_changed(gpointer arg);
    static gboolean     reference_17comma_changed(gpointer arg);
    static gboolean     reference_19comma_changed(gpointer arg);
    static gboolean     reference_23comma_changed(gpointer arg);
    static gboolean     reference_29comma_changed(gpointer arg);
    static gboolean     reference_31comma_changed(gpointer arg);
    static void         destroy( GtkWidget *widget, gpointer data);
 public:
    explicit TunerWidget();
    ~TunerWidget();
    int                 g_threads;
    void*               get_tuner() { return tuner;}
    void*               get_window() { return window;}
    void                session_quit();
    void                create_window();
    void                parse_cmd();
    void                show();
    void                window_area(int* x, int* y, int* w, int* l) {
        gtk_window_get_position(GTK_WINDOW(window), x, y);
        gtk_window_get_size(GTK_WINDOW(window), w, l);
    }
    static void         signal_handler(int sig);
    static gboolean     gx_update_frequency(gpointer arg);
};
extern TunerWidget tw;

class CmdPtr {
 public:
    getcmdvar           cv;
    getport             gp;
    getclient           gc;
    getptvar            ef;
    setptvar            sf;
};
extern CmdPtr *cptr;

#endif // _TUNER_H_