• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdemultimedia API Reference
  • KDE Home
  • Contact Us
 

libkcompactdisc

  • sources
  • kde-4.14
  • kdemultimedia
  • libkcompactdisc
kcompactdisc.h
Go to the documentation of this file.
1 /*
2  * KCompactDisc - A CD drive interface for the KDE Project.
3  *
4  * Copyright (C) 2005 Shaheedur R. Haque <srhaque@iee.org>
5  * Copyright (C) 2007 Alexander Kern <alex.kern@gmx.de>
6  *
7  * This program is free software; you can redistribute it and/or modify
8  * it under the terms of the GNU General Public License as published by
9  * the Free Software Foundation; either version 2, or (at your option)
10  * any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, write to the Free Software
19  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
20  */
21 
22 #ifndef KCOMPACTDISC_H
23 #define KCOMPACTDISC_H
24 
25 #include <QtCore/QObject>
26 #include <QtCore/QTimer>
27 #include <QtCore/QStringList>
28 
29 #include <kdemacros.h>
30 #include <kurl.h>
31 
32 #if defined Q_OS_WIN
33 
34 #ifndef KCOMPACTDISC_EXPORT
35 # ifdef MAKE_KCOMPACTDISC_LIB
36 # define KCOMPACTDISC_EXPORT KDE_EXPORT
37 # else
38 # define KCOMPACTDISC_EXPORT KDE_IMPORT
39 # endif
40 #endif
41 
42 #else /* UNIX */
43 
44 /* export statements for unix */
45 #define KCOMPACTDISC_EXPORT KDE_EXPORT
46 #endif
47 
48 class KCompactDiscPrivate;
49 
102 class KCOMPACTDISC_EXPORT KCompactDisc : public QObject
103 {
104  Q_OBJECT
105 /*
106  Q_CLASSINFO("D-Bus Interface", "org.kde.KSCD")
107 
108 public Q_SLOTS:
109  Q_SCRIPTABLE bool playing();
110  Q_SCRIPTABLE void play() { play(); }
111  Q_SCRIPTABLE void stop() { stop(); }
112  Q_SCRIPTABLE void previous() { prev(); }
113  Q_SCRIPTABLE void next() { next(); }
114  Q_SCRIPTABLE void jumpTo(int seconds) { jumpToTime(seconds); }
115  Q_SCRIPTABLE void eject() { eject(); }
116  Q_SCRIPTABLE void toggleLoop() { loop(); }
117  Q_SCRIPTABLE void toggleShuffle() { random(); }
118  Q_SCRIPTABLE void toggleTimeDisplay() { cycleplaytimemode(); }
119  Q_SCRIPTABLE void cddbDialog() { CDDialogSelected(); }
120  Q_SCRIPTABLE void optionDialog() { showConfig(); }
121  Q_SCRIPTABLE void setTrack(int t) { trackSelected(t > 0 ? t - 1 : 0); }
122  Q_SCRIPTABLE void volumeDown() { decVolume(); }
123  Q_SCRIPTABLE void volumeUp() { incVolume(); }
124  Q_SCRIPTABLE void setVolume(int v);
125  Q_SCRIPTABLE void setDevice(const QString& dev);
126  Q_SCRIPTABLE int getVolume() { return Prefs::volume(); }
127  Q_SCRIPTABLE int currentTrack();
128  Q_SCRIPTABLE int currentTrackLength();
129  Q_SCRIPTABLE int currentPosition();
130  Q_SCRIPTABLE int getStatus();
131  Q_SCRIPTABLE QString currentTrackTitle();
132  Q_SCRIPTABLE QString currentAlbum();
133  Q_SCRIPTABLE QString currentArtist();
134  Q_SCRIPTABLE QStringList trackList();
135 */
136 public:
137  enum InformationMode
138  {
139  Synchronous, // Return and emit signal when cdrom and cddb information arrives.
140  Asynchronous // Block until cdrom and cddb infromation has been obtained
141  };
142 
143  enum DiscCommand
144  {
145  Play,
146  Pause,
147  Next,
148  Prev,
149  Stop,
150  Eject,
151  Loop,
152  Random
153  };
154 
155  enum DiscStatus
156  {
157  Playing,
158  Paused,
159  Stopped,
160  Ejected,
161  NoDisc,
162  NotReady,
163  Error
164  };
165 
166  enum DiscInfo
167  {
168  Cdtext,
169  Cddb,
170  PhononMetadata
171  };
172 
173  KCompactDisc(InformationMode = KCompactDisc::Synchronous);
174  virtual ~KCompactDisc();
175 
183  bool setDevice(
184  const QString &device,
185  unsigned volume = 50,
186  bool digitalPlayback = true,
187  const QString &audioSystem = QString(),
188  const QString &audioDevice = QString());
189 
194  static QString urlToDevice(const KUrl& url);
195 
199  static const QStringList audioSystems();
200 
204  static const QStringList cdromDeviceNames();
205 
209  static const QString defaultCdromDeviceName();
210 
214  static const KUrl defaultCdromDeviceUrl();
215 
219  static const KUrl cdromDeviceUrl(const QString &);
220 
224  static const QString defaultCdromDeviceUdi();
225 
229  static const QString cdromDeviceUdi(const QString &);
230 
236  const QString &deviceVendor();
237 
243  const QString &deviceModel();
244 
250  const QString &deviceRevision();
251 
257  const QString &deviceName();
258 
262  const KUrl deviceUrl();
263 
267  unsigned discId();
268 
272  const QList<unsigned> &discSignature();
273 
279  const QString &discArtist();
280 
286  const QString &discTitle();
287 
293  unsigned discLength();
294 
300  unsigned discPosition();
301 
307  KCompactDisc::DiscStatus discStatus();
308 
314  QString discStatusString(KCompactDisc::DiscStatus status);
315 
321  QString trackArtist();
322 
328  QString trackArtist(unsigned track);
329 
335  QString trackTitle();
336 
342  QString trackTitle(unsigned track);
343 
349  unsigned trackLength();
350 
357  unsigned trackLength(unsigned track);
358 
364  unsigned track();
365 
371  unsigned trackPosition();
372 
376  unsigned tracks();
377 
381  bool isPlaying();
382 
386  bool isPaused();
387 
391  bool isNoDisc();
392 
396  bool isAudio(unsigned track);
397 
398 
399 public Q_SLOTS:
400 
404  void playTrack(unsigned int track);
405 
409  void playPosition(unsigned int position);
410 
411  /* GUI bindings */
415  void play();
416 
420  void next();
421 
425  void prev();
426 
430  void pause();
431 
435  void stop();
436 
440  void eject();
441 
445  void loop();
446 
450  void random();
451 
455  void doCommand(KCompactDisc::DiscCommand);
456 
457 
458  void metadataLookup();
459 
460 
461 Q_SIGNALS:
471  void playoutPositionChanged(unsigned int position);
472 
478  void playoutTrackChanged(unsigned int track);
479 
480 
481 public Q_SLOTS:
482 
483  void setRandomPlaylist(bool);
484  void setLoopPlaylist(bool);
485  void setAutoMetadataLookup(bool);
486 
487 
488 Q_SIGNALS:
489 
490  void randomPlaylistChanged(bool);
491  void loopPlaylistChanged(bool);
492 
493 
494 Q_SIGNALS:
495 
500  void discChanged(unsigned int tracks);
501 
506  void discInformation(KCompactDisc::DiscInfo info);
507 
512  void discStatusChanged(KCompactDisc::DiscStatus status);
513 
514 
515 public Q_SLOTS:
516 
520  void setVolume(unsigned int volume);
521 
525  void setBalance(unsigned int balance);
526 
527 Q_SIGNALS:
528 
532  void volumeChanged(unsigned int volume);
533 
537  void balanceChanged(unsigned int balance);
538 
539 
540 protected:
541  KCompactDiscPrivate * d_ptr;
542  KCompactDisc(KCompactDiscPrivate &dd, QObject *parent);
543 
544 private:
545  Q_DECLARE_PRIVATE(KCompactDisc)
546 #ifdef USE_WMLIB
547  friend class KWMLibCompactDiscPrivate;
548 #endif
549  friend class KPhononCompactDiscPrivate;
550 };
551 
552 #endif
KCompactDisc::Play
Definition: kcompactdisc.h:145
KCompactDisc::InformationMode
InformationMode
Definition: kcompactdisc.h:137
KCompactDisc::Stop
Definition: kcompactdisc.h:149
KCompactDiscPrivate
Definition: kcompactdisc_p.h:31
KPhononCompactDiscPrivate
Definition: phonon_interface.h:32
KCompactDisc::Cdtext
Definition: kcompactdisc.h:168
KCompactDisc::Playing
Definition: kcompactdisc.h:157
KCompactDisc::DiscStatus
DiscStatus
Definition: kcompactdisc.h:155
KCompactDisc::Cddb
Definition: kcompactdisc.h:169
KCompactDisc::Ejected
Definition: kcompactdisc.h:160
KWMLibCompactDiscPrivate
Definition: wmlib_interface.h:26
KCompactDisc::Next
Definition: kcompactdisc.h:147
QObject
KCompactDisc::Eject
Definition: kcompactdisc.h:150
QString
QList< unsigned >
QStringList
KCompactDisc::Stopped
Definition: kcompactdisc.h:159
KCompactDisc::Synchronous
Definition: kcompactdisc.h:139
KCompactDisc
KCompactDisc - A CD drive interface for the KDE Project.
Definition: kcompactdisc.h:102
KCompactDisc::NotReady
Definition: kcompactdisc.h:162
KCompactDisc::DiscInfo
DiscInfo
Definition: kcompactdisc.h:166
KCompactDisc::DiscCommand
DiscCommand
Definition: kcompactdisc.h:143
KCOMPACTDISC_EXPORT
#define KCOMPACTDISC_EXPORT
Definition: kcompactdisc.h:45
KCompactDisc::Paused
Definition: kcompactdisc.h:158
KCompactDisc::Loop
Definition: kcompactdisc.h:151
KCompactDisc::NoDisc
Definition: kcompactdisc.h:161
KCompactDisc::d_ptr
KCompactDiscPrivate * d_ptr
Definition: kcompactdisc.h:541
KCompactDisc::Pause
Definition: kcompactdisc.h:146
KCompactDisc::Prev
Definition: kcompactdisc.h:148
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:28:18 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

libkcompactdisc

Skip menu "libkcompactdisc"
  • Main Page
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members

kdemultimedia API Reference

Skip menu "kdemultimedia API Reference"
  • libkcddb
  • libkcompactdisc

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal