From 1d213a9db9b725dc285e92021f35e2f83a813080 Mon Sep 17 00:00:00 2001 From: Nikolay Tischenko Date: Mon, 27 Sep 2010 22:52:16 +0700 Subject: [PATCH] Implemented equalizer Added missed license info Removed debug output --- resources/deselect_all.png | Bin 0 -> 5831 bytes resources/resources.qrc | 2 + resources/select_all.png | Bin 0 -> 6346 bytes someplayer.pro | 9 ++- src/busywidget.cpp | 1 - src/config.cpp | 19 +++++ src/config.h | 19 +++++ src/dbstorage.cpp | 15 ---- src/equalizerdialog.cpp | 128 +++++++++++++++++++++++++++++ src/equalizerdialog.h | 61 ++++++++++++++ src/filestorage.cpp | 1 - src/library.cpp | 1 - src/libraryform.cpp | 16 +++- src/libraryform.h | 1 + src/mainwindow.cpp | 25 ++++++ src/mainwindow.h | 4 + src/player/player.cpp | 66 ++++++++++++++- src/player/player.h | 30 +++++++ src/playerform.cpp | 1 - src/playerform.h | 9 ++- src/playlist.cpp | 1 - src/someplayer.h | 2 +- src/tagresolver.cpp | 1 - src/timerdialog.cpp | 20 ++++- src/timerdialog.h | 19 +++++ src/ui/equalizerdialog.ui | 190 ++++++++++++++++++++++++++++++++++++++++++++ src/ui/libraryform.ui | 32 ++++++++ src/ui/playerform.ui | 6 ++ 28 files changed, 646 insertions(+), 33 deletions(-) create mode 100644 resources/deselect_all.png create mode 100644 resources/select_all.png create mode 100644 src/equalizerdialog.cpp create mode 100644 src/equalizerdialog.h create mode 100644 src/ui/equalizerdialog.ui diff --git a/resources/deselect_all.png b/resources/deselect_all.png new file mode 100644 index 0000000000000000000000000000000000000000..cd56d695e3615163c6e244be24b32ccb99d4a879 GIT binary patch literal 5831 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.png fullscreen.png volume.png + select_all.png + deselect_all.png diff --git a/resources/select_all.png b/resources/select_all.png new file mode 100644 index 0000000000000000000000000000000000000000..3d498d21d685f6f12befd99679b0a1ea9fe8a4d2 GIT binary patch literal 6346 zcmcIo2{@Ep`+r2pUeZE(#}E>;VKBxzW8b$dp~lQ(OqdxnW9?0&vZV+W5vks?D=89X zsk8`DDIsM^Dk>5se9usQdcVH!e|_I|{pXr_X3jbH{rmmSeeQFgb4{Y7y@j}ltOx)A z;#QVKXXqQn`v?m{PxobC;sIdA0L|5d<6&ouBQt^#Bnrb1L_`ELp>Y7f8$~clZTbD1wi`K>)!ZhXjiV z4x+Ph5eD!DTpaY9*Nue37ECyS25=J|A3g2?l||Af3a8ywJbcLwwFOY5<4*)9n|v5hUgU5o^Kb@1FnJ zXX)G^8auoHY#to^3p|@+76wK3`zrlb6x%hD2_l_AHY1cp2F=2t2`Vm-{){n>NaBD5 z76?6|l*FLWC=C=EdjHJ|vY^l)GF~oFA(SA{pF{=`&~p9F&?J--z+kZ*8EhIa1)$_) zabQFm3nX(GtOeVpON6tcbHJb=XfTu%WC7B7%gUrdrc@Sb5g7^#&JN0V3W-DFNnN5* z(-nipX`yhMT3b+P91697z7R$Tmdzp2$)FX{01ovaXfz5=TNA5ms;fyf(KXj4nxWCU z7&O65%M?S9-{CDmSP%hBuq@e!^hPRPm_+NswusjSFfdTC{ zGRKPU&sf+@zuM4DC@cbv6KMcBCgqOqv&5&Mk|fy07u2vHz8 z0OkxbL;Zqi<|G5RF$!a6u$G6X(fmReijh5ouEFaE zS!5b12xiZK5kVF$jKqN)*mxwbRt3?%b1t-gkm8ZQO2R`;GH=H)SW6_jfFZw1G&BhU zBS>@#$b#9>*id;1`yI&-w*``=s5}Re?;cjJpE@3cp>lv_iFyXlJ?)K1Yp|j%W@$=i#{?nKo0BwBUafRgFgm@}?sO}dmY!??5S8YA_<*bv z>i|H+fkq%WI{vuYz^n)a7?Z{Drv-rk5b-R>h3e`uvc_QQ`6pAG1nv+?%-J-F zyE;`_O<{$Ub%MgFE*YnWm1brFa(D6)_>+^l2W6bp#SVx(6&h4HoxJZ%!hw4;FL#{@ z?5v%7)iQVaiQ#a`L{3GUP`$9&F-uJ+ZLV0M>Bf~W_T9eO^l}hk93!H{1f+y3C<^RZ zMLu9U8js%suNS%w@I^cn6$a|&1$9H=cMY|2y<5h#!<;iV&QB;fo_8$jUn~%HW zKW-_L8difMb^Ic}T1n3=W}C1^h>*KGVxwxS)!Hqqv7}|BEMr7tk`OV!OthI>C9kpWndTP+Kw67yw>!qTA=xkrlFBeL-&U-04kY z0s+3Fd7)ED{ud>UF9Ufa&)g@Nyx5qXI$Yh=H8eQ*)cU6BHqt%!-E-8&?e*@nL0_Wr z-=-#CT<=$k!T7{j2u#0dy#LAe?1r|q75n{qUZq%ks}i06CjStA)5@>fLv8hd)2fhU zV%EV4%vpG%Y1-ynn>ywx{e9{){Dytnz=fTLe7jOL3Vg`?pKVm6JUI3JQvfht!)SP< zD$LIf*!Qw6eEz-BtVP}?fa`CS76JgiL?wjly$Yk-!T>#DCvCpVYFOT>zsWG`$j;jc-YB)64^ z3#^JUt6zZ?2see1Hkw#^*m~GMwJd;bP|{lYY=zDW{{2pkD)96In@h@9SAMy<&JTl* z_pnq~>|B*1jg;DzK)9)+v?`H+QK>$>%&Pn^*N#;k<{flr#S!(wY%NP!#q_(+D1jG+ z^p2>*w%myw%o)5fs5vM%s4%`wB*)J<L(*SEIk8J!caIJ#X0Fa3K8UlvloeptcDnN?u2m4K7s+2^ zXMme5Llgy`l{-~K46mc-k7edw_vPl=GV-5CUK{?pVK;KtbvF2G{-lMNhhT-6l3=%3 z>pJ``?GOfD9(lX_qZ7gBhB4tR=_o1V<^I&_cKn&g=7-EB57L^v2b2ban}VCpC<`hp zDBIY*u^Y>BwyQq3`JBG3zU}Rn`z@ziI*)5-8=#+HhO>vWpJew{?eL25Qm-tiyaHNX z9P~QpIaXOqkM+{?JnP}+^;=7=x>a^#Ed5&g?yI{G%^C=a$9G8-%X`U3voEn$&1ooj>EoXHTM zmr)&)IoTE2jiUwK=f|*Pw6XY}llQewZqD`8WIwoZhw#E_sNG2P$UrDqB!6Alv zc~}uiMy9%#KDkhJHoRzx^nR`3XG7M>0mA{j&U4Ij&+Yeh>Z|TlH9Op3hut z!=(yS!P$LQCc4}?gsNJ%%M#Z+SBW8LG7l9>q}vhC;$?eO*<0=tj+m3WN! zJe!Jk&^xbTt*vHQgxHCHrgK&6s!aSJ?MJhx6z6C{+xc% zfn94ek#~HUk*8W4KgH&+DMYMN#~m}aO|aKJ^1(z(tzgZ;P2e3~<-b`_fVm zhnN;A*riue-%wxqhc%agu@~oV(UYo>8;=Uz4Xij^vfNWcq|)@TUti%SKRA9taIZ1$@$S$jjLX!Ri2Hrao3Rdcy+C0r`|<;NMyIjfXwnO zaa#pT@K+90ss%rGC?0jsD2u+P9Ay_6Oe(diGr= zeT~bJGn7d@P`0{zZHCOAr>Z>>Lvrzqdv(Wqj$A4%zFAFa^Y8EY{A|{Z%xF>VuGv>fs6JDNzfue4-)(KtH*)>U^^@yYSL|3v?`6`H zX?pvZ+^*WsTJIirZ>yb}HN1Ph+l|l7?y>)4aK>t;V#=s2v1nxa*i5ibseN$B=xzQE z{#hYKiOMI{j~>f+7`Qs8bZ&WTA#wYU>vK8p!!^XQ;%1yGA7S!TdE`#htnn=KY?rK=ZGPLXI@~vG?|kz->YGLPACf1u@Sc&@6Rvk@ z&qnq>Os9^w9n3kJvpX8`rDsR?>B?QhKf|l^&7EfN516~+9++xxohW6&o!5=U4x9C ze*E@HYkOww zY>(=Ez?bq#mk0SX>Fd+e=LPsPC%%z2HM*huCX8(9YzF{Qn*e~j4*3fy?&(rA}QDOv?*g!mK-Mnm^$wUCrHCI1OWmz2Qi1>}yEuvStib%H6H|IV~PF}Vq zj-S|L<)SzkX=+h74tHGXk>pd83sVSJDX-=i1#;!u5aa}w~v z2*eE98ZX~raVFIV8z%jv zv-6VVDvZ$8)^Chu8-Y2_k;4{x3i0A|A3wI+VYlih-}0j-3;301VmC`U+h%1Ho~*6&qx7&JRxf~`eYKZu5Wlbl0m0;R^J3k!&fX!5 zAtRO>Yh0S;mc3O0-raQ&cwue&BsACY%ek4-QjJ5|+&?4(vix%*cS$E&c52yOIP@|n zQpzcK*RJd>=`+fCMQ@B;>K(jN6S9hm=19qU<9xnr1Y-0&9^P&>cB_c>_5jQ zqaGiY&Td?{CGm8@M^1Frsh5emM9v0y#8I^J$GvrRbx8hz=`^X8Ij!YAmGkx*8&lXL zb7Ny=*2MhlXC91=jZGa^QhNXH-J{5cZRqK=2m6Ut-LV8=@sb%L{9{f&xvG2i!uBb< z`b)AaW%T;>bo+P5<`0aHmJW~zdHBPYN?O1sxU+w6m~#5vK;#D<9UZp{?=M^p=H^se zW$LDo6V_*CPrP&vyMcAlIAVQvZ<=Gr$R`IQA&*>vyVK7T@7^b+(u)XeWP2uGxGGY%RU z)Q9Yp$Hv^VP0CDA8x530sgPB5G7H(Yv0z&EoV{>u&Dq-8TCss+7_s6F8#ZV? z?{&6+*WV9+S8>wQ4u{8=I1GM{0e}-HPiEMy>Srj+6*{VFmAt)`%C#~DV8>JQt{A^K q5UH=WR%Ch0^%q_4^EEB={D8N?C0Wso$Ofo-09I!9#4^(zd;bAv{VpB= literal 0 HcmV?d00001 diff --git a/someplayer.pro b/someplayer.pro index f7e5f1b..32a62e7 100644 --- a/someplayer.pro +++ b/someplayer.pro @@ -117,7 +117,8 @@ SOURCES += src/main.cpp\ src/taglib/wavpack/wavpackproperties.cpp \ src/taglib/wavpack/wavpackfile.cpp \ src/edittagsdialog.cpp \ - src/timerdialog.cpp + src/timerdialog.cpp \ + src/equalizerdialog.cpp HEADERS += src/mainwindow.h \ src/player/player.h \ @@ -212,7 +213,8 @@ HEADERS += src/mainwindow.h \ src/taglib/wavpack/wavpackproperties.h \ src/taglib/wavpack/wavpackfile.h \ src/edittagsdialog.h \ - src/timerdialog.h + src/timerdialog.h \ + src/equalizerdialog.h FORMS += src/ui/mainwindow.ui \ src/ui/playerform.ui \ @@ -220,7 +222,8 @@ FORMS += src/ui/mainwindow.ui \ src/ui/busywidget.ui \ src/ui/playlistdialog.ui \ src/ui/edittagsdialog.ui \ - src/ui/timerdialog.ui + src/ui/timerdialog.ui \ + src/ui/equalizerdialog.ui CONFIG += mobility MOBILITY = diff --git a/src/busywidget.cpp b/src/busywidget.cpp index c615376..cc05758 100644 --- a/src/busywidget.cpp +++ b/src/busywidget.cpp @@ -19,7 +19,6 @@ #include "busywidget.h" #include "ui_busywidget.h" -#include BusyWidget::BusyWidget(QWidget *parent) : QWidget(parent), diff --git a/src/config.cpp b/src/config.cpp index 422e294..286cca1 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -1,3 +1,22 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + #include "config.h" #include #include diff --git a/src/config.h b/src/config.h index b1d98ed..3eeb279 100644 --- a/src/config.h +++ b/src/config.h @@ -1,3 +1,22 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + #ifndef CONFIG_H #define CONFIG_H diff --git a/src/dbstorage.cpp b/src/dbstorage.cpp index 8b29483..aba866c 100644 --- a/src/dbstorage.cpp +++ b/src/dbstorage.cpp @@ -20,7 +20,6 @@ #include "dbstorage.h" #include #include -#include using namespace SomePlayer::Storage; using namespace SomePlayer::DataObjects; @@ -323,7 +322,6 @@ void DbStorage::addTrack(Track track) { int artist_id = _check_add_artist(artist); int album_id = _check_add_album(album, artist_id); if (artist_id == -1 || album_id == -1) { - qDebug () << "one"; //big bang return; } @@ -331,7 +329,6 @@ void DbStorage::addTrack(Track track) { query->bindValue(":source", source); query->exec(); if (query->next()) { - qDebug () << "two"; // already in datebase, skip return; } @@ -353,15 +350,12 @@ void DbStorage::addTrack(Track track) { if (query->exec()) { // ok } else { - qDebug () << "three"; // big bang } } else { - qDebug () << "four"; // big bang } } else { - qDebug () << "five"; // big bang } } @@ -388,25 +382,16 @@ void DbStorage::updateTrackCount(Track track) { Track DbStorage::updateTrack(Track track) { QSqlQuery *query = _remove_track_query; query->bindValue(":id", track.id()); - if (!query->exec()) { - qDebug() << "Problem here"; - } addTrack(track); query = _get_track_by_source_query; query->bindValue(":source", track.source()); query->exec(); if (query->next()) { - qDebug() << "enter"; int id = query->value(0).toInt(); - qDebug() << id; QString title = query->value(1).toString(); - qDebug() << title; QString artist = query->value(2).toString(); - qDebug() << artist; QString album = query->value(3).toString(); - qDebug() << album; QString source = query->value(4).toString(); - qDebug() << source; int count = query->value(5).toInt(); int length = query->value(6).toInt(); TrackMetadata meta(title, artist, album, length); diff --git a/src/equalizerdialog.cpp b/src/equalizerdialog.cpp new file mode 100644 index 0000000..847d408 --- /dev/null +++ b/src/equalizerdialog.cpp @@ -0,0 +1,128 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + +#include "equalizerdialog.h" +#include "ui_equalizerdialog.h" + +EqualizerDialog::EqualizerDialog(QWidget *parent) : + QDialog(parent), + ui(new Ui::EqualizerDialog) +{ + ui->setupUi(this); + ui->band0Slider->setMinimum(-240); + ui->band0Slider->setValue(0); + ui->band1Slider->setMinimum(-240); + ui->band1Slider->setValue(0); + ui->band2Slider->setMinimum(-240); + ui->band2Slider->setValue(0); + ui->band3Slider->setMinimum(-240); + ui->band3Slider->setValue(0); + ui->band4Slider->setMinimum(-240); + ui->band4Slider->setValue(0); + ui->band5Slider->setMinimum(-240); + ui->band5Slider->setValue(0); + ui->band6Slider->setMinimum(-240); + ui->band6Slider->setValue(0); + ui->band7Slider->setMinimum(-240); + ui->band7Slider->setValue(0); + ui->band8Slider->setMinimum(-240); + ui->band8Slider->setValue(0); + ui->band9Slider->setMinimum(-240); + ui->band9Slider->setValue(0); + + ui->band0Slider->setMaximum(120); + ui->band1Slider->setMaximum(120); + ui->band2Slider->setMaximum(120); + ui->band3Slider->setMaximum(120); + ui->band4Slider->setMaximum(120); + ui->band5Slider->setMaximum(120); + ui->band6Slider->setMaximum(120); + ui->band7Slider->setMaximum(120); + ui->band8Slider->setMaximum(120); + ui->band9Slider->setMaximum(120); + + connect(ui->band0Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value0_changed(int))); + connect(ui->band1Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value1_changed(int))); + connect(ui->band2Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value2_changed(int))); + connect(ui->band3Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value3_changed(int))); + connect(ui->band4Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value4_changed(int))); + connect(ui->band5Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value5_changed(int))); + connect(ui->band6Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value6_changed(int))); + connect(ui->band7Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value7_changed(int))); + connect(ui->band8Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value8_changed(int))); + connect(ui->band9Slider, SIGNAL(sliderMoved(int)), this, SLOT(_value9_changed(int))); + + connect(ui->enableToggleButton, SIGNAL(clicked()), this, SLOT(_state_changed())); + +} + +EqualizerDialog::~EqualizerDialog() +{ + delete ui; +} + +void EqualizerDialog::setValue(int band, int val) { + switch (band) { + case 0: + ui->band0Slider->setValue(val); break; + case 1: + ui->band1Slider->setValue(val); break; + case 2: + ui->band2Slider->setValue(val); break; + case 3: + ui->band3Slider->setValue(val); break; + case 4: + ui->band4Slider->setValue(val); break; + case 5: + ui->band5Slider->setValue(val); break; + case 6: + ui->band6Slider->setValue(val); break; + case 7: + ui->band7Slider->setValue(val); break; + case 8: + ui->band8Slider->setValue(val); break; + case 9: + ui->band9Slider->setValue(val); break; + } + +} + +void EqualizerDialog::_state_changed() { + if (ui->enableToggleButton->isChecked()) { + setEqualizerEnabled(true); + emit equalizerEnabled(); + } else { + setEqualizerEnabled(false); + emit equalizerDisabled(); + } +} + +void EqualizerDialog::setEqualizerEnabled(bool enabled) { + ui->band0Slider->setEnabled(enabled); + ui->band1Slider->setEnabled(enabled); + ui->band2Slider->setEnabled(enabled); + ui->band3Slider->setEnabled(enabled); + ui->band4Slider->setEnabled(enabled); + ui->band5Slider->setEnabled(enabled); + ui->band6Slider->setEnabled(enabled); + ui->band7Slider->setEnabled(enabled); + ui->band8Slider->setEnabled(enabled); + ui->band9Slider->setEnabled(enabled); + ui->enableToggleButton->setChecked(enabled); +} diff --git a/src/equalizerdialog.h b/src/equalizerdialog.h new file mode 100644 index 0000000..8486677 --- /dev/null +++ b/src/equalizerdialog.h @@ -0,0 +1,61 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + +#ifndef EQUALIZERDIALOG_H +#define EQUALIZERDIALOG_H + +#include + +namespace Ui { + class EqualizerDialog; +} + +class EqualizerDialog : public QDialog +{ + Q_OBJECT +public: + explicit EqualizerDialog(QWidget *parent = 0); + ~EqualizerDialog(); +signals: + void valueChanged(int, int); + void equalizerDisabled(); + void equalizerEnabled(); + +public slots: + void setValue(int, int); + void setEqualizerEnabled(bool); + +private slots: + void _value0_changed(int v) { emit valueChanged(0, v);} + void _value1_changed(int v) { emit valueChanged(1, v);} + void _value2_changed(int v) { emit valueChanged(2, v);} + void _value3_changed(int v) { emit valueChanged(3, v);} + void _value4_changed(int v) { emit valueChanged(4, v);} + void _value5_changed(int v) { emit valueChanged(5, v);} + void _value6_changed(int v) { emit valueChanged(6, v);} + void _value7_changed(int v) { emit valueChanged(7, v);} + void _value8_changed(int v) { emit valueChanged(8, v);} + void _value9_changed(int v) { emit valueChanged(9, v);} + + void _state_changed(); +private: + Ui::EqualizerDialog *ui; +}; + +#endif // EQUALIZERDIALOG_H diff --git a/src/filestorage.cpp b/src/filestorage.cpp index a80b733..3dab290 100644 --- a/src/filestorage.cpp +++ b/src/filestorage.cpp @@ -23,7 +23,6 @@ #include #include #include -#include using namespace SomePlayer::Storage; using namespace SomePlayer::DataObjects; diff --git a/src/library.cpp b/src/library.cpp index 7f8165b..d175f5a 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -18,7 +18,6 @@ */ #include "library.h" -#include using namespace SomePlayer::DataObjects; using namespace SomePlayer::Storage; diff --git a/src/libraryform.cpp b/src/libraryform.cpp index 5fd2177..0db0ebd 100644 --- a/src/libraryform.cpp +++ b/src/libraryform.cpp @@ -26,9 +26,9 @@ #include #include "track.h" #include "playlist.h" -#include #include #include +#include using namespace SomePlayer::DataObjects; @@ -72,6 +72,7 @@ LibraryForm::LibraryForm(Library *lib, QWidget *parent) : connect(ui->dynamicButton, SIGNAL(clicked()), this, SLOT(_dynamic_button())); connect(ui->listView, SIGNAL(clicked(QModelIndex)), this, SLOT(_process_list_click(QModelIndex))); connect(ui->addButton, SIGNAL(clicked()), this, SLOT(_add_button())); + connect(ui->selectAllButton, SIGNAL(clicked()), this, SLOT(_toggle_select_all_button())); connect(ui->backButton, SIGNAL(clicked()), this, SLOT(_back_button())); connect(ui->deleteButton, SIGNAL(clicked()), this, SLOT(_delete_button())); connect(ui->useButton, SIGNAL(clicked()), this, SLOT(_use_button())); @@ -283,7 +284,6 @@ void LibraryForm::_delete_button() { int count = to_delete.count(); for (int i = count-1; i >= 0; i--) { _current_playlist.removeTrackAt(to_delete.at(i)); - qDebug() << "Removing from" << _current_playlist.name() << to_delete.at(i); } _current_tracks = _current_playlist.tracks(); _lib->savePlaylist(_current_playlist); @@ -299,7 +299,6 @@ void LibraryForm::_delete_button() { for (int i = count-1; i >= 0; i--) { QString name = _model->item(to_delete.at(i))->text(); if (name != _CURRENT_PLAYLIST_SUBST_) { - qDebug() << "deleting " << name; _lib->removePlaylist(name); _model->removeRow(to_delete.at(i)); } @@ -384,3 +383,14 @@ void LibraryForm::refresh() { break; } } + +void LibraryForm::_toggle_select_all_button() { + if (ui->listView->selectionModel()->selectedIndexes().count() == ui->listView->model()->rowCount()) { + ui->listView->selectionModel()->clearSelection(); + ui->selectAllButton->setIcon(QIcon(":/icons/select_all.png")); + } else { + ui->listView->selectAll(); + ui->selectAllButton->setIcon(QIcon(":/icons/deselect_all.png")); + } +} + diff --git a/src/libraryform.h b/src/libraryform.h index 6672789..60a276f 100644 --- a/src/libraryform.h +++ b/src/libraryform.h @@ -60,6 +60,7 @@ private slots: void _view_button(); void _dynamic_button(); void _playlists_button(); + void _toggle_select_all_button(); void _add_button(); void _delete_button(); void _back_button(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index e365dc1..2767608 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -28,6 +28,7 @@ #include "library.h" #include "timerdialog.h" +#include "equalizerdialog.h" using namespace SomePlayer::DataObjects; using namespace SomePlayer::Storage; @@ -46,6 +47,7 @@ MainWindow::MainWindow(QWidget *parent) : _library_form = new LibraryForm(_library, ui->stackedWidget); _busy_widget = new BusyWidget(ui->stackedWidget); _timer = new QTimer(this); + _equalizer_dialog = new EqualizerDialog(this); ui->stackedWidget->insertWidget(0, _player_form); ui->stackedWidget->insertWidget(1, _library_form); ui->stackedWidget->insertWidget(2, _busy_widget); @@ -54,6 +56,7 @@ MainWindow::MainWindow(QWidget *parent) : QAction *clear_playlist = ui->menuLibrary->addAction("Clear current playlist"); QAction *add_files = ui->menuLibrary->addAction("Add file to current playlist"); QAction *set_timer = ui->menuBar->addAction("Set timer"); + QAction *equalizer = ui->menuBar->addAction("Euqalizer"); connect(_player_form, SIGNAL(library()), this, SLOT(library())); connect(_library_form, SIGNAL(player()), this, SLOT(player())); connect(add_directory, SIGNAL(triggered()), this, SLOT(_add_directory())); @@ -61,6 +64,7 @@ MainWindow::MainWindow(QWidget *parent) : connect(clear_playlist, SIGNAL(triggered()), this, SLOT(_clear_current_playlist())); connect(add_files, SIGNAL(triggered()), this, SLOT(_add_files())); connect(set_timer, SIGNAL(triggered()), this, SLOT(_set_timer())); + connect(equalizer, SIGNAL(triggered()), this, SLOT(_equalizer())); connect(_library, SIGNAL(done()), this, SLOT(library())); connect(_library, SIGNAL(done()), _library_form, SLOT(refresh())); connect(_library, SIGNAL(addingTracks(int)), _busy_widget, SLOT(setMax(int))); @@ -75,6 +79,9 @@ MainWindow::MainWindow(QWidget *parent) : connect(ui->prevButton, SIGNAL(clicked()), this, SLOT(_prevItem())); connect(ui->fscreenButton, SIGNAL(clicked()), this, SLOT(_toggle_full_screen())); connect(_timer, SIGNAL(timeout()), this, SLOT(_timeout())); + connect(_equalizer_dialog, SIGNAL(valueChanged(int,int)), this, SLOT(_equalizer_value_changed(int, int))); + connect(_equalizer_dialog, SIGNAL(equalizerEnabled()), _player_form, SLOT(enableEqualizer())); + connect(_equalizer_dialog, SIGNAL(equalizerDisabled()), _player_form, SLOT(disableEqualizer())); hideSearchPanel(); library(); } @@ -261,3 +268,21 @@ void MainWindow::_timeout() { _player_form->stop(); _timer->stop(); } + +void MainWindow::_equalizer() { + if (_player_form->isEqualizerAvailable()) { + double val = 0; + for (int i = 0; i < 10; i++) { + _player_form->equalizerValue(i, &val); + _equalizer_dialog->setValue(i, (int)(val * 10 + 0.5)); + } + _equalizer_dialog->setEqualizerEnabled(_player_form->isEqualizerEnabled()); + _equalizer_dialog->exec(); + } else { + QMessageBox::information(this, "Error", "No equalizer support. Please install gstreamer0.10-plugins-good-extra"); + } +} + +void MainWindow::_equalizer_value_changed(int band, int val) { + _player_form->setEqualizerValue(band, (val / 10.0)); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index 3a274a0..0239c59 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -25,6 +25,7 @@ #include "playerform.h" #include "libraryform.h" #include "busywidget.h" +#include "equalizerdialog.h" #include "library.h" #include @@ -66,12 +67,15 @@ private slots: void _toggle_full_screen(); void _set_timer(); void _timeout(); + void _equalizer(); + void _equalizer_value_changed(int, int); private: PlayerForm *_player_form; LibraryForm *_library_form; BusyWidget *_busy_widget; Library *_library; QTimer *_timer; + EqualizerDialog *_equalizer_dialog; }; #endif // MAINWINDOW_H diff --git a/src/player/player.cpp b/src/player/player.cpp index 05d37cd..9395d8f 100644 --- a/src/player/player.cpp +++ b/src/player/player.cpp @@ -19,6 +19,11 @@ #include "player.h" #include +#include +#include +#include +#include "../config.h" +#include using namespace SomePlayer::Playback; using namespace SomePlayer::DataObjects; @@ -30,10 +35,30 @@ Player::Player(QObject *parent) : _player = new Phonon::MediaObject(this); _output = new Phonon::AudioOutput(Phonon::MusicCategory, this); _player->setTickInterval(1000); + _equalizer == NULL; + _equalizer_enabled == false; + QList effects = Phonon::BackendCapabilities::availableAudioEffects(); + foreach (Phonon::EffectDescription desc, effects) { + if (desc.name() == "equalizer-10bands") { + _equalizer = new Phonon::Effect(desc, this); + Config config; + if (config.getValue("equalizer/equalizer").toString() == "enabled") { + for (int i = 0; i < 10; i++) { + QVariant var = config.getValue(QString("equalizer/band%1").arg(i)); + setEqualizerValue(i, var.toDouble()); + } + _equalizer_enabled = true; + } else if (config.getValue("equalizer/equalizer") == "") { + for (int i = 0; i < 10; i++) { + config.setValue(QString("equalizer/band%1").arg(i), 0); + } + } + } + } connect(_player, SIGNAL(stateChanged(Phonon::State,Phonon::State)), this, SLOT(_stateChanged(Phonon::State,Phonon::State))); connect(_player, SIGNAL(tick(qint64)), this, SLOT(_tick(qint64))); - Phonon::createPath(_player, _output); - int seed = reinterpret_cast (_player); + _path = Phonon::createPath(_player, _output); + int seed = QTime::currentTime().msec(); qsrand(seed); _random = _config.getValue("playback/random").toBool(); _repeat = _config.getValue("playback/repeat").toBool(); @@ -135,7 +160,6 @@ void Player::_stateChanged(Phonon::State newState, Phonon::State /*oldState*/) { break; case Phonon::ErrorState: _state = PLAYER_ERROR; - qDebug() << _player->errorString(); break; } } @@ -191,3 +215,39 @@ void Player::toggleRepeat() { void Player::setVolume(int v) { _output->setVolume(v*0.01); } + +void Player::equalizerValue(int band, double *val) { + if (band < 0 || band > 9) { + *val = -24; + return; + } + if (_equalizer_enabled) { + QList plist = _equalizer->parameters(); + QVariant var = _equalizer->parameterValue(plist[band]); + *val = var.toDouble(); + } +} + +void Player::enableEqualizer() { + _equalizer_enabled = true; + _path.insertEffect(_equalizer); + Config config; + config.setValue("equalizer/equalizer", "enabled"); +} + +void Player::disableEqualizer() { + _equalizer_enabled = false; + _path.removeEffect(_equalizer); + Config config; + config.setValue("equalizer/equalizer", "disabled"); +} + +void Player::setEqualizerValue(int band, double value) { + if (band < 0 || band > 9 || value < -24 || value > 12) { + return; + } + QList plist = _equalizer->parameters(); + _equalizer->setParameterValue(plist[band], QVariant::fromValue(value)); + Config config; + config.setValue(QString("equalizer/band%1").arg(band), value); +} diff --git a/src/player/player.h b/src/player/player.h index 625aa63..50ab1f8 100644 --- a/src/player/player.h +++ b/src/player/player.h @@ -1,3 +1,22 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + #ifndef PLAYER_H #define PLAYER_H @@ -9,6 +28,8 @@ #include #include #include +#include +#include #include #include @@ -34,6 +55,8 @@ namespace SomePlayer { bool repeat() {return _repeat;} int volume() {return (int)(_output->volume()*100 + 0.5);} Phonon::MediaObject* mediaObject() {return _player;} + bool equalizerEnabled() {return _equalizer_enabled;} + bool equalizerAvailable() {return _equalizer != NULL;} signals: void stateChanged (PlayerState); @@ -54,6 +77,10 @@ namespace SomePlayer { void toggleRepeat(); void seek(int); void setVolume(int); + void enableEqualizer(); + void disableEqualizer(); + void setEqualizerValue(int band, double value); + void equalizerValue(int band, double *); private slots: void _stateChanged(Phonon::State, Phonon::State); void _tick(qint64); @@ -62,12 +89,15 @@ namespace SomePlayer { Track _track; // current track (workaround) bool _random; bool _repeat; + bool _equalizer_enabled; QStack _history; QQueue _queue; QStack _prev_history; Playlist _playlist; Phonon::MediaObject *_player; Phonon::AudioOutput *_output; + Phonon::Path _path; + Phonon::Effect *_equalizer; PlayerState _state; Config _config; diff --git a/src/playerform.cpp b/src/playerform.cpp index 4aa4e16..31352d0 100644 --- a/src/playerform.cpp +++ b/src/playerform.cpp @@ -21,7 +21,6 @@ #include "ui_playerform.h" #include "library.h" #include "player/player.h" -#include #include #include #include "trackrenderer.h" diff --git a/src/playerform.h b/src/playerform.h index 5f9f00d..b1093a4 100644 --- a/src/playerform.h +++ b/src/playerform.h @@ -48,7 +48,10 @@ class PlayerForm : public QWidget public: explicit PlayerForm(Library *lib, QWidget *parent = 0); - ~PlayerForm(); + ~PlayerForm(); + bool isEqualizerEnabled() { return _player->equalizerEnabled(); } + bool isEqualizerAvailable() { return _player->equalizerAvailable(); } + signals: void library(); void showSearchPanel(); @@ -62,6 +65,10 @@ public slots: void cancelSearch(); void addFiles(QList files); void stop(); + void setEqualizerValue(int band, double value) { _player->setEqualizerValue(band, value); } + void equalizerValue(int band, double *value) { _player->equalizerValue(band, value); } + void enableEqualizer() { _player->enableEqualizer(); } + void disableEqualizer() { _player->disableEqualizer(); } private slots: void _library(); diff --git a/src/playlist.cpp b/src/playlist.cpp index 2233da3..957ee64 100644 --- a/src/playlist.cpp +++ b/src/playlist.cpp @@ -18,7 +18,6 @@ */ #include "playlist.h" -#include using namespace SomePlayer::DataObjects; diff --git a/src/someplayer.h b/src/someplayer.h index 8920e77..2b026d0 100644 --- a/src/someplayer.h +++ b/src/someplayer.h @@ -47,7 +47,7 @@ namespace SomePlayer { #include "config.h" #define _DYNAMIC_PLAYLIST_MAX_COUNT_ 50 -#define _SOMEPLAYER_VERSION_ "1.2.1" +#define _SOMEPLAYER_VERSION_ "1.2.2" #define NDEBUG #endif diff --git a/src/tagresolver.cpp b/src/tagresolver.cpp index 10bf0a6..a91c8e2 100644 --- a/src/tagresolver.cpp +++ b/src/tagresolver.cpp @@ -18,7 +18,6 @@ */ #include "tagresolver.h" -#include #include #include #include diff --git a/src/timerdialog.cpp b/src/timerdialog.cpp index e2856bc..431d6d7 100644 --- a/src/timerdialog.cpp +++ b/src/timerdialog.cpp @@ -1,6 +1,24 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + #include "timerdialog.h" #include "ui_timerdialog.h" -#include TimerDialog::TimerDialog(QWidget *parent) : QDialog(parent), diff --git a/src/timerdialog.h b/src/timerdialog.h index bc56b10..18513f3 100644 --- a/src/timerdialog.h +++ b/src/timerdialog.h @@ -1,3 +1,22 @@ +/* + * SomePlayer - An alternate music player for Maemo 5 + * Copyright (C) 2010 Nikolay (somebody) Tischenko + * + * 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. + */ + #ifndef TIMERDIALOG_H #define TIMERDIALOG_H diff --git a/src/ui/equalizerdialog.ui b/src/ui/equalizerdialog.ui new file mode 100644 index 0000000..faa480d --- /dev/null +++ b/src/ui/equalizerdialog.ui @@ -0,0 +1,190 @@ + + + EqualizerDialog + + + + 0 + 0 + 800 + 480 + + + + Equalizer + + + + + + 0 + + + + + 0 + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + Qt::Vertical + + + + + + + + + + + + + + 0 + 0 + + + + + 150 + 0 + + + + Enable + + + true + + + true + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Cancel|QDialogButtonBox::Ok + + + + + + + + + + + buttonBox + accepted() + EqualizerDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + buttonBox + rejected() + EqualizerDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/ui/libraryform.ui b/src/ui/libraryform.ui index 6ba7458..0e91255 100644 --- a/src/ui/libraryform.ui +++ b/src/ui/libraryform.ui @@ -92,6 +92,38 @@ + + + + 0 + 0 + + + + + 70 + 70 + + + + + 70 + 70 + + + + + + + + :/icons/select_all.png:/icons/select_all.png + + + true + + + + diff --git a/src/ui/playerform.ui b/src/ui/playerform.ui index 2ebead7..97219a9 100644 --- a/src/ui/playerform.ui +++ b/src/ui/playerform.ui @@ -143,6 +143,12 @@ Qt::Vertical + + false + + + false + -- 1.7.9.5