Skip to content

Commit

Permalink
Update eqdlg.h
Browse files Browse the repository at this point in the history
part of changes for hselasky#17 (comment)
  • Loading branch information
iFriendGit authored Nov 16, 2022
1 parent b643d17 commit 55c2cb9
Showing 1 changed file with 180 additions and 37 deletions.
217 changes: 180 additions & 37 deletions src/eqdlg.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,46 +23,189 @@
* SUCH DAMAGE.
*/

#ifndef _HPSJAM_EQDLG_H_
#define _HPSJAM_EQDLG_H_
#include <QMessageBox>
#include <QMutexLocker>
#include <QKeyEvent>

#include <QWidget>
#include <QTextEdit>
#include <QPushButton>
#include <QGridLayout>
#include "hpsjam.h"
#include "eqdlg.h"
#include "clientdlg.h"
#include "peer.h"

#include "texture.h"
HpsJamEqualizer :: HpsJamEqualizer() : gl(this)
{
setWindowTitle(QString("HPS JAM Equalizer"));
setWindowIcon(QIcon(QString(HPSJAM_ICON_FILE)));

g_spec.setTitle(tr("Filter specification"));
g_control.setTitle(tr("Control"));

b_defaults.setText(tr("Defa&ults"));
b_lowpass.setText(tr("&LowPass"));
b_highpass.setText(tr("&HighPass"));
b_bandpass.setText(tr("&BandPass"));
b_longdelay.setText(tr("LongDela&y"));

b_disable.setText(tr("&Disable"));
b_apply.setText(tr("&Apply"));
b_close.setText(tr("&Close"));

edit.setTabChangesFocus(true);

g_spec.gl.addWidget(&edit, 0,0);

g_control.gl.addWidget(&b_defaults, 0,0);
g_control.gl.addWidget(&b_lowpass, 0,1);
g_control.gl.addWidget(&b_highpass, 1,0);
g_control.gl.addWidget(&b_bandpass, 1,1);

g_control.gl.addWidget(&b_longdelay, 0,2);
g_control.gl.addWidget(&b_disable, 0,3);
g_control.gl.addWidget(&b_apply, 1,2);
g_control.gl.addWidget(&b_close, 1,3);

gl.addWidget(&g_spec, 0,0);
gl.addWidget(&g_control, 1,0);
gl.setRowStretch(0,1);

connect(&b_defaults, SIGNAL(released()), this, SLOT(handle_defaults()));
connect(&b_disable, SIGNAL(released()), this, SLOT(handle_disable()));
connect(&b_apply, SIGNAL(released()), this, SLOT(handle_apply()));
connect(&b_close, SIGNAL(released()), this, SLOT(handle_close()));
connect(&b_lowpass, SIGNAL(released()), this, SLOT(handle_lowpass()));
connect(&b_highpass, SIGNAL(released()), this, SLOT(handle_highpass()));
connect(&b_bandpass, SIGNAL(released()), this, SLOT(handle_bandpass()));
connect(&b_longdelay, SIGNAL(released()), this, SLOT(handle_longdelay()));

handle_disable();
}

void
HpsJamEqualizer :: handle_defaults()
{
edit.setText(QString(
"pre-delay 0.0 ms\n"
"EQ-size 2.0 ms\n"
"normalize\n"
"20 1\n"
"25 1\n"
"31.5 1\n"
"40 1\n"
"50 1\n"
"63 1\n"
"80 1\n"
"100 1\n"
"125 1\n"
"160 1\n"
"200 1\n"
"250 1\n"
"315 1\n"
"400 1\n"
"500 1\n"
"630 1\n"
"800 1\n"
"1000 1\n"
"1250 1\n"
"1600 1\n"
"2000 1\n"
"2500 1\n"
"3150 1\n"
"4000 1\n"
"5000 1\n"
"6300 1\n"
"8000 1\n"
"10000 1\n"
"12500 1\n"
"16000 1\n"
"20000 1\n"
));
}

void
HpsJamEqualizer :: handle_disable()
{
edit.setText(QString(
"pre-delay 0.0 ms\n"
"EQ-size 0.0 ms\n"));
}

class HpsJamEqualizer : public HpsJamTWidget
void
HpsJamEqualizer :: handle_lowpass()
{
Q_OBJECT
public:
HpsJamEqualizer();
void keyPressEvent(QKeyEvent *);

HpsJamGroupBox g_spec;
HpsJamGroupBox g_control;
QGridLayout gl;

QTextEdit edit;
HpsJamPushButton b_defaults;
HpsJamPushButton b_disable;
HpsJamPushButton b_apply;
HpsJamPushButton b_close;
HpsJamPushButton b_lowpass;
HpsJamPushButton b_highpass;
HpsJamPushButton b_bandpass;
HpsJamPushButton b_longdelay;

public slots:
void handle_defaults();
void handle_disable();
void handle_apply();
void handle_close();
void handle_lowpass();
void handle_highpass();
void handle_bandpass();
void handle_longdelay();
edit.setText(QString(
"pre-delay 0.0 ms\n"
"EQ-size 2.0 ms\n"
"norm\n"
"150 1\n"
"1000 0\n"
));
}

void
HpsJamEqualizer :: handle_highpass()
{
edit.setText(QString(
"pre-delay 0.0 ms\n"
"EQ-size 2.0 ms\n"
"normalize\n"
"150 0\n"
"1000 1\n"
));
}

void
HpsJamEqualizer :: handle_bandpass()
{
edit.setText(QString(
"pre-delay 0.0 ms\n"
"EQ-size 2.0 ms\n"
"normalize\n"
"250 0\n"
"500 1\n"
"1000 1\n"
"2000 0\n"
));
};

void
HpsJamEqualizer :: handle_longdelay()
{
int rtt_ms;

if (1) {
QMutexLocker locker(&hpsjam_client_peer->lock);
rtt_ms = hpsjam_client_peer->output_pkt.ping_time +
hpsjam_client_peer->input_pkt.jitter.get_jitter_in_ms();
}

edit.setText(QString(
"pre-delay %1.0 ms\n"
"EQ-size 0.0 ms\n"
"normalize\n"
).arg(rtt_ms + 8));
};

#endif /* _HPSJAM_EQDLG_H_ */
void
HpsJamEqualizer :: handle_apply()
{
ssize_t len = edit.toPlainText().toLatin1().length();
if (len > 255) {
QMessageBox::information(this, tr("EQUALIZER"),
tr("Number of characters %1 in\n"
"filter specification is greater than 255!\n").arg(len));
}
}

void
HpsJamEqualizer :: keyPressEvent(QKeyEvent *key)
{
if (key->key() == Qt::Key_Escape) {
hide();
}
}

void
HpsJamEqualizer :: handle_close()
{
hide();
}

0 comments on commit 55c2cb9

Please sign in to comment.