aboutsummaryrefslogtreecommitdiff
path: root/src/plugins/General/dbuscontrol/dbusadaptor.h
blob: 225de2aca82b424ce824f483433e111aa1b76a34 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/***************************************************************************
 *   Copyright (C) 2008 by Ilya Kotov                                      *
 *   forkotov02@hotmail.ru                                                 *
 *                                                                         *
 *   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.             *
 ***************************************************************************/
#ifndef DBUSADAPTOR_H
#define DBUSADAPTOR_H

#include <QtDBus>

class Control;

/**
	@author Ilya Kotov <forkotov02@hotmail.ru>
*/
class DBUSAdaptor : public QDBusAbstractAdaptor
{
Q_OBJECT
Q_CLASSINFO("D-Bus Interface", "org.qmmp.dbus")
Q_PROPERTY(int volume READ volume WRITE setVolume)
Q_PROPERTY(int balance READ balance WRITE setBalance)
Q_PROPERTY(int length READ length)
Q_PROPERTY(int year READ year)
Q_PROPERTY(QString title READ title)
Q_PROPERTY(QString artist READ artist)
Q_PROPERTY(QString album READ album)
Q_PROPERTY(QString comment READ comment)
Q_PROPERTY(QString genre READ genre)
Q_PROPERTY(bool isPlaying READ isPlaying)
Q_PROPERTY(bool isPaused READ isPaused)
Q_PROPERTY(bool isStopped READ isStopped)
Q_PROPERTY(int elapsedTime READ elapsedTime)


public:
    DBUSAdaptor(Control *ctrl, QObject *parent = 0);

    ~DBUSAdaptor();

    int volume();
    void setVolume(int);
    int balance();
    void setBalance(int);
    int length();
    int year();
    QString title();
    QString artist();
    QString album();
    QString comment();
    QString genre();
    bool isPlaying();
    bool isPaused();
    bool isStopped();
    int elapsedTime();

signals:
    void started();
    void paused();
    void stopped();
    void volumeChanged(int vol, int bal);
    void timeChanged(int newTime);

public slots:
    void play();
    void stop();
    void next();
    void previous();
    void pause();
    void toggleVisibility();
    void exit();
    void seek(int time);

private slots:
    void processState();
    void processVolume();
    void processTime();

private:
    Control *m_control;
};

#endif