aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/mediaplayer/MpMprisInterface.h
blob: 1979e82428145a0baac6fdc99afd10b448b2481f (about) (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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
#ifndef _MP_AUDACIOUSINTERFACE_H_
#define _MP_AUDACIOUSINTERFACE_H_
//=============================================================================
//
//   File : MpMprisInterface.h
//   Creation date : Thu 06 Dec 2007 14:20:02 by Tomasz Moń
//
//   This file is part of the KVIrc IRC client distribution
//   Copyright (C) 2007-2009 Tomasz Moń <desowin@gmail.com>
//
//   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.
//
//=============================================================================

#include "MpInterface.h"

#include "kvi_settings.h"

#if(defined(COMPILE_DBUS_SUPPORT) && !defined(COMPILE_ON_WINDOWS) && !defined(COMPILE_ON_MAC) && !defined(COMPILE_ON_MINGW))
#include <QtDBus/QtDBus>

class MpMprisInterface : public MpInterface
{
public:
	MpMprisInterface();
	virtual ~MpMprisInterface();

public:
	QString m_szServiceName;
	virtual int detect(bool bStart);
	virtual bool prev();
	virtual bool next();
	virtual bool play();
	virtual bool stop();
	virtual bool pause();
	virtual bool quit();
	virtual MpInterface::PlayerStatus status();
	virtual QString nowPlaying();
	virtual QString mrl();
	virtual QString title();
	virtual QString artist();
	virtual QString genre();
	virtual QString comment();
	virtual QString year();
	virtual QString album();
	virtual int bitRate();
	virtual int sampleRate();
	virtual bool setVol(kvs_int_t & iVol);
	virtual int getVol();
	virtual int position();
	virtual int length();
	virtual bool jumpTo(kvs_int_t & iPos);
	virtual QVariant getTrackId();
};

class MpAudaciousInterface : public MpMprisInterface
{
public:
	MpAudaciousInterface();
};

class MpAmarok2Interface : public MpMprisInterface
{
public:
	MpAmarok2Interface();
};

class MpQmmpInterface : public MpMprisInterface
{
public:
	MpQmmpInterface();
};

class MpXmms2Interface : public MpMprisInterface
{
public:
	MpXmms2Interface();
};

class MpTotemInterface : public MpMprisInterface
{
public:
	MpTotemInterface();
};

class MpVlcInterface : public MpMprisInterface
{
public:
	MpVlcInterface();
};

class MpClementineInterface : public MpMprisInterface
{
public:
	MpClementineInterface();
};

class MpStrawberryInterface : public MpMprisInterface
{
public:
	MpStrawberryInterface();
};

class MpMprisGenericInterface : public MpMprisInterface
{
public:
	MpMprisGenericInterface();
	virtual int detect(bool bStart) override;
};

MP_DECLARE_DESCRIPTOR(MpAudaciousInterface)
MP_DECLARE_DESCRIPTOR(MpAmarok2Interface)
MP_DECLARE_DESCRIPTOR(MpQmmpInterface)
MP_DECLARE_DESCRIPTOR(MpXmms2Interface)
MP_DECLARE_DESCRIPTOR(MpTotemInterface)
MP_DECLARE_DESCRIPTOR(MpVlcInterface)
MP_DECLARE_DESCRIPTOR(MpClementineInterface)
MP_DECLARE_DESCRIPTOR(MpStrawberryInterface)
MP_DECLARE_DESCRIPTOR(MpMprisGenericInterface)
#endif //COMPILE_ON_WINDOWS

#endif //_MP_AUDACIOUSINTERFACE_H_