summaryrefslogtreecommitdiffstats
path: root/tdemid/tdemidframe.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tdemid/tdemidframe.cpp')
-rw-r--r--tdemid/tdemidframe.cpp728
1 files changed, 728 insertions, 0 deletions
diff --git a/tdemid/tdemidframe.cpp b/tdemid/tdemidframe.cpp
new file mode 100644
index 00000000..cbadbc73
--- /dev/null
+++ b/tdemid/tdemidframe.cpp
@@ -0,0 +1,728 @@
+/**************************************************************************
+
+ tdemidframe.cpp - The main 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., 59 Temple
+
+ Send comments and bug fixes to larrosa@kde.org
+ or to Antonio Larrosa, Rio Arnoya, 10 5B, 29006 Malaga, Spain
+
+***************************************************************************/
+
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/shm.h>
+#include <sys/wait.h>
+#include <sys/stat.h>
+
+#include <tqkeycode.h>
+#include <tqstring.h>
+
+#include <kaccel.h>
+#include <kapplication.h>
+#include <kconfig.h>
+#include <kcmdlineargs.h>
+#include <kfiledialog.h>
+#include <kfontdialog.h>
+#include <kglobal.h>
+#include <kiconloader.h>
+#include <klocale.h>
+#include <kmessagebox.h>
+#include <ktoolbar.h>
+#include <kurl.h>
+#include <kdebug.h>
+#include <kaction.h>
+#include <kstdaction.h>
+#include <kurldrag.h>
+#include <kedittoolbar.h>
+#include <dcopclient.h>
+
+#include "tdemidframe.h"
+#include "tdemidclient.h"
+#include "midicfgdlg.h"
+#include "collectdlg.h"
+#include "channelcfgdlg.h"
+#include "channelview.h"
+#include "version.h"
+
+tdemidFrame::tdemidFrame(const char *name)
+ :KMainWindow(0, name)
+{
+ tdemidclient=new tdemidClient(this,actionCollection(), "KMidClient");
+ tdemidclient->setSongType(1);
+ tdemidclient->show();
+ setCentralWidget( tdemidclient );
+/*
+ kKeysAccel=new KAccel(this);
+ kKeysAccel->insertItem(i18n("Play/Pause"),"Play/Pause", Key_Space);
+ kKeysAccel->connectItem("Play/Pause", TQT_TQOBJECT(this), TQT_SLOT(spacePressed()));
+ kKeysAccel->insertItem(i18n("Stop"),"Stop", Key_Backspace);
+ kKeysAccel->connectItem("Stop",tdemidclient,TQT_SLOT(song_Stop()));
+ kKeysAccel->insertItem(i18n("Previous Song"),"Previous Song", Key_Left);
+ kKeysAccel->connectItem("Previous Song",tdemidclient,TQT_SLOT(song_PlayPrevSong()));
+ kKeysAccel->insertItem(i18n("Next Song"),"Next Song", Key_Right);
+ kKeysAccel->connectItem("Next Song",tdemidclient,TQT_SLOT(song_PlayNextSong()));
+ kKeysAccel->insertItem(i18n("Scroll Down Karaoke"),"Scroll down karaoke",Key_Down);
+ kKeysAccel->connectItem("Scroll Down karaoke",tdemidclient->getKDisplayText(),TQT_SLOT(ScrollDown()));
+ kKeysAccel->insertItem(i18n("Scroll Up Karaoke"),"Scroll up karaoke",Key_Up);
+ kKeysAccel->connectItem("Scroll Up Karaoke",tdemidclient->getKDisplayText(),TQT_SLOT(ScrollUp()));
+ kKeysAccel->insertItem(i18n("Scroll Page Down Karaoke"),"Scroll page down karaoke",Key_PageDown);
+ kKeysAccel->connectItem("Scroll Page Down Karaoke",tdemidclient->getKDisplayText(),TQT_SLOT(ScrollPageDown()));
+ kKeysAccel->insertItem(i18n("Scroll Page Up Karaoke"),"Scroll page up karaoke",Key_PageUp);
+ kKeysAccel->connectItem("Scroll Page Up Karaoke",tdemidclient->getKDisplayText(),TQT_SLOT(ScrollPageUp()));
+
+ kKeysAccel->readSettings();
+*/
+ KStdAction::open(TQT_TQOBJECT(this), TQT_SLOT(file_Open()), actionCollection());
+ (void)new KAction(i18n("&Save Lyrics..."), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(file_SaveLyrics()), actionCollection(), "file_save_lyrics");
+ KStdAction::quit(TQT_TQOBJECT(kapp), TQT_SLOT(quit()), actionCollection());
+
+ (void)new KAction(i18n("&Play"), "player_play", TQt::Key_Space,
+ TQT_TQOBJECT(tdemidclient), TQT_SLOT(slotPlay()), actionCollection(), "song_play");
+ (void)new KAction(i18n("P&ause"), "player_pause", TQt::Key_P, TQT_TQOBJECT(tdemidclient),
+ TQT_SLOT(slotPause()), actionCollection(), "song_pause");
+ (void)new KAction(i18n("&Stop"), "player_stop", TQt::Key_Backspace,
+ TQT_TQOBJECT(tdemidclient), TQT_SLOT(slotStop()), actionCollection(), "song_stop");
+
+ (void)new KAction(i18n("P&revious Song"), "player_start", Key_Left,
+ TQT_TQOBJECT(tdemidclient), TQT_SLOT(slotPrevSong()), actionCollection(),
+ "song_previous");
+ (void)new KAction(i18n("&Next Song"), "player_end", Key_Right,
+ TQT_TQOBJECT(tdemidclient), TQT_SLOT(slotNextSong()), actionCollection(),
+ "song_next");
+ (void)new KToggleAction(i18n("&Loop"), 0, TQT_TQOBJECT(this), TQT_SLOT(song_Loop()),
+ actionCollection(), "song_loop");
+
+ (void)new KAction(i18n("Rewind"), "2leftarrow", 0, TQT_TQOBJECT(tdemidclient),
+ TQT_SLOT(slotRewind()), actionCollection(), "song_rewind");
+
+ (void)new KAction(i18n("Forward"), "2rightarrow", 0, TQT_TQOBJECT(tdemidclient),
+ TQT_SLOT(slotForward()), actionCollection(), "song_forward");
+
+ (void)new KAction(i18n("&Organize..."), 0, TQT_TQOBJECT(this), TQT_SLOT(collect_organize()),
+ actionCollection(), "collect_organize");
+
+ TQStringList playmodes;
+ playmodes.append(i18n("In Order"));
+ playmodes.append(i18n("Shuffle"));
+
+ KSelectAction *act=new KSelectAction(i18n("Play Order"), 0, /*this, TQT_SLOT(collect_PlayOrder(int)),*/
+ actionCollection(), "play_order");
+ connect(act,TQT_SIGNAL(activated(int)),this, TQT_SLOT(collect_PlayOrder(int)));
+ act->setItems(playmodes);
+
+ (void)new KToggleAction(i18n("Auto-Add to Collection"), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(collect_AutoAdd()), actionCollection(), "collect_autoadd");
+
+ playmodes.clear();
+ playmodes.append(i18n("&General MIDI"));
+ playmodes.append(i18n("&MT-32"));
+
+ act=new KSelectAction(i18n("File Type"), 0,/* this, TQT_SLOT(options_FileType(int)),*/
+ actionCollection(), "file_type");
+ connect(act,TQT_SIGNAL(activated(int)),this, TQT_SLOT(options_FileType(int)));
+ act->setItems(playmodes);
+
+ playmodes.clear();
+ playmodes.append(i18n("&Text Events"));
+ playmodes.append(i18n("&Lyric Events"));
+
+ act=new KSelectAction(i18n("Display Events"), Key_T, /*this,
+ TQT_SLOT(options_DisplayEvents(int)),*/ actionCollection(),
+ "display_events");
+ connect(act,TQT_SIGNAL(activated(int)),this, TQT_SLOT(options_DisplayEvents(int)));
+ act->setItems(playmodes);
+
+ (void)new KToggleAction(i18n("Automatic Text Chooser"), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(options_AutomaticText()), actionCollection(),
+ "option_automatictext");
+
+ KToggleAction* togact = new KToggleAction(i18n("Show &Volume Bar"), "volume",
+ 0, TQT_TQOBJECT(this), TQT_SLOT(options_ShowVolumeBar()), actionCollection(),
+ "toggle_volumebar");
+ togact->setCheckedState(i18n("Hide &Volume Bar"));
+
+ togact = new KToggleAction(i18n("Show &Channel View"), "piano",
+ 0, TQT_TQOBJECT(this), TQT_SLOT(options_ShowChannelView()), actionCollection(),
+ "toggle_channelview");
+ togact->setCheckedState(i18n("Hide &Channel View"));
+
+ (void)new KAction(i18n("Channel View &Options..."), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(options_ChannelViewOptions()), actionCollection(),
+ "channelview_options");
+
+ (void)new KAction(i18n("&Font Change..."), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(options_FontChange()), actionCollection(),
+ "change_font");
+
+ (void)new KAction(i18n("MIDI &Setup..."), 0, TQT_TQOBJECT(this),
+ TQT_SLOT(options_MidiSetup()), actionCollection(), "midi_setup");
+
+
+ setupGUI((ToolBar | Keys | StatusBar | Save | Create ), "tdemidui.rc" );
+
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ KSelectAction *tmplistaction=
+ ((KSelectAction*)actionCollection()->action("display_events"));
+
+ if (cfg->readNumEntry("TypeOfTextEvents",5)==5)
+ tmplistaction->setCurrentItem(1);
+ else
+ tmplistaction->setCurrentItem(0);
+
+ tmplistaction=((KSelectAction*)actionCollection()->action("file_type"));
+ if (cfg->readNumEntry("TypeOfMidiFile",0)==0)
+ tmplistaction->setCurrentItem(0);
+ else
+ tmplistaction->setCurrentItem(1);
+
+ if (cfg->readNumEntry("Loop",0)==1)
+ ((KToggleAction*)actionCollection()->action("song_loop"))->setChecked(true);
+
+ if (cfg->readNumEntry("ShowVolumeBar",0)==1)
+ ((KToggleAction*)actionCollection()->action("toggle_volumebar"))->setChecked(true);
+
+
+ tmplistaction=((KSelectAction*)actionCollection()->action("play_order"));
+ if (cfg->readNumEntry("CollectionPlayMode",0)==0)
+ tmplistaction->setCurrentItem(0);
+ else
+ tmplistaction->setCurrentItem(1);
+
+ if ((cfg->readNumEntry("AutoAddToCollection",0))==1)
+ ((KToggleAction*)actionCollection()->action("collect_autoadd"))->setChecked(true);
+
+ if ((cfg->readNumEntry("AutomaticTextEventChooser",1))==1)
+ ((KToggleAction*)actionCollection()->action("option_automatictext"))->setChecked(true);
+
+ setAcceptDrops(true);
+
+ connect( tdemidclient, TQT_SIGNAL( mustRechooseTextEvent() ),
+ this, TQT_SLOT( rechooseTextEvent() ) );
+
+ connect( tdemidclient, TQT_SIGNAL( stopPause() ),
+ this, TQT_SLOT( song_stopPause() ) );
+
+// connect( tdemidclient, TQT_SIGNAL( channelView_Destroyed() ),
+// this, TQT_SLOT( channelViewDestroyed() ) );
+
+ TDECmdLineArgs * args = TDECmdLineArgs::parsedArgs();
+
+ if ( args->count() > 0 )
+ {
+// printf("Opening command line file...\n");
+ int backautoadd=cfg->readNumEntry("AutoAddToCollection",0);
+ cfg->writeEntry("AutoAddToCollection",0);
+
+ char ttt[40];
+ sprintf(ttt,"%d",kapp->argc());
+ int i=0;
+ int c=autoAddSongToCollection( args->url( 0 ).path() , 1 );
+ i++;
+ while (i<args->count())
+ {
+ autoAddSongToCollection( args->url( i ).path() , 0 );
+ i++;
+ }
+
+ tdemidclient->setActiveCollection(c);
+
+ /// tdemidclient->openURL((kapp->argv())[1]);
+ /* if ((cfg->readNumEntry("AutomaticTextEventChooser",1))==1)
+ {
+ if (tdemidclient->ChooseTypeOfTextEvents()==1)
+ options_Text();
+ else
+ options_Lyrics();
+ }*/
+ if (tdemidclient->midiFileName()!=NULL) tdemidclient->play();
+ cfg->writeEntry("AutoAddToCollection",backautoadd);
+ }
+
+ args->clear();
+ /*
+ kKeys->addKey("Play/Pause",Key_Space);
+ kKeys->registerWidget("KMidFrame",this);
+ kKeys->connectFunction("KMidFrame","Play/Pause",this,TQT_SLOT(spacePressed()));
+ */
+// kKeysAccel->writeSettings(cfg);
+
+ DCOPClient *client = kapp->dcopClient();
+ if (!client->isRegistered()) // just in case we're embeeded
+ {
+ client->attach();
+ client->registerAs("tdemid");
+ }
+}
+
+tdemidFrame::~tdemidFrame()
+{
+}
+
+void tdemidFrame::file_Open()
+{
+ KURL url = KFileDialog::getOpenURL(TQString(), "*.kar *.mid *.kar.gz *.mid.gz\n*.kar *.kar.gz\n*.mid *.mid.gz\n*",this);
+
+ if( url.isEmpty() )
+ return;
+
+ if( !url.isLocalFile() )
+ {
+ KMessageBox::sorry( 0L, i18n( "Only local files are currently supported." ) );
+ return;
+ }
+
+ openURL(url.path());
+}
+
+
+
+void tdemidFrame::song_stopPause()
+{
+ if (tdemidclient->isPaused())
+ {
+ // song_Pause();
+ ((KToggleAction*)actionCollection()->action("song_pause"))->setChecked(false);
+ tdemidclient->pause();
+ }
+}
+
+void tdemidFrame::options_FileType(int i)
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("TypeOfMidiFile",i);
+ tdemidclient->setSongType(1-i);
+}
+
+void tdemidFrame::options_DisplayEvents(int i)
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("TypeOfTextEvents",(i==0)?1:5);
+ cfg->sync();
+ tdemidclient->repaintText((i==0)?1:5);
+}
+
+void tdemidFrame::options_AutomaticText()
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("AutomaticTextEventChooser",1-cfg->readNumEntry("AutomaticTextEventChooser",1));
+}
+
+void tdemidFrame::options_FontChange()
+{
+ KFontDialog *kfd=new KFontDialog(this);
+ TQFont font;
+ font=*tdemidclient->getFont();
+ kfd->getFont(font);
+ delete kfd;
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("KaraokeFont",font);
+ cfg->sync();
+ tdemidclient->fontChanged();
+}
+
+int tdemidFrame::autoAddSongToCollection(const TQString& filename,int setactive)
+{
+ int r;
+ SLManager *slman;
+ SongList *sl;
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ if (cfg->readNumEntry("AutoAddToCollection",0)==0)
+ {
+ r=0;
+ slman=tdemidclient->getSLManager();
+ if (setactive) slman->createTemporaryCollection();
+ sl=slman->getCollection(0);
+ if (filename==NULL) sl->AddSong(tdemidclient->midiFileName());
+ else sl->AddSong(TQFile::encodeName(filename));
+ }
+ else
+ {
+ slman=tdemidclient->getSLManager();
+ sl=slman->getCollection(tdemidclient->getActiveCollection());
+ r=tdemidclient->getActiveCollection();
+ if (sl==NULL) return 0;
+ int id;
+ if (filename==NULL) id=sl->AddSong(tdemidclient->midiFileName());
+ else id=sl->AddSong(TQFile::encodeName(filename));
+ if (setactive)
+ {
+ sl->setActiveSong(id);
+ }
+ }
+ return r;
+}
+
+void tdemidFrame::urlDrop_slot(TQDropEvent* e)
+{
+ dropEvent(e);
+}
+
+void tdemidFrame::dragEnterEvent(TQDragEnterEvent* e)
+{
+ e->accept(KURLDrag::canDecode(e));
+}
+
+void tdemidFrame::dropEvent( TQDropEvent * event )
+{
+ KURL::List list;
+ KURLDrag::decode(event, list);
+
+ if (list.count()==0) return;
+
+ bool first = true;
+ int c = true;
+
+ for (KURL::List::ConstIterator it = list.begin();
+ it != list.end(); ++it)
+ {
+ if (!(*it).isLocalFile())
+ continue;
+
+ if (first)
+ {
+ c = autoAddSongToCollection((*it).path(),1);
+ first = false;
+ }
+ else
+ {
+ autoAddSongToCollection((*it).path(),0);
+ }
+ }
+
+ if (!first)
+ {
+ tdemidclient->setActiveCollection(c);
+
+ if ((!tdemidclient->isPlaying())&&(tdemidclient->midiFileName()!=NULL))
+ tdemidclient->play();
+ }
+}
+
+void tdemidFrame::shuttingDown()
+{
+ if (tdemidclient->isPlaying()==1)
+ {
+// tdemidclient->stop();
+ tdemidclient->shuttingDown();
+ }
+ tdemidclient->saveCollections();
+}
+
+void tdemidFrame::saveProperties(TDEConfig *cfg)
+{
+ tdemidclient->saveCollections();
+ int play=tdemidclient->isPlaying();
+ cfg->writeEntry("File",tdemidclient->midiFileName());
+ cfg->writeEntry("ActiveCollection",tdemidclient->getActiveCollection());
+ cfg->writeEntry("ActiveSong",tdemidclient->getSelectedSong());
+ cfg->writeEntry("Playing",play);
+}
+
+void tdemidFrame::readProperties(TDEConfig *cfg)
+{
+ int activecol=cfg->readNumEntry("ActiveCollection",0);
+ int activesong=cfg->readNumEntry("ActiveSong",0);
+ int wasplaying=cfg->readNumEntry("Playing",0);
+ SLManager *slman=tdemidclient->getSLManager();
+ SongList *sl=slman->getCollection(activecol);
+ sl->setActiveSong(activesong);
+ tdemidclient->setActiveCollection(activecol);
+ tdemidclient->slotSelectSong(activesong-1);
+
+ if ((activecol==0)&&(wasplaying)) // It was the temporary collection,
+ { // surely the user would like to continue
+ // hearing the song
+ TQString s = cfg->readPathEntry("File");
+ int c=autoAddSongToCollection(s,1);
+ tdemidclient->setActiveCollection(c);
+ }
+
+ if ((wasplaying)&&(tdemidclient->midiFileName()!=NULL)) tdemidclient->play();
+}
+
+void tdemidFrame::options_MidiSetup()
+{
+ if (tdemidclient->devman()->checkInit()<0)
+ {
+ KMessageBox::error(this,
+ i18n("Could not open /dev/sequencer to get some info.\nProbably there is another program using it."));
+ return;
+ }
+ MidiConfigDialog *dlg;
+
+ dlg=new MidiConfigDialog(tdemidclient->devman(),NULL,"MidiDialog");
+ if (dlg->exec() == TQDialog::Accepted)
+ {
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("MidiPortNumber",MidiConfigDialog::selecteddevice);
+ tdemidclient->setMidiDevice(MidiConfigDialog::selecteddevice);
+ cfg->setGroup("Midimapper");
+ cfg->writePathEntry("LoadFile",
+ (MidiConfigDialog::selectedmap==NULL)? TQString():MidiConfigDialog::selectedmap);
+ tdemidclient->setMidiMapFilename(MidiConfigDialog::selectedmap);
+ }
+ delete dlg;
+}
+
+void tdemidFrame::collect_organize()
+{
+ CollectionDialog *dlg;
+ SLManager *slman=new SLManager(*tdemidclient->getSLManager());
+ int idx=tdemidclient->getActiveCollection();
+
+ dlg=new CollectionDialog(slman,idx,NULL,"MidiDialog");
+ if (dlg->exec() == TQDialog::Accepted)
+ {
+ tdemidclient->setSLManager(slman);
+ tdemidclient->setActiveCollection(CollectionDialog::selectedC);
+ tdemidclient->slotSelectSong(
+ (slman->getCollection(CollectionDialog::selectedC))->getActiveSongID()-1);
+ }
+ else
+ {
+ delete slman;
+ }
+delete dlg;
+}
+
+void tdemidFrame::rechooseTextEvent()
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ if ((cfg->readNumEntry("AutomaticTextEventChooser",1))==1)
+ {
+ int t=tdemidclient->ChooseTypeOfTextEvents();
+ tdemidclient->repaintText(t);
+ if (t==1)
+ ((KSelectAction*)actionCollection()->action("display_events"))->setCurrentItem(0);
+ else
+ ((KSelectAction*)actionCollection()->action("display_events"))->setCurrentItem(1);
+ }
+}
+
+void tdemidFrame::song_Loop()
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ int i=1-cfg->readNumEntry("Loop",0);
+ cfg->writeEntry("Loop",i);
+ cfg->sync();
+ tdemidclient->setSongLoop(i);
+}
+
+void tdemidFrame::collect_PlayOrder(int i)
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("CollectionPlayMode", i);
+ cfg->sync();
+ tdemidclient->setCollectionPlayMode(i);
+}
+
+void tdemidFrame::collect_AutoAdd()
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ cfg->writeEntry("AutoAddToCollection",1-cfg->readNumEntry("AutoAddToCollection",0));
+ cfg->sync();
+}
+
+void tdemidFrame::file_SaveLyrics()
+{
+ KURL url = KFileDialog::getSaveURL(TQString(),"*",this);
+
+ if( url.isEmpty() )
+ return;
+
+ if( !url.isLocalFile() )
+ {
+ KMessageBox::sorry( 0L, i18n( "Only local files are currently supported." ) );
+ return;
+ }
+
+ TQString filename = url.path();
+ struct stat statbuf;
+
+ if (stat(TQFile::encodeName(filename), &statbuf)!=-1)
+ {
+ TQString s = i18n("File %1 already exists\nDo you want to overwrite it?").arg(filename);
+ if (KMessageBox::warningYesNo(this,s,TQString(),i18n("Overwrite"),KStdGuiItem::cancel())==1)
+ return;
+ }
+
+ FILE *fh=fopen(TQFile::encodeName(filename),"wt");
+ tdemidclient->saveLyrics(fh);
+ fclose(fh);
+}
+
+void tdemidFrame::spacePressed()
+{
+ if (!tdemidclient->isPlaying()) tdemidclient->play();
+ else pause();
+}
+void tdemidFrame::options_ShowVolumeBar()
+{
+ TDEConfig *cfg=kapp->config();
+ cfg->setGroup("KMid");
+ int i=1-cfg->readNumEntry("ShowVolumeBar",0);
+ cfg->writeEntry("ShowVolumeBar",i);
+ tdemidclient->visibleVolumeBar(i);
+}
+
+void tdemidFrame::options_ShowChannelView()
+{
+ if (!((KToggleAction*)actionCollection()->action("toggle_channelview"))->isChecked())
+ {
+ tdemidclient->visibleChannelView(0);
+ } else
+ {
+ tdemidclient->visibleChannelView(1);
+ connect (tdemidclient->getChannelView(),TQT_SIGNAL(destroyMe()),this,TQT_SLOT(channelViewDestroyed()));
+ }
+
+}
+
+void tdemidFrame::channelViewDestroyed()
+{
+ tdemidclient->channelViewDestroyed();
+ ((KToggleAction*)actionCollection()->action("toggle_channelview"))->setChecked(false);
+}
+
+void tdemidFrame::options_ChannelViewOptions()
+{
+ ChannelViewConfigDialog *dlg;
+
+ dlg=new ChannelViewConfigDialog(NULL,"ChannelViewConfigDialog");
+ if (dlg->exec() == TQDialog::Accepted)
+ {
+ if (tdemidclient->getChannelView())
+ tdemidclient->getChannelView()->lookMode(
+ ChannelViewConfigDialog::selectedmode );
+ }
+ delete dlg;
+}
+
+void tdemidFrame::openURL( const TQString url )
+{
+ int c=autoAddSongToCollection(url,1);
+ tdemidclient->setActiveCollection(c);
+}
+
+/*void tdemidFrame::play()
+{
+ tdemidclient->play();
+}
+
+void tdemidFrame::pause()
+{
+// tdemidclient->pause();
+ ((KAction*)actionCollection()->action("pause"))->activate();
+}
+
+void tdemidFrame::stop()
+{
+ tdemidclient->stop();
+}
+
+void tdemidFrame::rewind()
+{
+ tdemidclient->rewind();
+}
+
+void tdemidFrame::forward()
+{
+ tdemidclient->forward();
+}
+
+void tdemidFrame::seek(int ms)
+{
+ tdemidclient->timebarChange(ms);
+}
+
+void tdemidFrame::prevSong()
+{
+ tdemidclient->prevSong();
+}
+
+void tdemidFrame::nextSong()
+{
+ tdemidclient->nextSong();
+}
+
+void tdemidFrame::setSongLoop(int i)
+{
+ ((KToggleAction*)actionCollection()->action("song_loop"))->setChecked(i!=0);
+}
+
+void tdemidFrame::setVolume(int i)
+{
+ tdemidclient->volumebarChange(200-i);
+}
+
+void tdemidFrame::setTempo(int i)
+{
+ tdemidclient->changeTempo(i);
+}
+
+void tdemidFrame::setSongType( int i )
+{
+ KSelectAction *tmplistaction=
+ ((KSelectAction*)actionCollection()->action("file_type"));
+
+ tmplistaction->setCurrentItem(i);
+}
+
+void tdemidFrame::setLyricEvents( int i )
+{
+ KSelectAction *tmplistaction=
+ ((KSelectAction*)actionCollection()->action("display_events"));
+ tmplistaction->setCurrentItem(i);
+}
+
+void tdemidFrame::selectSong(int i)
+{
+ tdemidclient->getComboSongs()->setCurrentItem(i-1);
+ tdemidclient->selectSong(i-1);
+}
+
+void tdemidFrame::setActiveCollection( int i )
+{
+ tdemidclient->setActiveCollection(i);
+}
+
+void tdemidFrame::setCollectionPlayMode(int i)
+{
+ ((KSelectAction*)actionCollection()->action("play_order"))->setCurrentItem(i);
+}
+
+void tdemidFrame::setMidiDevice(int i)
+{
+
+
+}
+*/
+
+
+#include "tdemidframe.moc"