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
|
/***************************************************************************
PlayBackPlugin.h - plugin for playback and playback configuration
-------------------
begin : Sun May 13 2001
copyright : (C) 2001 by Thomas Eschenbacher
email : Thomas.Eschenbacher@gmx.de
***************************************************************************/
/***************************************************************************
* *
* 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. *
* *
***************************************************************************/
#ifndef PLAY_BACK_PLUGIN_H
#define PLAY_BACK_PLUGIN_H
#include "config.h"
#include <QMutex>
#include <QPointer>
#include <QString>
#include "libkwave/PlayBackParam.h"
#include "libkwave/PlaybackDeviceFactory.h"
#include "libkwave/Plugin.h"
#include "libkwave/Sample.h"
namespace Kwave
{
class PlaybackController;
class PlayBackDevice;
class PlayBackDialog;
class SampleSink;
class PlayBackPlugin :public Kwave::Plugin,
public Kwave::PlaybackDeviceFactory
{
Q_OBJECT
public:
/**
* Constructor
* @param parent reference to our plugin manager
* @param args argument list [unused]
*/
PlayBackPlugin(QObject *parent, const QVariantList &args);
/** Destructor */
~PlayBackPlugin() override;
/**
* Gets called when the plugin is first loaded and connects itself
* to the playback controller and the current signal.
*/
void load(QStringList ¶ms) override;
/**
* Gets called before the plugin is unloaded.
*/
void unload() override;
/** @see Kwave::Plugin::setup() */
virtual QStringList *setup(QStringList &previous_params)
override;
/**
* Starts a playback test sequence
* @param params list of strings with parameters (unused)
*/
void run(QStringList params) override;
signals:
/** emits the progress of the playback test, from thread context */
void sigTestProgress(int percent);
public slots:
/**
* Plays a sample sound for testing the playback
*/
void testPlayBack();
protected:
/**
* Interpretes a given parameter list and sets up internal
* parameters accordingly.
* @param params reference to a QStringList with parameters
* @return the detected playback parameters
*/
Kwave::PlayBackParam interpreteParameters(QStringList ¶ms);
/**
* Create a playback device matching the given playback method.
* @param method a playback_method_t (aRts, ALSA, OSS...)
* @return a new PlayBackDevice or 0 if failed
*/
virtual Kwave::PlayBackDevice *createDevice(
Kwave::playback_method_t method) override;
/**
* Returns a list of supported playback methods.
* @return list of all supported playback methods, should not contain
* "any" or "invalid"
*/
virtual QList<Kwave::playback_method_t> supportedMethods()
override;
private:
/** dialog for the playback setup */
QPointer<Kwave::PlayBackDialog> m_dialog;
/** reference to the playback controller */
Kwave::PlaybackController &m_playback_controller;
/** sample sink, for playback test */
Kwave::SampleSink *m_playback_sink;
};
}
#endif /* PLAY_BACK_PLUGIN_H */
//***************************************************************************
//***************************************************************************
|