• Skip to content
  • Skip to link menu
KDE 4.4 API Reference
  • KDE API Reference
  • kdeedu
  • Sitemap
  • Contact Us
 

parley

audiowidget.cpp

Go to the documentation of this file.
00001 /***************************************************************************
00002 
00003     Copyright 2007 Frederik Gladhorn <frederik.gladhorn@kdemail.net>
00004 
00005  ***************************************************************************/
00006 
00007 /***************************************************************************
00008  *                                                                         *
00009  *   This program is free software; you can redistribute it and/or modify  *
00010  *   it under the terms of the GNU General Public License as published by  *
00011  *   the Free Software Foundation; either version 2 of the License, or     *
00012  *   (at your option) any later version.                                   *
00013  *                                                                         *
00014  ***************************************************************************/
00015 
00016 #include "audiowidget.h"
00017 
00018 #include <Phonon/MediaObject>
00019 
00020 #include <keduvocexpression.h>
00021 
00022 #include <KIcon>
00023 #include <kdebug.h>
00024 
00025 
00026 AudioWidget::AudioWidget(QWidget *parent) : QWidget(parent)
00027 {
00028     setupUi(this);
00029     m_currentTranslation = -1;
00030     m_player = 0;
00031 
00032     connect(audioUrlRequester, SIGNAL(textChanged(const QString&)), SLOT(slotAudioFileChanged(const QString&)));
00033     connect(playButton, SIGNAL(clicked()), SLOT(playAudio()));
00034 //     connect(recordButton, SIGNAL(clicked()), SLOT(recordAudio()));
00035 
00036     playButton->setEnabled(false);
00037     playButton->setIcon(KIcon("media-playback-start"));
00038     recordButton->setVisible(false);
00039 //     recordButton->setEnabled(false);
00040 //     recordButton->setIcon(KIcon("media-record"));
00041     audioUrlRequester->setEnabled(false);
00042 }
00043 
00044 void AudioWidget::setTranslation(KEduVocExpression* entry, int translation)
00045 {
00046     m_currentTranslation = translation;
00047     m_entry = entry;
00048 
00049     if (m_entry) {
00050         recordButton->setEnabled(true);
00051         audioUrlRequester->setEnabled(true);
00052         audioUrlRequester->setUrl(m_entry->translation(m_currentTranslation)->soundUrl().toLocalFile());
00053     } else {
00054         recordButton->setEnabled(false);
00055         audioUrlRequester->setEnabled(false);
00056         if (m_player) {
00057             if (m_player->state() == Phonon::PlayingState) {
00058                 playButton->setEnabled(true);
00059             } else {
00060                 playButton->setEnabled(false);
00061             }
00062         }
00063         audioUrlRequester->clear();
00064     }
00065 }
00066 
00067 void AudioWidget::slotAudioFileChanged(const QString & url)
00068 {
00069     if (m_currentTranslation) {
00070         kDebug() << "Setting sound " << url;
00071         m_entry->translation(m_currentTranslation)->setSoundUrl( KUrl(url) );
00072     }
00073     playButton->setEnabled(!url.isEmpty());
00074 }
00075 
00076 void AudioWidget::playAudio()
00077 {
00078     KUrl soundFile = m_entry->translation(m_currentTranslation)->soundUrl();
00079     kDebug() << "sound file: " << soundFile.url();
00080 
00081     if (!m_player)
00082     {
00083         m_player = Phonon::createPlayer(Phonon::NotificationCategory, soundFile);
00084         m_player->setParent(this);
00085         connect(m_player, SIGNAL(finished()), SLOT(slotPlaybackFinished()));
00086     } else {
00087         if (m_player->state() == Phonon::PlayingState) {
00088             m_player->stop();
00089             slotPlaybackFinished();
00090             return;
00091         }
00092         m_player->setCurrentSource(soundFile);
00093     }
00094     playButton->setIcon(KIcon("media-playback-stop"));
00095     m_player->play();
00096 }
00097 
00098 /*
00099 void AudioWidget::recordAudio()
00100 {
00102 }
00103 */
00104 
00105 void AudioWidget::slotPlaybackFinished()
00106 {
00107     playButton->setIcon(KIcon("media-playback-start"));
00108     playButton->setEnabled(!audioUrlRequester->url().isEmpty());
00109 }
00110 
00111 #include "audiowidget.moc"

parley

Skip menu "parley"
  • Main Page
  • Namespace List
  • Class Hierarchy
  • Alphabetical List
  • Class List
  • File List
  • Namespace Members
  • Class Members
  • Related Pages

kdeedu

Skip menu "kdeedu"
  •     lib
  • kalzium
  • kanagram
  • kig
  •   lib
  • klettres
  • kstars
  • libkdeedu
  •   keduvocdocument
  • marble
  • parley
  •   stepcore
Generated for kdeedu by doxygen 1.5.9-20090814
This website is maintained by Adriaan de Groot and Allen Winter.
KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal