soundstreamclient_interfaces.h

Go to the documentation of this file.
00001 /***************************************************************************
00002                       sounddevice_interfaces.h  -  description
00003                              -------------------
00004     begin                : Sun Mar 21 2004
00005     copyright            : (C) 2004 by Martin Witte
00006     email                : witte@kawo1.rwth-aachen.de
00007  ***************************************************************************/
00008 
00009 /***************************************************************************
00010  *                                                                         *
00011  *   This program is free software; you can redistribute it and/or modify  *
00012  *   it under the terms of the GNU General Public License as published by  *
00013  *   the Free Software Foundation; either version 2 of the License, or     *
00014  *   (at your option) any later version.                                   *
00015  *                                                                         *
00016  ***************************************************************************/
00017 
00018 /***************************************************************************
00019  *                                                                         *
00020  *   Interfaces in this header:                                            *
00021  *                                                                         *
00022  *   ISoundDevice(Client)                                                  *
00023  *                                                                         *
00024  ***************************************************************************/
00025 
00026 #ifndef KRADIO_SOUNDSTREAMCLIENT_INTERFACES_H
00027 #define KRADIO_SOUNDSTREAMCLIENT_INTERFACES_H
00028 
00029 #ifdef HAVE_CONFIG_H
00030 #include <config.h>
00031 #endif
00032 
00033 #include <kconfig.h>
00034 #include <qmap.h>
00035 
00036 #include "interfaces.h"
00037 #include "soundformat.h"
00038 #include "soundstreamid.h"
00039 #include "sound_metadata.h"
00040 
00041 
00042 #define CALL_SNDSTR_SERVER(name, param, call) \
00043     inline int name param const { \
00044         return  iConnections.count() ? iConnections.getFirst()->name call : 0; \
00045     }
00046 
00047 
00048 #define SIZE_T_DONT_CARE ((size_t)(-1))
00049 
00050 class RadioStation;
00051 
00052 INTERFACE(ISoundStreamServer, ISoundStreamClient)
00053 {
00054 friend class ISoundStreamClient;
00055 public:
00056     IF_CON_DESTRUCTOR(ISoundStreamServer, -1)
00057 
00058     virtual void noticeConnectedI(cmplInterface *i, bool valid);
00059     virtual void noticeDisconnectedI(cmplInterface *i, bool valid);
00060 
00061     virtual QMap<QString, ISoundStreamClient *> getPlaybackClients() const;
00062     virtual QMap<QString, QString>              getPlaybackClientDescriptions() const;
00063     virtual QMap<QString, ISoundStreamClient *> getCaptureClients() const;
00064     virtual QMap<QString, QString>              getCaptureClientDescriptions() const;
00065     virtual ISoundStreamClient                 *getSoundStreamClientWithID(const QString &id) const;
00066 
00067 ANSWERS:
00068     virtual QPtrList<ISoundStreamClient>   getPlaybackMixers() const;
00069     virtual QPtrList<ISoundStreamClient>   getCaptureMixers() const;
00070 
00071 
00072 SENDERS:
00073     IF_SENDER_FINE  (  notifyPlaybackChannelsChanged, (const QString &/*client_id*/, const QStringList &)                     )
00074     IF_SENDER_FINE  (  notifyCaptureChannelsChanged, (const QString &/*client_id*/, const QStringList &)                      )
00075 
00076     IF_SENDER_FINE  (  sendPlaybackVolume, (SoundStreamID /*id*/,  float /*volume*/)                  )
00077     IF_SENDER_FINE  (  sendCaptureVolume, (SoundStreamID /*id*/,   float /*volume*/)                  )
00078     IF_SENDER_FINE  (  queryPlaybackVolume, (SoundStreamID /*id*/, float &/*volume*/)                 )
00079     IF_SENDER_FINE  (  queryCaptureVolume, (SoundStreamID /*id*/,  float &/*volume*/)                 )
00080     IF_SENDER_FINE  (  notifyPlaybackVolumeChanged, (SoundStreamID /*id*/, float /*volume*/)          )
00081     IF_SENDER_FINE  (  notifyCaptureVolumeChanged, (SoundStreamID /*id*/, float /*volume*/)           )
00082 
00083     IF_SENDER_FINE  (  notifyTrebleChanged, (SoundStreamID /*id*/, float /*v*/)                       )
00084     IF_SENDER_FINE  (  notifyBassChanged, (SoundStreamID /*id*/, float /*v*/)                         )
00085     IF_SENDER_FINE  (  notifyBalanceChanged, (SoundStreamID /*id*/, float /*v*/)                      )
00086     IF_SENDER_FINE  (  notifyMuted, (SoundStreamID /*id*/, bool /*m*/)                                )
00087     IF_SENDER_FINE  (  notifySignalQualityChanged, (SoundStreamID /*id*/, float /*q*/)                )
00088     IF_SENDER_FINE  (  notifySignalQualityBoolChanged, (SoundStreamID /*id*/, bool /*good*/)              )
00089     IF_SENDER_FINE  (  notifySignalMinQualityChanged, (SoundStreamID /*id*/, float /*q*/)             )
00090     IF_SENDER_FINE  (  notifyStereoChanged, (SoundStreamID /*id*/, bool  /*s*/)                       )
00091 
00092     IF_SENDER_FINE  (  sendTreble,   (SoundStreamID /*id*/, float /*v*/)                              )
00093     IF_SENDER_FINE  (  sendBass,     (SoundStreamID /*id*/, float /*v*/)                              )
00094     IF_SENDER_FINE  (  sendBalance,  (SoundStreamID /*id*/, float /*v*/)                              )
00095     IF_SENDER_FINE  (  sendMute,  (SoundStreamID /*id*/, bool mute = true)                            )
00096     IF_SENDER_FINE  (  sendUnmute,  (SoundStreamID /*id*/, bool unmute = true)                        )
00097     IF_SENDER_FINE  (  sendSignalMinQuality,  (SoundStreamID /*id*/, float /*q*/)                     )
00098     IF_SENDER_FINE  (  sendStereo, (SoundStreamID /*id*/, bool /*s*/)                                 )
00099 
00100     IF_SENDER_FINE  (  queryTreble, (SoundStreamID /*id*/, float &)                               )
00101     IF_SENDER_FINE  (  queryBass, (SoundStreamID /*id*/, float &)                                 )
00102     IF_SENDER_FINE  (  queryBalance, (SoundStreamID /*id*/, float &)                              )
00103     IF_SENDER_FINE  (  querySignalQuality, (SoundStreamID /*id*/, float &)                        )
00104     IF_SENDER_FINE  (  querySignalMinQuality, (SoundStreamID /*id*/, float &)                     )
00105     IF_SENDER_FINE  (  queryHasGoodQuality, (SoundStreamID /*id*/, bool &)                        )
00106     IF_SENDER_FINE  (  queryIsStereo, (SoundStreamID /*id*/, bool &)                              )
00107     IF_SENDER_FINE  (  queryIsMuted, (SoundStreamID /*id*/, bool &)                               )
00108 
00109 
00110     // sendPreparePlayback/sendPrepareCapture don't make sense for multiple receivers
00111     IF_SENDER_FINE  (  sendReleasePlayback, (SoundStreamID id)                                 )
00112     IF_SENDER_FINE  (  sendReleaseCapture,  (SoundStreamID id)                                 )
00113 
00114     IF_SENDER_FINE  (  sendStartPlayback, (SoundStreamID id)                                   )
00115     IF_SENDER_FINE  (  sendPausePlayback, (SoundStreamID id)                                   )
00116     IF_SENDER_FINE  (  sendStopPlayback, (SoundStreamID id)                                    )
00117     IF_SENDER_FINE  (  queryIsPlaybackRunning, (SoundStreamID id, bool &)                      )
00118 
00119 //    IF_SENDER_FINE  (  sendStartCapture, (SoundStreamID id)                                    )
00120     IF_SENDER_FINE  (  sendStartCaptureWithFormat, (SoundStreamID id,
00121                                    const SoundFormat &proposed_format,
00122                                    SoundFormat       &real_format,
00123                                    bool force_format = false)                                   )
00124     IF_SENDER_FINE  (  sendStopCapture, (SoundStreamID id)                                      )
00125     IF_SENDER_FINE  (  queryIsCaptureRunning, (SoundStreamID id, bool &running, SoundFormat &sf))
00126 
00127     // we need extra recording, in order to distinguish between plain capturing
00128     // (making sound data available to kradio) and writing a stream to disk  or sth similar
00129     IF_SENDER_FINE  (  sendStartRecording, (SoundStreamID id)                                  )
00130     IF_SENDER_FINE  (  sendStartRecordingWithFormat, (SoundStreamID id,
00131                                    const SoundFormat &proposed_format,
00132                                    SoundFormat       &real_format)                                )
00133     IF_SENDER_FINE  (  sendStopRecording, (SoundStreamID id)                                      )
00134     IF_SENDER_FINE  (  queryIsRecordingRunning, (SoundStreamID id, bool &running, SoundFormat &sf))
00135 
00136     IF_SENDER_FINE  (  querySoundStreamDescription, (SoundStreamID id, QString &descr)         )
00137     IF_SENDER_FINE  (  querySoundStreamRadioStation, (SoundStreamID id, const RadioStation *&rs))
00138     IF_SENDER_FINE  (  queryEnumerateSoundStreams, (QMap<QString, SoundStreamID> &) )
00139 
00140     IF_SENDER_FINE  (  notifySoundStreamCreated, (SoundStreamID id)                            )
00141     IF_SENDER_FINE  (  notifySoundStreamClosed, (SoundStreamID id)                             )
00142     IF_SENDER_FINE  (  notifySoundStreamRedirected, (SoundStreamID oldID, SoundStreamID newID)    )
00143 
00144     // e.g description or whatever changed
00145     IF_SENDER_FINE  (  notifySoundStreamChanged, (SoundStreamID id)                            )
00146 
00147     IF_SENDER_FINE  (  notifySoundStreamData, (SoundStreamID /*id*/, const SoundFormat &, const char */*data*/, size_t /*size*/, size_t &/*consumed_size*/, const SoundMetaData &/*md*/) )
00148     IF_SENDER_FINE  (  notifyReadyForPlaybackData, (SoundStreamID /*id*/, size_t /*size*/)           )
00149 };
00150 
00151 
00153 
00154 INTERFACE(ISoundStreamClient, ISoundStreamServer)
00155 {
00156 public:
00157     ISoundStreamClient();
00158     virtual ~ISoundStreamClient();
00159 
00160     cmplInterface *getSoundStreamServer() const { return m_Server; }
00161 
00162 
00163      virtual void noticeConnectedSoundClient(thisInterface *i, bool valid);
00164      virtual void noticeDisconnectedSoundClient(thisInterface *i, bool valid);
00165 
00166      virtual void noticeConnectedI(cmplInterface *i, bool valid);
00167      virtual void noticeDisconnectedI(cmplInterface *i, bool valid);
00168 
00169 // some rarely implemented functions are not pure virtual for convenience
00170 
00171 // direct playback / capture device functions
00172 
00173 RECEIVERS:
00174     IF_RECEIVER_EMPTY( preparePlayback(SoundStreamID /*id*/, const QString &/*channel*/, bool /*active_mode*/, bool /*start_immediately = false*/)   )
00175     IF_RECEIVER_EMPTY( prepareCapture(SoundStreamID /*id*/, const QString &/*channel*/)                                                          )
00176     IF_RECEIVER_EMPTY( releasePlayback(SoundStreamID /*id*/)   )
00177     IF_RECEIVER_EMPTY( releaseCapture(SoundStreamID /*id*/)    )
00178 
00179 ANSWERS:
00180     virtual bool supportsPlayback() const  { return false; }
00181     virtual bool supportsCapture()  const  { return false; }
00182 
00183     virtual const QString &getSoundStreamClientID() const;
00184     virtual       QString  getSoundStreamClientDescription() const { return QString::null; }
00185 
00186     virtual QMap<QString, ISoundStreamClient *> getPlaybackClients() const;
00187     virtual QMap<QString, QString>              getPlaybackClientDescriptions() const;
00188     virtual QMap<QString, ISoundStreamClient *> getCaptureClients() const;
00189     virtual QMap<QString, QString>              getCaptureClientDescriptions() const;
00190     virtual ISoundStreamClient                 *getSoundStreamClientWithID(const QString &id) const;
00191 
00192 // device mixer functions
00193 
00194 QUERIES:
00195     IF_QUERY ( QPtrList<ISoundStreamClient>   queryPlaybackMixers()     );
00196     IF_QUERY ( QPtrList<ISoundStreamClient>   queryCaptureMixers()      );
00197 
00198 
00199 ANSWERS:
00200     virtual const QStringList &getPlaybackChannels() const;
00201     virtual const QStringList &getCaptureChannels()  const;
00202 
00203 RECEIVERS:
00204     IF_RECEIVER_EMPTY(  noticePlaybackChannelsChanged(const QString & /*client_id*/, const QStringList &/*channels*/) );
00205     IF_RECEIVER_EMPTY(  noticeCaptureChannelsChanged (const QString & /*client_id*/, const QStringList &/*channels*/) );
00206 
00207 
00208 RECEIVERS:
00209     IF_RECEIVER_EMPTY(  setPlaybackVolume(SoundStreamID /*id*/, float /*volume*/)                    )
00210     IF_RECEIVER_EMPTY(  setCaptureVolume(SoundStreamID /*id*/,  float /*volume*/)                    )
00211     IF_RECEIVER_EMPTY(  getPlaybackVolume(SoundStreamID /*id*/, float &/*volume*/) const             )
00212     IF_RECEIVER_EMPTY(  getCaptureVolume(SoundStreamID /*id*/,  float &/*volume*/) const             )
00213     IF_RECEIVER_EMPTY(  noticePlaybackVolumeChanged(SoundStreamID /*id*/, float /*volume*/)          )
00214     IF_RECEIVER_EMPTY(  noticeCaptureVolumeChanged(SoundStreamID /*id*/, float /*volume*/)           )
00215 
00216     IF_RECEIVER_EMPTY(  setTreble (SoundStreamID /*id*/, float /*v*/)                                )
00217     IF_RECEIVER_EMPTY(  setBass   (SoundStreamID /*id*/, float /*v*/)                                )
00218     IF_RECEIVER_EMPTY(  setBalance (SoundStreamID /*id*/, float /*v*/)                               )
00219     IF_RECEIVER_EMPTY(  mute (SoundStreamID /*id*/, bool /*mute*/)                                   )
00220     IF_RECEIVER_EMPTY(  unmute (SoundStreamID /*id*/, bool /*unmute*/)                               )
00221     IF_RECEIVER_EMPTY(  setSignalMinQuality(SoundStreamID /*id*/, float /*q*/)                       )
00222     IF_RECEIVER_EMPTY(  setStereo(SoundStreamID /*id*/, bool /*s*/)                                  )
00223 
00224     IF_RECEIVER_EMPTY(  noticeTrebleChanged(SoundStreamID /*id*/, float /*v*/)                       )
00225     IF_RECEIVER_EMPTY(  noticeBassChanged(SoundStreamID /*id*/, float /*v*/)                         )
00226     IF_RECEIVER_EMPTY(  noticeBalanceChanged(SoundStreamID /*id*/, float /*v*/)                      )
00227     IF_RECEIVER_EMPTY(  noticeSignalQualityChanged(SoundStreamID /*id*/, float /*q*/)                )
00228     IF_RECEIVER_EMPTY(  noticeSignalQualityChanged(SoundStreamID /*id*/, bool /*good*/)              )
00229     IF_RECEIVER_EMPTY(  noticeSignalMinQualityChanged(SoundStreamID /*id*/, float /*q*/)             )
00230     IF_RECEIVER_EMPTY(  noticeStereoChanged(SoundStreamID /*id*/, bool  /*s*/)                       )
00231     IF_RECEIVER_EMPTY(  noticeMuted(SoundStreamID /*id*/, bool /*m*/)                                )
00232 
00233     IF_RECEIVER_EMPTY(  getTreble (SoundStreamID /*id*/, float &/*v*/) const                         )
00234     IF_RECEIVER_EMPTY(  getBass   (SoundStreamID /*id*/, float &/*v*/) const                         )
00235     IF_RECEIVER_EMPTY(  getBalance(SoundStreamID /*id*/, float &/*v*/) const                         )
00236     IF_RECEIVER_EMPTY(  isMuted(SoundStreamID /*id*/, bool &/*m*/) const                             )
00237     IF_RECEIVER_EMPTY(  getSignalQuality(SoundStreamID /*id*/, float &/*q*/) const                   )
00238     IF_RECEIVER_EMPTY(  getSignalMinQuality(SoundStreamID /*id*/, float &/*q*/) const                )
00239     IF_RECEIVER_EMPTY(  hasGoodQuality(SoundStreamID /*id*/, bool &/*good*/) const                   )
00240     IF_RECEIVER_EMPTY(  isStereo(SoundStreamID /*id*/, bool &/*s*/) const                            )
00241 
00242 // generic stream handling (broadcasts)
00243 
00244 RECEIVERS:
00245     IF_RECEIVER_EMPTY(  startPlayback(SoundStreamID /*id*/)                                           )
00246     IF_RECEIVER_EMPTY(  pausePlayback(SoundStreamID /*id*/)                                           )
00247     IF_RECEIVER_EMPTY(  stopPlayback(SoundStreamID /*id*/)                                            )
00248     IF_RECEIVER_EMPTY(  isPlaybackRunning(SoundStreamID /*id*/, bool &) const                         )
00249 
00250 //    IF_RECEIVER_EMPTY(  startCapture(SoundStreamID /*id*/)                                            )
00251     IF_RECEIVER_EMPTY(  startCaptureWithFormat(SoundStreamID /*id*/,
00252                                      const SoundFormat &/*proposed_format*/,
00253                                      SoundFormat       &/*real_format*/,
00254                                      bool               /*force_format*/ = false)                       )
00255     IF_RECEIVER_EMPTY(  stopCapture(SoundStreamID /*id*/)                                               )
00256     IF_RECEIVER_EMPTY(  isCaptureRunning(SoundStreamID /*id*/, bool &/*running*/, SoundFormat &/*sf*/) const    )
00257 
00258     IF_RECEIVER_EMPTY(  startRecording(SoundStreamID /*id*/)                                            )
00259     IF_RECEIVER_EMPTY(  startRecordingWithFormat(SoundStreamID /*id*/,
00260                                      const SoundFormat &/*proposed_format*/,
00261                                      SoundFormat       &/*real_format*/)                                )
00262     IF_RECEIVER_EMPTY(  stopRecording(SoundStreamID /*id*/)                                             )
00263     IF_RECEIVER_EMPTY(  isRecordingRunning(SoundStreamID /*id*/, bool &/*running*/, SoundFormat &/*sf*/) const  )
00264 
00265     IF_RECEIVER_EMPTY(  getSoundStreamDescription(SoundStreamID /*id*/, QString &/*descr*/) const     )
00266     IF_RECEIVER_EMPTY(  getSoundStreamRadioStation(SoundStreamID /*id*/, const RadioStation *&/*rs*/) const  )
00267 
00268     IF_RECEIVER_EMPTY(  enumerateSoundStreams(QMap<QString, SoundStreamID> &/*list*/) const                   )
00269 
00270     IF_RECEIVER_EMPTY(  noticeSoundStreamCreated(SoundStreamID /*id*/)                                )
00271     IF_RECEIVER_EMPTY(  noticeSoundStreamClosed(SoundStreamID /*id*/)                                 )
00272     IF_RECEIVER_EMPTY(  noticeSoundStreamRedirected(SoundStreamID /*oldID*/, SoundStreamID /*newID*/)    )
00273 
00274     // e.g description or whatever changed
00275     IF_RECEIVER_EMPTY(  noticeSoundStreamChanged(SoundStreamID /*id*/)                                    )
00276 
00277     IF_RECEIVER_EMPTY(  noticeSoundStreamData(SoundStreamID /*id*/, const SoundFormat &, const char */*data*/, size_t /*size*/, size_t &/*consumed_size*/, const SoundMetaData &/*md*/))
00278     IF_RECEIVER_EMPTY(  noticeReadyForPlaybackData(SoundStreamID /*id*/, size_t /*size*/)           )
00279 
00280 SENDERS:
00281     CALL_SNDSTR_SERVER  (  notifyPlaybackChannelsChanged, (const QString &client_id, const QStringList &map), (client_id, map)                     )
00282     CALL_SNDSTR_SERVER  (  notifyCaptureChannelsChanged,  (const QString &client_id, const QStringList &map), (client_id, map)                     )
00283 
00284     CALL_SNDSTR_SERVER  (  sendPlaybackVolume, (SoundStreamID id,  float volume), (id, volume)                  )
00285     CALL_SNDSTR_SERVER  (  sendCaptureVolume, (SoundStreamID id,   float volume), (id, volume)                  )
00286     CALL_SNDSTR_SERVER  (  queryPlaybackVolume, (SoundStreamID id, float &volume), (id, volume)                 )
00287     CALL_SNDSTR_SERVER  (  queryCaptureVolume, (SoundStreamID id,  float &volume), (id, volume)                 )
00288     CALL_SNDSTR_SERVER  (  notifyPlaybackVolumeChanged, (SoundStreamID id, float volume), (id, volume)          )
00289     CALL_SNDSTR_SERVER  (  notifyCaptureVolumeChanged, (SoundStreamID id, float volume), (id, volume)           )
00290 
00291     CALL_SNDSTR_SERVER  (  notifyTrebleChanged, (SoundStreamID id, float v), (id, v)                       )
00292     CALL_SNDSTR_SERVER  (  notifyBassChanged, (SoundStreamID id, float v), (id, v)                         )
00293     CALL_SNDSTR_SERVER  (  notifyBalanceChanged, (SoundStreamID id, float v), (id, v)                      )
00294     CALL_SNDSTR_SERVER  (  notifyMuted, (SoundStreamID id, bool m), (id, m)                                )
00295     CALL_SNDSTR_SERVER  (  notifySignalQualityChanged, (SoundStreamID id, float q), (id, q)                )
00296     CALL_SNDSTR_SERVER  (  notifySignalQualityBoolChanged, (SoundStreamID id, bool good), (id, good)           )
00297     CALL_SNDSTR_SERVER  (  notifySignalMinQualityChanged, (SoundStreamID id, float q), (id, q)             )
00298     CALL_SNDSTR_SERVER  (  notifyStereoChanged, (SoundStreamID id, bool  s), (id, s)                       )
00299 
00300     CALL_SNDSTR_SERVER  (  sendTreble  , (SoundStreamID id, float v), (id, v)                              )
00301     CALL_SNDSTR_SERVER  (  sendBass    , (SoundStreamID id, float v), (id, v)                              )
00302     CALL_SNDSTR_SERVER  (  sendBalance , (SoundStreamID id, float v), (id, v)                              )
00303     CALL_SNDSTR_SERVER  (  sendMute , (SoundStreamID id, bool mute = true), (id, mute)                            )
00304     CALL_SNDSTR_SERVER  (  sendUnmute , (SoundStreamID id, bool unmute = true), (id, unmute)                      )
00305     CALL_SNDSTR_SERVER  (  sendSignalMinQuality , (SoundStreamID id, float q), (id, q)                     )
00306     CALL_SNDSTR_SERVER  (  sendStereo, (SoundStreamID id, bool s), (id, s)                                 )
00307 
00308     CALL_SNDSTR_SERVER  (  queryTreble, (SoundStreamID id, float &v), (id, v)                               )
00309     CALL_SNDSTR_SERVER  (  queryBass, (SoundStreamID id, float &v), (id, v)                                 )
00310     CALL_SNDSTR_SERVER  (  queryBalance, (SoundStreamID id, float &v), (id, v)                              )
00311     CALL_SNDSTR_SERVER  (  querySignalQuality, (SoundStreamID id, float &v), (id, v)                        )
00312     CALL_SNDSTR_SERVER  (  querySignalMinQuality, (SoundStreamID id, float &v), (id, v)                     )
00313     CALL_SNDSTR_SERVER  (  queryHasGoodQuality, (SoundStreamID id, bool &v), (id, v)                        )
00314     CALL_SNDSTR_SERVER  (  queryIsStereo, (SoundStreamID id, bool &v), (id, v)                              )
00315     CALL_SNDSTR_SERVER  (  queryIsMuted, (SoundStreamID id, bool &v), (id, v)                               )
00316 
00317 
00318     // sendPreparePlayback/sendPrepareCapture don't make sense for multiple receivers
00319     CALL_SNDSTR_SERVER  (  sendReleasePlayback, (SoundStreamID id), (id)                                    )
00320     CALL_SNDSTR_SERVER  (  sendReleaseCapture,  (SoundStreamID id), (id)                                    )
00321 
00322     CALL_SNDSTR_SERVER  (  sendStartPlayback, (SoundStreamID id), (id)                                      )
00323     CALL_SNDSTR_SERVER  (  sendPausePlayback, (SoundStreamID id), (id)                                      )
00324     CALL_SNDSTR_SERVER  (  sendStopPlayback, (SoundStreamID id), (id)                                       )
00325     CALL_SNDSTR_SERVER  (  queryIsPlaybackRunning, (SoundStreamID id, bool &b), (id, b)                     )
00326 
00327 //    CALL_SNDSTR_SERVER  (  sendStartCapture, (SoundStreamID id), (id)                                       )
00328     CALL_SNDSTR_SERVER  (  sendStartCaptureWithFormat, (SoundStreamID id,
00329                                    const SoundFormat &proposed_format,
00330                                    SoundFormat       &real_format,
00331                                    bool               force_format = false), (id, proposed_format, real_format, force_format)   )
00332     CALL_SNDSTR_SERVER  (  sendStopCapture, (SoundStreamID id), (id)                                                            )
00333     CALL_SNDSTR_SERVER  (  queryIsCaptureRunning, (SoundStreamID id, bool &b, SoundFormat &sf), (id, b, sf)                     )
00334 
00335     CALL_SNDSTR_SERVER  (  sendStartRecording, (SoundStreamID id), (id)                                                         )
00336     CALL_SNDSTR_SERVER  (  sendStartRecordingWithFormat, (SoundStreamID id,
00337                                    const SoundFormat &proposed_format,
00338                                    SoundFormat       &real_format), (id, proposed_format, real_format)   )
00339     CALL_SNDSTR_SERVER  (  sendStopRecording, (SoundStreamID id), (id)                                     )
00340     CALL_SNDSTR_SERVER  (  queryIsRecordingRunning, (SoundStreamID id, bool &b, SoundFormat &sf), (id, b, sf)                     )
00341 
00342     CALL_SNDSTR_SERVER  (  querySoundStreamDescription, (SoundStreamID id, QString &descr), (id, descr)  )
00343     CALL_SNDSTR_SERVER  (  querySoundStreamRadioStation,(SoundStreamID id, const RadioStation *&rs), (id, rs)  )
00344 
00345     CALL_SNDSTR_SERVER  (  queryEnumerateSoundStreams, (QMap<QString, SoundStreamID> &list), (list)              )
00346 
00347     CALL_SNDSTR_SERVER  (  notifySoundStreamCreated, (SoundStreamID id), (id)                            )
00348     CALL_SNDSTR_SERVER  (  notifySoundStreamClosed, (SoundStreamID id), (id)                             )
00349     CALL_SNDSTR_SERVER  (  notifySoundStreamRedirected, (SoundStreamID oldID, SoundStreamID newID), (oldID, newID)    )
00350 
00351     // e.g description or whatever changed
00352     CALL_SNDSTR_SERVER  (  notifySoundStreamChanged, (SoundStreamID id), (id)                             )
00353 
00354     CALL_SNDSTR_SERVER  (  notifySoundStreamData, (SoundStreamID id, const SoundFormat &f, const char *data, size_t size, size_t consumed_size, const SoundMetaData &md), (id, f, data, size, consumed_size, md) )
00355     CALL_SNDSTR_SERVER  (  notifyReadyForPlaybackData, (SoundStreamID id, size_t size), (id, size)           )
00356 
00357 protected:
00358 
00359     SoundStreamID  createNewSoundStream(bool notify = true) const;
00360     SoundStreamID  createNewSoundStream(SoundStreamID old_id, bool notify = true) const;
00361     void           closeSoundStream(SoundStreamID id, bool notify = true);
00362 
00363     static QString createNewSoundStreamClientID();
00364     void           setSoundStreamClientID(const QString &s);
00365 
00366     QString        m_SoundStreamClientID;
00367 
00368     cmplInterface  *m_Server;
00369 };
00370 
00371 
00372 #endif
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on 28 Jan 2011 for kradio by  doxygen 1.6.1