/usr/include/kadu/plugins/mediaplayer/mediaplayer.h is in kadu-dev 4.1-1.1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 | #pragma once
#include "configuration/configuration-aware-object.h"
#include "configuration/gui/configuration-ui-handler.h"
#include "mediaplayer-exports.h"
#include <QtCore/QMap>
#include <QtCore/QPointer>
#include <injeqt/injeqt.h>
class QAction;
class QKeyEvent;
class QMenu;
class QPushButton;
class QTimer;
class ActionDescription;
class Actions;
class ChatWidget;
class ChatWidgetRepository;
class Configuration;
class CustomInput;
class DockingMenuActionRepository;
class IconsManager;
class PluginInjectedFactory;
class MediaplayerNotificationService;
class MenuInventory;
class PlayerCommands;
class PlayerInfo;
class StatusChangerManager;
class ToolBar;
class ToolButton;
class UserGroup;
class MediaPlayerStatusChanger;
class MEDIAPLAYERAPI MediaPlayer : public QObject, ConfigurationAwareObject
{
Q_OBJECT
QPointer<Actions> m_actions;
QPointer<ChatWidgetRepository> m_chatWidgetRepository;
QPointer<Configuration> m_configuration;
QPointer<DockingMenuActionRepository> m_dockingMenuActionRepository;
QPointer<IconsManager> m_iconsManager;
QPointer<PluginInjectedFactory> m_pluginInjectedFactory;
QPointer<MediaplayerNotificationService> m_mediaplayerNotificationService;
QPointer<MenuInventory> m_menuInventory;
QPointer<StatusChangerManager> m_statusChangerManager;
MediaPlayerStatusChanger *Changer;
PlayerInfo *playerInfo;
PlayerCommands *playerCommands;
ActionDescription *enableMediaPlayerStatuses;
ActionDescription *mediaPlayerMenu;
ActionDescription *playAction, *stopAction, *prevAction, *nextAction, *volUpAction, *volDownAction;
QAction *DockedMediaplayerStatus;
QTimer *timer;
int statusInterval;
QString currentTitle;
QMenu *menu;
QAction *popups[6];
bool winKeyPressed; // TODO: this is lame, make it good ;)
QMap<ChatWidget *, QPushButton *> chatButtons;
bool isPaused;
int pos();
/**
Returns Chat window, which currenly has a focus.
*/
ChatWidget *getCurrentChat();
/**
Returns true if playerInfo is supported by 3rd party
player module which is currently loaded (if any).
*/
bool playerInfoSupported();
/**
Returns true if playerCommands is supported by 3rd party
player module which is currently loaded (if any).
*/
bool playerCommandsSupported();
void setControlsEnabled(bool enabled);
void createDefaultConfiguration();
private slots:
INJEQT_SET void setActions(Actions *actions);
INJEQT_SET void setChatWidgetRepository(ChatWidgetRepository *chatWidgetRepository);
INJEQT_SET void setConfiguration(Configuration *configuration);
INJEQT_SET void setDockingMenuActionRepository(DockingMenuActionRepository *dockingMenuActionRepository);
INJEQT_SET void setIconsManager(IconsManager *iconsManager);
INJEQT_SET void setPluginInjectedFactory(PluginInjectedFactory *pluginInjectedFactory);
INJEQT_SET void setMediaplayerNotificationService(MediaplayerNotificationService *mediaplayerNotificationService);
INJEQT_SET void setMenuInventory(MenuInventory *menuInventory);
INJEQT_SET void setStatusChangerManager(StatusChangerManager *statusChangerManager);
INJEQT_INIT void init();
INJEQT_DONE void done();
// Proxy methods for 3rd party modules
void nextTrack();
void prevTrack();
void play();
void stop();
void pause();
void setVolume(int vol);
void incrVolume();
void decrVolume();
void playPause();
QString getPlayerName();
QString getPlayerVersion();
QString getTitle();
QString getAlbum();
QString getArtist();
/*
Returns song's filename
*/
QString getFile();
/*
Returns song's length in milliseconds
*/
int getLength();
/*
Returns song's current position in milliseconds from the beginning
*/
int getCurrentPos();
bool isPlaying();
bool isActive();
QStringList getPlayListTitles();
QStringList getPlayListFiles();
/*
Applies all needed functions to newly created Chat window.
*/
void chatWidgetAdded(ChatWidget *);
/*
Removes all needed functions from Chat window being destroyed.
*/
void chatWidgetRemoved(ChatWidget *);
void checkTitle();
void chatKeyPressed(QKeyEvent *, CustomInput *, bool &);
void chatKeyReleased(QKeyEvent *, CustomInput *, bool &);
void mediaPlayerStatusChangerActivated(QAction *sender, bool toggled);
void mediaPlayerMenuActivated(QAction *sender, bool toggled);
void statusAboutToBeChanged();
void toggleStatuses(bool toggled);
protected:
void configurationUpdated();
public:
Q_INVOKABLE explicit MediaPlayer(QObject *parent = nullptr);
virtual ~MediaPlayer();
/*
Looks for special tags in string 'str' and replaces it by
assigned values. Then returns string in new form.
Tag: Replaces by:
%t Song title
%a Album title
%r Artist
%f File name
%l Length in format MM:SS
%c Current playing position in format MM:SS
%p Current playing position in percents
%d Current user description (if any)
%n Player name
%v Player version.
*/
QString parse(const QString &str);
/*
Returns formatted string of track length, which should be
value returned by getLength() or getCurrentPosition() method.
*/
QString formatLength(int length);
/*
3rd party player module has to call this method in its constructor to register itself
in MediaPlayer module so everything work.
If one of PlayweInfo or PlayerCommands isn't supported by 3rd party module,
just pass null (0) value for argument in this method.
The method returns true if registering has successed, or false if there is already
other module registered.
*/
bool registerMediaPlayer(PlayerInfo *info, PlayerCommands *cmds);
/*
3rd party player module has to call this method in its destructor to unregister itself
from MediaPlayer module so other module can be registered.
*/
void unregisterMediaPlayer();
void titleChanged();
void statusChanged();
void setInterval(int seconds);
/**
Puts song title into current chat edit field.
*/
void putSongTitle(int);
/**
Puts whole playlist into current chat edit field.
*/
void putPlayList(int);
public slots:
/**
Helper slots
*/
void insertFormattedSong();
void insertSongTitle();
void insertSongFilename();
void insertPlaylistTitles();
void insertPlaylistFilenames();
};
|