-rw-r--r-- | noncore/multimedia/powerchord/fretboard.cpp | 16 | ||||
-rw-r--r-- | noncore/multimedia/powerchord/powerchordbase.cpp | 17 |
2 files changed, 16 insertions, 17 deletions
diff --git a/noncore/multimedia/powerchord/fretboard.cpp b/noncore/multimedia/powerchord/fretboard.cpp index bf78e4c..2e48f26 100644 --- a/noncore/multimedia/powerchord/fretboard.cpp +++ b/noncore/multimedia/powerchord/fretboard.cpp @@ -1,233 +1,231 @@ // // FretBoard class to display interface for chord finder application // // Copyright (c) 2001 Camilo Mesias // camilo@mesias.co.uk // // 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., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -//#include <FL/Fl.H> -//#include <FL/Fl_Widget.H> -//#include <FL/fl_draw.H> -#include <stdio.h> -#include <qpe/resource.h> #include "fretboard.h" + +#include <opie2/oresource.h> + #include <qpainter.h> void FretBoard::refresh(){ ce.calculate(); emit nameChanged(QString(ce.label())); for (int i=0;i<6;i++){ Finger(i, ce.finger(i)); // yuk switch (i) { case 0: emit s1nameChanged(QString(ce.name(i))); break; case 1: emit s2nameChanged(QString(ce.name(i))); break; case 2: emit s3nameChanged(QString(ce.name(i))); break; case 3: emit s4nameChanged(QString(ce.name(i))); break; case 4: emit s5nameChanged(QString(ce.name(i))); break; case 5: emit s6nameChanged(QString(ce.name(i))); break; } } update(); } FretBoard::FretBoard(QWidget *parent, const char *name ) : QWidget( parent, name ), ce() { ce.base(9); ce.chord(0); ce.fret(0); ce.span(1); ce.vary(7); ce.tune(0); refresh(); // setPalette( QPalette( QColor( 250, 250, 200) ) ); - stringtop_pix = Resource::loadPixmap( "powerchord/stringtop_s"); - string_pix = Resource::loadPixmap( "powerchord/string_s"); - finger_pix = Resource::loadPixmap( "powerchord/justfing_s"); - mute_pix = Resource::loadPixmap( "powerchord/muted_s"); + stringtop_pix = Opie::Core::OResource::loadPixmap( "powerchord/stringtop_s"); + string_pix = Opie::Core::OResource::loadPixmap( "powerchord/string_s"); + finger_pix = Opie::Core::OResource::loadPixmap( "powerchord/justfing_s"); + mute_pix = Opie::Core::OResource::loadPixmap( "powerchord/muted_s"); // box(FL_NO_BOX); // finger[0] = OPEN; // finger[1] = OPEN; // finger[2] = OPEN; // finger[3] = OPEN; // finger[4] = OPEN; // finger[5] = OPEN; initial_fret = 0; // label(FL_NORMAL_LABEL, "Chord"); } // int FretBoard::Finger(int f){ // if (f < 0 || f > 5){ // fprintf(stderr, "Error - finger value was %d\n", f); // return 0; // } // return finger[f]; // } void FretBoard::Finger(int f, int position){ if (f < 0 || f > 5){ fprintf(stderr, "Error - finger2 value was %d\n", f); return; } finger[f] = position; } // void FretBoard::draw(void) { // draw_box(); // draw_label(); // } // void FretBoard::draw_label(void) { // align(FL_ALIGN_CENTER | FL_ALIGN_TOP | FL_ALIGN_WRAP); // this->Fl_Widget::draw_label(); // } //void FretBoard::draw_box(void) { void FretBoard::paintEvent(QPaintEvent *){ // fl_color(FL_WHITE); // Fl_Widget::draw_box(); // fl_color(FL_BLACK); QPainter p( this ); p.setBrush(black); p.translate(0, 0); // draw each string for (int f=0; f<=5; f++){ // draw a string starting from the highest visible fret for (int pp=0; pp<=6; pp++){ int this_fret = initial_fret + pp; int cx = /* x() + */ 28*f; int cy = /* y() + */ pp*30; // fl_color(FL_WHITE); // fl_rectf(cx, cy, 24, 24); // p.setBrush(white); // p.setPen(NoPen); // p.drawRect( QRect(cx, cy, 24, 24) ); // fl_color(FL_BLACK); // p.setBrush(black); // p.setPen(black); // draw the string unless at top if (this_fret!=0){ // fl_line(cx+12, cy, cx+12, cy+23); // p.drawLine(cx+12, cy, cx+12, cy+23); } // draw mutes if at top if (pp == 0 && finger[f] == MUTED){ p.drawPixmap(cx,cy,mute_pix); // fl_line(cx+4, cy+19, cx+19, cy+4); // p.drawLine(cx+4, cy+19, cx+19, cy+4); // fl_line(cx+5, cy+19, cx+20, cy+4); // p.drawLine(cx+5, cy+19, cx+20, cy+4); // fl_line(cx+4, cy+4, cx+19, cy+19); // p.drawLine(cx+4, cy+4, cx+19, cy+19); // fl_line(cx+5, cy+4, cx+20, cy+19); // p.drawLine(cx+5, cy+4, cx+20, cy+19); } if (this_fret==0){ // above, blank }else if(this_fret==1){ // top p.drawPixmap(cx,cy,stringtop_pix); }else{ // normal p.drawPixmap(cx,cy,string_pix); } // frets at bottom // thick line if at top // int x0 = (f==0)?(cx+12):cx; // int x1 = (f==5)?(cx+12):(cx+23); // for (int offset=23; offset>((this_fret==0)?20:22); offset--){ // fl_line(x0, cy+offset, x1, cy+offset); // p.drawLine(x0, cy+offset, x1, cy+offset); // } // finger if at that position if ((initial_fret==0 && pp == finger[f]) || (initial_fret!=0 && pp == finger[f]-8)){ p.drawPixmap(cx,cy,finger_pix); // fl_color(FL_WHITE); // p.setBrush(white); // p.setPen(NoPen); // fl_rectf(cx+4, cy+4, 16, 16); // p.drawRect( QRect(cx+4, cy+4, 16, 16)); // fl_color(FL_BLACK); //p.setPen(black); // fl_line(cx+4, cy+11, cx+7, cy+16); //p.drawLine(cx+4, cy+11, cx+7, cy+16); // fl_line(cx+7, cy+16, cx+12, cy+19); //p.drawLine(cx+7, cy+16, cx+12, cy+19); // fl_line(cx+12, cy+19, cx+16, cy+16); //p.drawLine(cx+12, cy+19, cx+16, cy+16); // fl_line(cx+16, cy+16, cx+19, cy+12); //p.drawLine(cx+16, cy+16, cx+19, cy+12); // fl_line(cx+19, cy+12, cx+16, cy+7); //p.drawLine(cx+19, cy+12, cx+16, cy+7); // fl_line(cx+16, cy+7, cx+12, cy+4); //p.drawLine(cx+16, cy+7, cx+12, cy+4); // fl_line(cx+11, cy+4, cx+7, cy+7); //p.drawLine(cx+11, cy+4, cx+7, cy+7); // fl_line(cx+7, cy+7, cx+4, cy+11); //p.drawLine(cx+7, cy+7, cx+4, cy+11); } } } p.end(); } diff --git a/noncore/multimedia/powerchord/powerchordbase.cpp b/noncore/multimedia/powerchord/powerchordbase.cpp index f0d1487..0efc4bd 100644 --- a/noncore/multimedia/powerchord/powerchordbase.cpp +++ b/noncore/multimedia/powerchord/powerchordbase.cpp @@ -1,431 +1,432 @@ /**************************************************************************** ** Form implementation generated from reading ui file 'powerchordbase.ui' ** ** Created: Sun Jan 13 23:05:11 2002 ** by: The User Interface Compiler (uic) ** ** WARNING! All changes made in this file will be lost! ****************************************************************************/ #include "powerchordbase.h" #include "fretboard.h" #include "vumeter.h" /* OPIE */ #include <opie2/odebug.h> -#include <qpe/resource.h> +#include <opie2/oresource.h> using namespace Opie::Core; /* QT */ +#include <qbitmap.h> #include <qcombobox.h> #include <qlabel.h> #include <qlistbox.h> #include <qpushbutton.h> #include <qspinbox.h> #include <qtabwidget.h> #include <qlayout.h> #include <qtooltip.h> /* * Constructs a PowerchordBase which is a child of 'parent', with the * name 'name' and widget flags set to 'f' */ PowerchordBase::PowerchordBase( QWidget* parent, const char* name, WFlags fl ) : QWidget( parent, name, fl ) { simulation_timer = 0; audio_timer = 0; // setPalette( QPalette( QColor( 232, 227, 215) ) ); // QPixmap image0(QString("/opt/Qtopia/pics/powerchord/image0")); - QPixmap image1 = Resource::loadPixmap( "powerchord/image1"); - QPixmap image2 = Resource::loadPixmap( "powerchord/image2"); - QPixmap image3 = Resource::loadPixmap( "powerchord/image3"); - QPixmap image4 = Resource::loadPixmap( "powerchord/image4"); - QPixmap image5 = Resource::loadPixmap( "powerchord/image5"); - image6 = Resource::loadPixmap( "powerchord/image6"); - image_open = Resource::loadPixmap( "powerchord/image_open"); + QPixmap image1 = Opie::Core::OResource::loadPixmap( "powerchord/image1"); + QPixmap image2 = Opie::Core::OResource::loadPixmap( "powerchord/image2"); + QPixmap image3 = Opie::Core::OResource::loadPixmap( "powerchord/image3"); + QPixmap image4 = Opie::Core::OResource::loadPixmap( "powerchord/image4"); + QPixmap image5 = Opie::Core::OResource::loadPixmap( "powerchord/image5"); + image6 = Opie::Core::OResource::loadPixmap( "powerchord/image6"); + image_open = Opie::Core::OResource::loadPixmap( "powerchord/image_open"); // image0.setMask(image0.createHeuristicMask()); image1.setMask(image1.createHeuristicMask()); // image2.setMask(image2.createHeuristicMask()); // image3.setMask(image3.createHeuristicMask()); // image4.setMask(image4.createHeuristicMask()); // image5.setMask(image5.createHeuristicMask()); // image6->setMask(image6->createHeuristicMask()); // image_open->setMask(image_open->createHeuristicMask()); if ( !name ) setName( "PowerchordBase" ); resize( 240, 284 ); setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)5, (QSizePolicy::SizeType)5, sizePolicy().hasHeightForWidth() ) ); setMinimumSize( QSize( 240, 284 ) ); setMaximumSize( QSize( 240, 284 ) ); setCaption( tr( "Powerchord" ) ); tabs = new QTabWidget( this, "tabs" ); tabs->setEnabled( TRUE ); tabs->setGeometry( QRect( 0, 0, 240, 286 ) ); tabs->setTabPosition( QTabWidget::Bottom ); tab = new QWidget( tabs, "tab" ); chordkey = new QComboBox( FALSE, tab, "chordkey" ); chordkey->insertItem( tr( "maj" ) ); chordkey->insertItem( tr( "min" ) ); chordkey->insertItem( tr( "7th" ) ); chordkey->insertItem( tr( "m7" ) ); chordkey->insertItem( tr( "maj7" ) ); chordkey->insertItem( tr( "6th" ) ); chordkey->insertItem( tr( "m6th" ) ); chordkey->insertItem( tr( "aug" ) ); chordkey->insertItem( tr( "dim" ) ); chordkey->insertItem( tr( "sus4" ) ); chordkey->insertItem( tr( "7sus4" ) ); chordkey->insertItem( tr( "9th" ) ); chordkey->insertItem( tr( "add9" ) ); chordkey->insertItem( tr( "m9th" ) ); chordkey->insertItem( tr( "maj9" ) ); chordkey->insertItem( tr( "sus2" ) ); chordkey->insertItem( tr( "7sus2" ) ); chordkey->insertItem( tr( "11th" ) ); chordkey->insertItem( tr( "m11th" ) ); chordkey->insertItem( tr( "13th" ) ); chordkey->insertItem( tr( "m13th" ) ); chordkey->insertItem( tr( "maj13" ) ); chordkey->insertItem( tr( "6/9" ) ); chordkey->insertItem( tr( "flat5" ) ); chordkey->insertItem( tr( "7#9" ) ); chordkey->insertItem( tr( QString::fromUtf8( "ø7" ) ) ); chordkey->insertItem( tr( "5" ) ); chordkey->setGeometry( QRect( 40, 0, 51, 21 ) ); chordfret = new QComboBox( FALSE, tab, "chordfret" ); chordfret->insertItem( tr( "open" ) ); chordfret->insertItem( tr( "1st" ) ); chordfret->insertItem( tr( "2nd" ) ); chordfret->insertItem( tr( "3rd" ) ); chordfret->insertItem( tr( "4th" ) ); chordfret->insertItem( tr( "5th" ) ); chordfret->insertItem( tr( "6th" ) ); chordfret->insertItem( tr( "7th" ) ); chordfret->insertItem( tr( "8th" ) ); chordfret->insertItem( tr( "9th" ) ); chordfret->insertItem( tr( "10th" ) ); chordfret->insertItem( tr( "11th" ) ); chordfret->insertItem( tr( "12th" ) ); chordfret->insertItem( tr( "13th" ) ); chordfret->insertItem( tr( "14th" ) ); chordfret->insertItem( tr( "15th" ) ); chordfret->insertItem( tr( "16th" ) ); chordfret->setGeometry( QRect( 90, 0, 55, 21 ) ); //cxm less 5 width chordnote = new QComboBox( FALSE, tab, "chordnote" ); chordnote->insertItem( tr( "C" ) ); chordnote->insertItem( tr( "C#" ) ); chordnote->insertItem( tr( "D" ) ); chordnote->insertItem( tr( "Eb" ) ); chordnote->insertItem( tr( "E" ) ); chordnote->insertItem( tr( "F" ) ); chordnote->insertItem( tr( "F#" ) ); chordnote->insertItem( tr( "G" ) ); chordnote->insertItem( tr( "G#" ) ); chordnote->insertItem( tr( "A" ) ); chordnote->insertItem( tr( "Bb" ) ); chordnote->insertItem( tr( "B" ) ); chordnote->setGeometry( QRect( 0, 0, 40, 21 ) ); chordnote->setCurrentItem( 9 ); QWidget* privateLayoutWidget = new QWidget( tab, "Layout1" ); privateLayoutWidget->setGeometry( QRect( 5, 232, 160, 20 ) ); Layout1 = new QHBoxLayout( privateLayoutWidget ); Layout1->setSpacing( 6 ); Layout1->setMargin( 0 ); s1_1 = new QLabel( privateLayoutWidget, "s1_1" ); s1_1->setText( tr( "E" ) ); s1_1->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_1 ); s1_2 = new QLabel( privateLayoutWidget, "s1_2" ); s1_2->setText( tr( "A" ) ); s1_2->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_2 ); s1_3 = new QLabel( privateLayoutWidget, "s1_3" ); s1_3->setText( tr( "E" ) ); s1_3->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_3 ); s1_4 = new QLabel( privateLayoutWidget, "s1_4" ); s1_4->setText( tr( "A" ) ); s1_4->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_4 ); s1_5 = new QLabel( privateLayoutWidget, "s1_5" ); s1_5->setText( tr( "C#" ) ); s1_5->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_5 ); s1_6 = new QLabel( privateLayoutWidget, "s1_6" ); s1_6->setText( tr( "E" ) ); s1_6->setAlignment( int( QLabel::AlignCenter ) ); Layout1->addWidget( s1_6 ); // sound_label = new QLabel( tab, "sound_label" ); // sound_label->setGeometry( QRect( 185, 160, 32, 17 ) ); // sound_label->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, sound_label->sizePolicy().hasHeightForWidth() ) ); // sound_label->setPixmap( image0 ); // sound_label->pixmap()->setMask(*image0.mask()); // sound_label->setScaledContents( TRUE ); // sound_label->setBackgroundMode( QWidget::PaletteButton ); // sound_label->setBackgroundColor(this->backgroundColor()); // sound_label->setPalette( QPalette( QColor( 232, 227, 215) ) ); Frame6 = new QFrame( tab, "Frame6" ); Frame6->setGeometry( QRect( 170, 145, 66, 10 ) ); Frame6->setFrameShape( QFrame::HLine ); Frame6->setFrameShadow( QFrame::Raised ); chordshow_label = new QLabel( tab, "chordshow_label" ); chordshow_label->setGeometry( QRect( 185, 60, 32, 17 ) ); // chordshow_label->setSizePolicy( QSizePolicy( (QSizePolicy::SizeType)0, (QSizePolicy::SizeType)0, chordshow_label->sizePolicy().hasHeightForWidth() ) ); chordshow_label->setFrameShape( QLabel::NoFrame ); chordshow_label->setPixmap( image1 ); chordshow_label->setScaledContents( TRUE ); // chordshow_label->setBackgroundMode( QWidget::PaletteButton ); transport_rec = new QPushButton( tab, "transport_rec" ); transport_rec->setGeometry( QRect( 170, 80, 30, 30 ) ); transport_rec->setText( "" ); transport_rec->setPixmap( image2 ); play_sound = new QPushButton( tab, "play_sound" ); play_sound->setGeometry( QRect( 170, 180, 60, 55 ) ); play_sound->setText( "" ); play_sound->setPixmap( image3 ); Frame6_2 = new QFrame( tab, "Frame6_2" ); Frame6_2->setGeometry( QRect( 170, 45, 66, 10 ) ); Frame6_2->setFrameShape( QFrame::HLine ); Frame6_2->setFrameShadow( QFrame::Raised ); transport_play = new QPushButton( tab, "transport_play" ); transport_play->setEnabled( FALSE ); transport_play->setGeometry( QRect( 200, 80, 30, 30 ) ); transport_play->setText( "" ); transport_play->setPixmap( image3 ); transport_rew = new QPushButton( tab, "transport_rew" ); transport_rew->setEnabled( FALSE ); transport_rew->setGeometry( QRect( 170, 110, 30, 30 ) ); transport_rew->setText( "" ); transport_rew->setPixmap( image4 ); transport_fwd = new QPushButton( tab, "transport_fwd" ); transport_fwd->setEnabled( FALSE ); transport_fwd->setGeometry( QRect( 200, 110, 30, 30 ) ); transport_fwd->setText( "" ); transport_fwd->setPixmap( image5 ); chordname = new QLabel( tab, "chordname" ); chordname->setGeometry( QRect( 146, 0, 90, 20 ) ); //cxm moved l 5 chordname->setText( tr( "A" ) ); chordname->setAlignment( int( QLabel::AlignCenter ) ); QToolTip::add( chordname, "" ); synth = new gs(); tuner = new gt(); frets = new FretBoard( tab, "frets" ); frets->setGeometry( QRect( 0, 20, 168, 210 ) ); tabs->insertTab( tab, tr( "Guitar" ) ); tab_2 = new QWidget( tabs, "tab_2" ); optlab2 = new QLabel( tab_2, "optlab2" ); optlab2->setGeometry( QRect( 9, 58, 120, 41 ) ); optlab2->setText( tr( "Alternative tunings are possible" ) ); optlab2->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) ); span = new QComboBox( FALSE, tab_2, "span" ); span->insertItem( tr( "2" ) ); span->insertItem( tr( "3" ) ); span->insertItem( tr( "4" ) ); span->insertItem( tr( "5" ) ); span->insertItem( tr( "6" ) ); span->setGeometry( QRect( 180, 20, 50, 21 ) ); span->setCurrentItem( 1 ); TextLabel1 = new QLabel( tab_2, "TextLabel1" ); TextLabel1->setGeometry( QRect( 3, 109, 226, 140 ) ); TextLabel1->setText( tr( QString::fromUtf8( "©2002 Camilo Mesias\n" "camilo@mesias.co.uk\n" "Version 0.0.7 beta" ) ) ); TextLabel1->setAlignment( int( QLabel::AlignBottom | QLabel::AlignLeft ) ); tuning = new QComboBox( FALSE, tab_2, "tuning" ); tuning->insertItem( tr( "EADGBE" ) ); tuning->insertItem( tr( "EBEG#BE" ) ); tuning->insertItem( tr( "EAEAC#E" ) ); tuning->insertItem( tr( "EADF#BE" ) ); tuning->insertItem( tr( "EADGCF" ) ); tuning->insertItem( tr( "DADGAD" ) ); tuning->insertItem( tr( "DGCGCD" ) ); tuning->insertItem( tr( "DADF#AD" ) ); tuning->insertItem( tr( "DADGBE" ) ); tuning->insertItem( tr( "DGDGBD" ) ); tuning->insertItem( tr( "DADACD" ) ); tuning->insertItem( tr( "CGCGAE" ) ); tuning->insertItem( tr( "FADGBE" ) ); tuning->insertItem( tr( "G minor" ) ); tuning->setGeometry( QRect( 140, 70, 91, 21 ) ); optlab1 = new QLabel( tab_2, "optlab1" ); optlab1->setGeometry( QRect( 8, 8, 160, 40 ) ); optlab1->setText( tr( "Span: the greatest number of frets over which you want chords to be generated" ) ); optlab1->setAlignment( int( QLabel::WordBreak | QLabel::AlignVCenter | QLabel::AlignLeft ) ); tabs->insertTab( tab_2, tr( "Options" ) ); Tuner = new QWidget( tabs, "Tuner" ); Frame4 = new QFrame( Tuner, "Frame4" ); Frame4->setGeometry( QRect( 0, 0, 230, 126 ) ); Frame4->setFrameShape( QFrame::Box ); Frame4->setFrameShadow( QFrame::Raised ); vu = new VUMeter( Frame4, "vu" ); vu->setGeometry( QRect( 5, 5, 220, 115 ) ); tuner_note = new QComboBox( FALSE, Tuner, "tuner_note" ); tuner_note->insertItem( tr( "auto" ) ); tuner_note->insertItem( tr( "E" ) ); tuner_note->insertItem( tr( "D" ) ); tuner_note->insertItem( tr( "G" ) ); tuner_note->insertItem( tr( "A" ) ); tuner_note->insertItem( tr( "B" ) ); tuner_note->insertItem( tr( "C" ) ); tuner_note->insertItem( tr( "F" ) ); tuner_note->setGeometry( QRect( 5, 160, 90, 20 ) ); Frame8 = new QFrame( Tuner, "Frame8" ); Frame8->setGeometry( QRect( -2, 188, 231, 10 ) ); Frame8->setFrameShape( QFrame::HLine ); Frame8->setFrameShadow( QFrame::Raised ); tuner_start = new QPushButton( Tuner, "tuner_start" ); tuner_start->setGeometry( QRect( 100, 155, 91, 30 ) ); tuner_start->setText( tr( "Start" ) ); tuner_lab1 = new QLabel( Tuner, "tuner_lab1" ); tuner_lab1->setGeometry( QRect( 10, 130, 100, 21 ) ); tuner_lab1->setText( tr( "Tuner operation" ) ); tuner_lab2 = new QLabel( Tuner, "tuner_lab2" ); tuner_lab2->setGeometry( QRect( 10, 200, 100, 16 ) ); tuner_lab2->setText( tr( "Pitch calibration" ) ); tuner_calib_note = new QComboBox( FALSE, Tuner, "tuner_calib_note" ); tuner_calib_note->insertItem( tr( "A" ) ); tuner_calib_note->insertItem( tr( "C" ) ); tuner_calib_note->setGeometry( QRect( 5, 225, 90, 21 ) ); tuner_calib_freq = new QSpinBox( Tuner, "tuner_calib_freq" ); tuner_calib_freq->setGeometry( QRect( 105, 225, 71, 21 ) ); tuner_calib_freq->setSuffix( tr( "Hz" ) ); tuner_calib_freq->setWrapping( TRUE ); tuner_calib_freq->setMaxValue( 500 ); tuner_calib_freq->setMinValue( 300 ); tuner_calib_freq->setValue( 440 ); tuner_lab3 = new QLabel( Tuner, "tuner_lab3" ); tuner_lab3->setGeometry( QRect( 185, 225, 40, 21 ) ); tuner_lab3->setText( tr( "Pitch" ) ); tuner_pic1 = new QLabel( Tuner, "tuner_pic1" ); tuner_pic1->setGeometry( QRect( 195, 155, 31, 31 ) ); tuner_pic1->setFrameShape( QLabel::NoFrame ); tuner_pic1->setPixmap( image6 ); tuner_pic1->setScaledContents( TRUE ); tabs->insertTab( Tuner, tr( "Tuner" ) ); tab_3 = new QWidget( tabs, "tab_3" ); chordlistlab1 = new QLabel( tab_3, "chordlistlab1" ); chordlistlab1->setGeometry( QRect( 5, 5, 216, 16 ) ); chordlistlab1->setText( tr( "Chord list" ) ); chordlist = new QListBox( tab_3, "chordlist" ); chordlist->setGeometry( QRect( 5, 25, 220, 200 ) ); list_remove_btn = new QPushButton( tab_3, "list_remove_btn" ); list_remove_btn->setGeometry( QRect( 150, 230, 71, 25 ) ); list_remove_btn->setText( tr( "Remove" ) ); tabs->insertTab( tab_3, tr( "Chords" ) ); // hope this does what it's supposed to!! // setPalette( QPalette( QColor( 232, 227, 215) ) ); // signals and slots connections //cxm connect( tuning, SIGNAL( activated(int) ), frets, SLOT( Tune(int) ) ); connect( span, SIGNAL( activated(int) ), frets, SLOT( Span(int) ) ); connect( transport_rec, SIGNAL( clicked() ), this, SLOT( transport_rec_cb() )); connect( play_sound, SIGNAL( clicked() ), this, SLOT( play_chord_cb() )); connect( tuner_start, SIGNAL( clicked() ), this, SLOT( tuner_start_cb() )); connect( tuner_note, SIGNAL( textChanged(const QString&) ), vu, SLOT( AnnotL(const QString&) )); connect( this, SIGNAL( frequency_change(int) ), vu, SLOT( Value(int) )); connect( chordnote, SIGNAL( activated(int) ), frets, SLOT( Base(int) ) ); connect( chordkey, SIGNAL( activated(int) ), frets, SLOT( Chord(int) ) ); connect( chordfret, SIGNAL( activated(int) ), frets, SLOT( Fret(int) ) ); connect( list_remove_btn, SIGNAL( clicked() ), this, SLOT( list_remove_cb() ) ); connect( frets, SIGNAL( s1nameChanged(const QString&) ), s1_1, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( s2nameChanged(const QString&) ), s1_2, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( s3nameChanged(const QString&) ), s1_3, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( s4nameChanged(const QString&) ), s1_4, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( s5nameChanged(const QString&) ), s1_5, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( s6nameChanged(const QString&) ), s1_6, SLOT( setText(const QString&) ) ); connect( frets, SIGNAL( nameChanged(const QString&) ), chordname, SLOT( setText(const QString&) ) ); } static int known=0; #include <qmessagebox.h> void PowerchordBase::transport_rec_cb(){ chordlist->insertItem(chordname->text(),-1); if (!known){ QMessageBox::information(this, tr("Powerchord"), tr("<P>This chord has been saved into the list of chords, for later playback.<P>")); known = 1; } } void PowerchordBase::list_remove_cb(){ if (chordlist->count() > 0){ chordlist->removeItem(0); } } void PowerchordBase::play_chord_cb(){ // QMessageBox::information(this, "Coming soon!", "This button plays\nthe chord by synthesizing\nthe sound of the notes."); if (audio_timer){ audio_timer->stop(); // set pixmap? synth->Stop(); delete(audio_timer); audio_timer = 0; }else{ // get notes from chord engine int note; int base; int octave; note = frets->ce.noteindex(0); if (note >= 0){ // fprintf(stderr, "Note was %d\n", note); base = note % 12; octave = note / 12; synth->note_start(0, base, octave); }else{ |