kdemm Library API Documentation

backend.cpp

00001 /*  This file is part of the KDE project
00002     Copyright (C) 2004 Matthias Kretz <kretz@kde.org>
00003 
00004     This library is free software; you can redistribute it and/or
00005     modify it under the terms of the GNU Library General Public
00006     License version 2 as published by the Free Software Foundation.
00007 
00008     This library is distributed in the hope that it will be useful,
00009     but WITHOUT ANY WARRANTY; without even the implied warranty of
00010     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00011     Library General Public License for more details.
00012 
00013     You should have received a copy of the GNU Library General Public License
00014     along with this library; see the file COPYING.LIB.  If not, write to
00015     the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
00016     Boston, MA 02111-1307, USA.
00017 
00018 */
00019 
00020 #include "backend.h"
00021 #include "player.h"
00022 
00023 #include <qstringlist.h>
00024 
00025 #include <kglobal.h>
00026 #include <kinstance.h>
00027 #include <kaboutdata.h>
00028 
00029 namespace KDE
00030 {
00031 namespace Multimedia
00032 {
00033 
00034 class Backend::Private
00035 {
00036     public:
00037         Channel * channel;
00038 };
00039 
00040 Backend::Backend( QObject * parent, const char * name )
00041     : QObject( parent, name )
00042     , d( 0 )
00043 {
00044 }
00045 
00046 Backend::~Backend()
00047 {
00048     delete d;
00049 }
00050 
00051 bool Backend::playSoundEvent( const KURL & url )
00052 {
00053     if( ! d )
00054     {
00055         d = new Private;
00056 
00057         QString ctype = "notifications";
00058         if( availableChannels( Channel::Output ).contains( ctype ) < 1 )
00059             ctype = "default";
00060         d->channel = createChannel( KGlobal::instance()->aboutData()->programName(), ctype, Channel::Output );
00061     }
00062 
00063     Player * player = createPlayer();
00064     player->setOutputChannel( d->channel );
00065     connect( player, SIGNAL( finished() ), player, SLOT( deleteLater() ) );
00066 
00067     if( player->load( url ) )
00068         if( player->play() )
00069             return true;
00070     delete player;
00071     return false;
00072 }
00073 
00074 }} // namespaces
00075 
00076 #include "backend.moc"
00077 
00078 // vim: sw=4 ts=4 noet
KDE Logo
This file is part of the documentation for kdemm Library Version 3.4.2.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Sep 13 04:04:36 2005 by doxygen 1.4.4 written by Dimitri van Heesch, © 1997-2003