summaryrefslogtreecommitdiffstats
path: root/tdemid/tdemidclient.h
diff options
context:
space:
mode:
Diffstat (limited to 'tdemid/tdemidclient.h')
-rw-r--r--tdemid/tdemidclient.h241
1 files changed, 241 insertions, 0 deletions
diff --git a/tdemid/tdemidclient.h b/tdemid/tdemidclient.h
new file mode 100644
index 00000000..526b0656
--- /dev/null
+++ b/tdemid/tdemidclient.h
@@ -0,0 +1,241 @@
+/**************************************************************************
+
+ tdemidclient.h - The main client widget of KMid
+ Copyright (C) 1997,98 Antonio Larrosa Jimenez
+
+ 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.
+
+ Send comments and bug fixes to larrosa@kde.org
+ or to Antonio Larrosa, Rio Arnoya, 10 5B, 29006 Malaga, Spain
+
+***************************************************************************/
+#ifndef _KMIDCLIENT_H
+#define _KMIDCLIENT_H
+
+#include "qslidertime.h"
+#include <libtdemid/player.h>
+#include <libtdemid/track.h>
+#include <libtdemid/notearray.h>
+#include <libtdemid/libtdemid.h>
+#include <tqtimer.h>
+#include <unistd.h>
+#include <sys/time.h>
+#include <sys/types.h>
+#include "kdisptext.h"
+#include "slman.h"
+#include "version.h"
+#include "tdemidIface.h"
+
+#include <kio/job.h>
+
+class DeviceManager;
+
+
+class TDEApplication;
+class TDEConfig;
+class KLCDNumber;
+class TQLabel;
+class TQComboBox;
+class RhythmView;
+class ChannelView;
+class TQString;
+
+class tdemidClient : public TQWidget, virtual public KMidIface
+{
+ Q_OBJECT
+
+private:
+#ifdef KMidDEBUG
+ long passcount;
+#endif
+
+ DeviceManager *midi;
+ MidiPlayer *player;
+
+ struct kMidData m_kMid;
+
+ TQTimer *timer4timebar;
+ TQTimer *timer4events;
+
+ ulong beginmillisec;
+ ulong pausedatmillisec;
+ double currentTempo;
+ SpecialEvent *spev;
+ NoteArray *noteArray;
+
+ bool downloaded;
+
+ int itsme;
+ bool shuttingdown;
+ int visiblevolumebar;
+
+ char *midifile_opened;
+ int hasbeenopened;
+
+ int typeoftextevents;
+
+ SLManager *slman;
+ int activecollection;
+ TQString collectionsfile;
+ SongList *currentsl;
+ int initializing_songs;
+ int loopsong;
+ int collectionplaymode;
+ int *collectionplaylist; // the list of songs ordered in the
+ // user selected mode
+
+ class KActionCollection *actionCollection;
+
+ void generateCPL(void);
+ int searchInCPL(int song); // Returns the index of song
+
+ void fillInComboSongs(void);
+
+ int openFile(const char *filename);
+ void allNotesOff(void);
+public:
+ tdemidClient(TQWidget *parent, KActionCollection *ac, const char *name=0);
+ ~tdemidClient();
+
+ char *midiFileName(void) {return midifile_opened;};
+ // If it returns NULL then there isn't any file opened
+
+ int isPlaying(void) {return m_kMid.pctl->playing;};
+ int isPaused(void) {return (m_kMid.pctl->playing)&&(m_kMid.pctl->paused);};
+
+ int openURL(const TQString s);
+
+ void repaintText(int typeoftextevents);
+ static void tdemidOutput(void);
+
+ int ChooseTypeOfTextEvents(void);
+
+ TQFont *getFont(void);
+ void fontChanged(void); // The new font is already in TDEConfig
+
+ SLManager *getSLManager(void) {return slman;};
+ void setSLManager(SLManager *slm);
+ // setSLManager only change the pointer, so DO NOT DELETE
+ // the objectr you pass to it
+ int getActiveCollection(void) {return activecollection;};
+ void setActiveCollection(int i);
+ int getSelectedSong(void);
+ void saveCollections(void);
+
+ void setSongType(int i);
+ void setSongLoop(int i);
+ void setCollectionPlayMode(int i);
+
+ void visibleVolumeBar(int i); // 1 shows it, and 0 hides it
+ // int isVisibleVolumeBar(void) {return visiblevolumebar;};
+ void visibleChannelView(int i);
+
+ void shuttingDown(void);
+
+ ulong timeOfNextEvent(int *type=NULL);
+ void rethinkNextEvent(void);
+ // Recalculates time of next event and updates the timer4events according to it
+
+
+ void moveEventPointersTo(ulong ms);
+
+protected:
+// void resizeEvent(TQResizeEvent *qre);
+
+
+public slots:
+// void help_Help();
+// void help_About();
+ void slotPlay();
+ void slotPause();
+ void slotStop();
+ void slotRewind();
+ void slotForward();
+ void slotPrevSong();
+ void slotNextSong();
+
+ void timebarUpdate();
+ void slotSeek(int i);
+ void slotSetVolume(int i);
+ void slotSelectSong(int i);
+ void slotSelectEncoding(int i);
+
+ void downloadFinished( TDEIO::Job * );
+
+ void processSpecialEvent();
+
+ void channelViewDestroyed();
+
+ void communicationFromChannelView(int *);
+
+ void slotSetTempo(double value);
+
+signals:
+ void mustRechooseTextEvent();
+ void stopPause();
+// void channelView_Destroyed();
+
+public:
+ void saveLyrics(FILE *fh);
+
+ DeviceManager *devman(void) {return midi;};
+ void setMidiDevice(int i);
+ void setMidiMapFilename(const char *mapfilename);
+
+ ChannelView *getChannelView(void) { return channelView; };
+ KDisplayText *getKDisplayText(void) { return kdispt; };
+
+ TQSizePolicy sizePolicy();
+
+ TQComboBox *getComboSongs() { return comboSongs; };
+
+
+ void play();
+ void pause();
+ void stop();
+ void rewind();
+ void forward();
+ void seek(int ms);
+ void prevSong();
+ void nextSong();
+ void setVolume(int i);
+ void setTempo(int i);
+ void setSongEncoding( int i );
+ void setLyricEvents( int i );
+ void setCurrentSong(int i);
+ void setPlayListMode(int i);
+
+ TQSize sizeHint() const;
+private:
+ TQSlider *timebar;
+ QSliderTime *timetags;
+ TQSlider *volumebar;
+
+ KLCDNumber *tempoLCD;
+ KDisplayText *kdispt;
+ TQLabel *qlabelTempo;
+ TQComboBox *comboSongs;
+ TQComboBox *comboEncodings;
+ RhythmView *rhythmview;
+
+
+ ChannelView *channelView;
+
+};
+
+char *extractFilename(const char *in,char *out); // returns a pointer to out
+
+#endif
+