You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
tderadio/kradio3/plugins/recording/reccfg_interfaces.cpp

152 lines
6.0 KiB

/***************************************************************************
reccfg_interfaces.cpp - description
-------------------
begin : Sun May 01 2005
copyright : (C) 2005by Martin Witte
email : witte@kawo1.rwth-aachen.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. *
* *
***************************************************************************/
#include <linux/soundcard.h>
#include "reccfg_interfaces.h"
// IRecCfg
IF_IMPL_SENDER ( IRecCfg::notifyEncoderBufferChanged (size_t BufferSize, size_t BufferCount),
noticeEncoderBufferChanged(BufferSize, BufferCount)
);
IF_IMPL_SENDER ( IRecCfg::notifySoundFormatChanged(const SoundFormat &sf),
noticeSoundFormatChanged(sf)
);
IF_IMPL_SENDER ( IRecCfg::notifyMP3QualityChanged(int q),
noticeMP3QualityChanged(q)
);
IF_IMPL_SENDER ( IRecCfg::notifyOggQualityChanged(float q),
noticeOggQualityChanged(q)
);
IF_IMPL_SENDER ( IRecCfg::notifyRecordingDirectoryChanged(const TQString &dir),
noticeRecordingDirectoryChanged(dir)
);
IF_IMPL_SENDER ( IRecCfg::notifyOutputFormatChanged(RecordingConfig::OutputFormat of),
noticeOutputFormatChanged(of)
);
IF_IMPL_SENDER ( IRecCfg::notifyPreRecordingChanged(bool enable, int seconds),
noticePreRecordingChanged(enable, seconds)
);
IF_IMPL_SENDER ( IRecCfg::notifyRecordingConfigChanged (const RecordingConfig &cfg),
noticeRecordingConfigChanged(cfg)
);
// IRecCfgClient
IF_IMPL_SENDER ( IRecCfgClient::sendEncoderBuffer (size_t BufferSize, size_t BufferCount),
setEncoderBuffer(BufferSize, BufferCount)
);
IF_IMPL_SENDER ( IRecCfgClient::sendSoundFormat(const SoundFormat &sf),
setSoundFormat(sf)
);
IF_IMPL_SENDER ( IRecCfgClient::sendMP3Quality(int q),
setMP3Quality(q)
);
IF_IMPL_SENDER ( IRecCfgClient::sendOggQuality(float q),
setOggQuality(q)
);
IF_IMPL_SENDER ( IRecCfgClient::sendRecordingDirectory(const TQString &dir),
setRecordingDirectory(dir)
);
IF_IMPL_SENDER ( IRecCfgClient::sendOutputFormat(RecordingConfig::OutputFormat of),
setOutputFormat(of)
);
IF_IMPL_SENDER ( IRecCfgClient::sendPreRecording(bool enable, int seconds),
setPreRecording(enable, seconds)
);
IF_IMPL_SENDER ( IRecCfgClient::sendRecordingConfig(const RecordingConfig &cfg),
setRecordingConfig(cfg)
);
IF_IMPL_TQUERY ( void IRecCfgClient::queryEncoderBuffer(size_t &BufferSize, size_t &BufferCount),
getEncoderBuffer(BufferSize, BufferCount),
);
static SoundFormat defaultSoundFormat;
IF_IMPL_TQUERY ( const SoundFormat &IRecCfgClient::querySoundFormat (),
getSoundFormat(),
defaultSoundFormat
);
IF_IMPL_TQUERY ( int IRecCfgClient::queryMP3Quality (),
getMP3Quality(),
7
);
IF_IMPL_TQUERY ( float IRecCfgClient::queryOggQuality (),
getOggQuality(),
7
);
static TQString defaultRecDir("/tmp");
IF_IMPL_TQUERY ( const TQString &IRecCfgClient::queryRecordingDirectory(),
getRecordingDirectory(),
defaultRecDir
);
IF_IMPL_TQUERY ( RecordingConfig::OutputFormat IRecCfgClient::queryOutputFormat(),
getOutputFormat(),
RecordingConfig::outputWAV
);
IF_IMPL_TQUERY ( bool IRecCfgClient::queryPreRecording(int &seconds),
getPreRecording(seconds),
false
);
static RecordingConfig defaultRecConfig;
IF_IMPL_TQUERY ( const RecordingConfig &IRecCfgClient::queryRecordingConfig(),
getRecordingConfig(),
defaultRecConfig
);
void IRecCfgClient::noticeConnectedI (cmplInterface *, bool /*pointer_valid*/)
{
size_t bs = 0, bc = 0;
queryEncoderBuffer(bs, bc);
noticeEncoderBufferChanged(bs, bc);
noticeSoundFormatChanged(querySoundFormat());
noticeMP3QualityChanged (queryMP3Quality());
noticeOggQualityChanged (queryOggQuality());
noticeRecordingDirectoryChanged(queryRecordingDirectory());
noticeOutputFormatChanged(queryOutputFormat());
int s = 0;
bool e = queryPreRecording(s);
noticePreRecordingChanged(e, s);
noticeRecordingConfigChanged(queryRecordingConfig());
}
void IRecCfgClient::noticeDisconnectedI (cmplInterface *, bool /*pointer_valid*/)
{
size_t bs = 0, bc = 0;
queryEncoderBuffer(bs, bc);
noticeEncoderBufferChanged(bs, bc);
noticeSoundFormatChanged(querySoundFormat());
noticeMP3QualityChanged (queryMP3Quality());
noticeOggQualityChanged (queryOggQuality());
noticeRecordingDirectoryChanged(queryRecordingDirectory());
noticeOutputFormatChanged(queryOutputFormat());
int s = 0;
bool e = queryPreRecording(s);
noticePreRecordingChanged(e, s);
noticeRecordingConfigChanged(queryRecordingConfig());
}