summaryrefslogtreecommitdiffstats
path: root/tderadio3/plugins/streaming/streaming-configuration.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tderadio3/plugins/streaming/streaming-configuration.cpp')
-rw-r--r--tderadio3/plugins/streaming/streaming-configuration.cpp567
1 files changed, 0 insertions, 567 deletions
diff --git a/tderadio3/plugins/streaming/streaming-configuration.cpp b/tderadio3/plugins/streaming/streaming-configuration.cpp
deleted file mode 100644
index ab57bea..0000000
--- a/tderadio3/plugins/streaming/streaming-configuration.cpp
+++ /dev/null
@@ -1,567 +0,0 @@
-/***************************************************************************
- streaming-configuration.cpp - description
- -------------------
- begin : Thu Sep 30 2004
- copyright : (C) 2004 by Martin Witte
- ***************************************************************************/
-
-/***************************************************************************
- * *
- * 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 <tqcheckbox.h>
-
-#include <kurlrequester.h>
-#include <knuminput.h>
-#include <tdelistview.h>
-#include <kcombobox.h>
-#include <knuminput.h>
-
-#include <tdelocale.h>
-
-#include "streaming-configuration.h"
-#include "streaming.h"
-
-StreamingConfiguration::StreamingConfiguration (TQWidget *parent, StreamingDevice *streamer)
- : StreamingConfigurationUI(parent),
- m_ignore_updates(false),
- m_dirty(true),
- m_StreamingDevice(streamer)
-{
- connect(m_pbNewPlaybackURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotNewPlaybackChannel()));
- connect(m_pbDeletePlaybackURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDeletePlaybackChannel()));
- connect(m_pbUpPlaybackURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotUpPlaybackChannel()));
- connect(m_pbDownPlaybackURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDownPlaybackChannel()));
- connect(m_ListPlaybackURLs, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotPlaybackSelectionChanged()));
- connect(m_ListPlaybackURLs, TQT_SIGNAL(itemRenamed(TQListViewItem *)), this, TQT_SLOT(slotSetDirty()));
-
- connect(m_pbNewCaptureURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotNewCaptureChannel()));
- connect(m_pbDeleteCaptureURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDeleteCaptureChannel()));
- connect(m_pbUpCaptureURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotUpCaptureChannel()));
- connect(m_pbDownCaptureURL, TQT_SIGNAL(clicked()), this, TQT_SLOT(slotDownCaptureChannel()));
- connect(m_ListCaptureURLs, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT(slotCaptureSelectionChanged()));
- connect(m_ListCaptureURLs, TQT_SIGNAL(itemRenamed(TQListViewItem *)), this, TQT_SLOT(slotSetDirty()));
-
- connect(m_cbBits, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_cbChannels, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_cbEndianess, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_cbFormat, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_cbRate, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_cbSign, TQT_SIGNAL(activated(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
- connect(m_sbBufferSize, TQT_SIGNAL(valueChanged(int)), this, TQT_SLOT(slotUpdateSoundFormat()));
-
- m_ListPlaybackURLs->setAllColumnsShowFocus(true);
- m_ListPlaybackURLs->setSorting(-1);
- m_ListCaptureURLs->setAllColumnsShowFocus(true);
- m_ListCaptureURLs->setSorting(-1);
-
- slotCancel();
-}
-
-
-StreamingConfiguration::~StreamingConfiguration ()
-{
-}
-
-
-void StreamingConfiguration::slotOK()
-{
- if (!m_dirty)
- return;
-
- m_StreamingDevice->resetPlaybackStreams(false);
- m_StreamingDevice->resetCaptureStreams(false);
-
- TQListViewItem *item = m_ListPlaybackURLs->firstChild();
- for (int i = 0; item; ++i, item = item->nextSibling()) {
- m_StreamingDevice->addPlaybackStream(item->text(1), m_PlaybackSoundFormats[i], m_PlaybackBufferSizes[i], !item->nextSibling());
- }
-
- item = m_ListCaptureURLs->firstChild();
- for (int i = 0; item; ++i, item = item->nextSibling()) {
- m_StreamingDevice->addCaptureStream(item->text(1), m_CaptureSoundFormats[i], m_CaptureBufferSizes[i], !item->nextSibling());
- }
-
- m_dirty = false;
-}
-
-
-void StreamingConfiguration::slotCancel()
-{
- if (!m_dirty)
- return;
-
- const TQStringList &playbackChannels = m_StreamingDevice->getPlaybackChannels();
- const TQStringList &captureChannels = m_StreamingDevice->getCaptureChannels();
-
- m_ListPlaybackURLs->clear();
- m_PlaybackBufferSizes.clear();
- m_PlaybackSoundFormats.clear();
-
- for (unsigned int i = 0; i < playbackChannels.size(); ++i) {
- SoundFormat sf;
- size_t buffer_size;
- TQString url;
- m_StreamingDevice->getPlaybackStreamOptions(playbackChannels[i], url, sf, buffer_size);
- m_PlaybackSoundFormats.append(sf);
- m_PlaybackBufferSizes.append(buffer_size);
-
- TQListViewItem *item = new TQListViewItem(m_ListPlaybackURLs, m_ListPlaybackURLs->lastChild());
- item->setText(0, TQString::number(m_ListPlaybackURLs->childCount()));
- item->setText(1, url);
- item->setRenameEnabled(1, true);
- }
-
- m_ListCaptureURLs->clear();
- m_CaptureBufferSizes.clear();
- m_CaptureSoundFormats.clear();
-
- for (unsigned int i = 0; i < captureChannels.size(); ++i) {
- SoundFormat sf;
- size_t buffer_size;
- TQString url;
- m_StreamingDevice->getCaptureStreamOptions(captureChannels[i], url, sf, buffer_size);
- m_CaptureSoundFormats.append(sf);
- m_CaptureBufferSizes.append(buffer_size);
-
- TQListViewItem *item = new TQListViewItem(m_ListCaptureURLs, m_ListCaptureURLs->lastChild());
- item->setText(0, TQString::number(m_ListCaptureURLs->childCount()));
- item->setText(1, url);
- item->setRenameEnabled(1, true);
- }
- slotPlaybackSelectionChanged();
- slotCaptureSelectionChanged();
-
- m_dirty = false;
-}
-
-void StreamingConfiguration::slotUpdateConfig()
-{
- slotSetDirty();
- slotCancel();
-}
-
-void StreamingConfiguration::slotNewPlaybackChannel()
-{
- slotSetDirty();
- TQListViewItem *item = new TQListViewItem(m_ListPlaybackURLs, m_ListPlaybackURLs->lastChild());
- item->setText(0, TQString::number(m_ListPlaybackURLs->childCount()));
- item->setText(1, i18n("new channel"));
- item->setRenameEnabled(1,true);
- item->startRename(1);
-
- m_PlaybackSoundFormats.append(SoundFormat());
- m_PlaybackBufferSizes.append(64*1024);
- int n = m_PlaybackSoundFormats.size();
- setStreamOptions(m_PlaybackSoundFormats[n-1], m_PlaybackBufferSizes[n-1]);
-}
-
-
-void StreamingConfiguration::slotDeletePlaybackChannel()
-{
- slotSetDirty();
- TQListViewItem *item = m_ListPlaybackURLs->selectedItem();
- if (item) {
- int idx = 0;
- TQListViewItem *i = m_ListPlaybackURLs->firstChild(),
- *prev = NULL,
- *next = item->nextSibling();
- for (; i && i != item; i = i->nextSibling()) {
- prev = i;
- ++idx;
- }
- if(next) {
- m_ListPlaybackURLs->setSelected(next, true);
- } else if (prev){
- m_ListPlaybackURLs->setSelected(prev, true);
- }
- int x = item->text(0).toUInt();
- for (i = next; i; i = i->nextSibling(), ++x) {
- i->setText(0, TQString::number(x));
- }
- m_ListPlaybackURLs->takeItem(item);
- delete item;
-
- int n = m_PlaybackSoundFormats.size();
- m_PlaybackSoundFormats.remove(m_PlaybackSoundFormats.at(idx));
- m_PlaybackBufferSizes .remove(m_PlaybackBufferSizes.at(idx));
- idx = idx < n - 1 ? idx : n - 1;
- setStreamOptions( m_PlaybackSoundFormats[idx], m_PlaybackBufferSizes[idx]);
- slotPlaybackSelectionChanged();
- }
-}
-
-
-void StreamingConfiguration::slotUpPlaybackChannel()
-{
- slotSetDirty();
- TQListViewItem *prev = NULL;
- TQListViewItem *i = m_ListPlaybackURLs->firstChild();
- TQListViewItem *item = m_ListPlaybackURLs->selectedItem();
- int idx = 0;
- for (; i && i != item; i = i->nextSibling(), ++idx) {
- prev = i;
- }
- if (prev && item) {
- TQString s = prev->text(1);
- prev->setText(1, item->text(1));
- item->setText(1, s);
- SoundFormat sf = m_PlaybackSoundFormats[idx];
- m_PlaybackSoundFormats[idx] = m_PlaybackSoundFormats[idx-1];
- m_PlaybackSoundFormats[idx-1] = sf;
- size_t size = m_PlaybackBufferSizes[idx];
- m_PlaybackBufferSizes[idx] = m_PlaybackBufferSizes[idx-1];
- m_PlaybackBufferSizes[idx-1] = size;
- m_ListPlaybackURLs->setSelected(prev, true);
- }
- m_ListPlaybackURLs->ensureItemVisible(prev);
-}
-
-
-void StreamingConfiguration::slotDownPlaybackChannel()
-{
- slotSetDirty();
- TQListViewItem *item = m_ListPlaybackURLs->selectedItem();
- TQListViewItem *next = item ? item->nextSibling() : NULL;
- TQListViewItem *i = m_ListPlaybackURLs->firstChild();
- int idx = 0;
- for (; i && i != item; i = i->nextSibling()) {
- ++idx;
- }
- if (next && item) {
- TQString s = next->text(1);
- next->setText(1, item->text(1));
- item->setText(1, s);
- SoundFormat sf = m_PlaybackSoundFormats[idx];
- m_PlaybackSoundFormats[idx] = m_PlaybackSoundFormats[idx+1];
- m_PlaybackSoundFormats[idx+1] = sf;
- size_t size = m_PlaybackBufferSizes[idx];
- m_PlaybackBufferSizes[idx] = m_PlaybackBufferSizes[idx+1];
- m_PlaybackBufferSizes[idx+1] = size;
- m_ListPlaybackURLs->setSelected(next, true);
- }
- m_ListPlaybackURLs->ensureItemVisible(next);
-}
-
-
-
-void StreamingConfiguration::slotNewCaptureChannel()
-{
- slotSetDirty();
- TQListViewItem *item = new TQListViewItem(m_ListCaptureURLs, m_ListCaptureURLs->lastChild());
- item->setText(0, TQString::number(m_ListCaptureURLs->childCount()));
- item->setText(1, i18n("new channel"));
- item->setRenameEnabled(1,true);
- item->startRename(1);
-
- m_CaptureSoundFormats.append(SoundFormat());
- m_CaptureBufferSizes.append(64*1024);
- int n = m_CaptureSoundFormats.size();
- setStreamOptions(m_CaptureSoundFormats[n-1], m_CaptureBufferSizes[n-1]);
-}
-
-
-void StreamingConfiguration::slotDeleteCaptureChannel()
-{
- slotSetDirty();
- TQListViewItem *item = m_ListCaptureURLs->selectedItem();
- if (item) {
- int idx = 0;
- TQListViewItem *i = m_ListCaptureURLs->firstChild(),
- *prev = NULL,
- *next = item->nextSibling();
- for (; i && i != item; i = i->nextSibling()) {
- prev = i;
- ++idx;
- }
- if (next) {
- m_ListCaptureURLs->setSelected(next, true);
- } else if (prev){
- m_ListCaptureURLs->setSelected(prev, true);
- }
- int x = item->text(0).toUInt();
- for (i = next; i; i = i->nextSibling(), ++x) {
- i->setText(0, TQString::number(x));
- }
- m_ListCaptureURLs->takeItem(item);
- delete item;
-
- int n = m_CaptureSoundFormats.size();
- m_CaptureSoundFormats.remove(m_CaptureSoundFormats.at(idx));
- m_CaptureBufferSizes .remove(m_CaptureBufferSizes.at(idx));
- idx = idx < n - 1 ? idx : n - 1;
- setStreamOptions( m_CaptureSoundFormats[idx], m_CaptureBufferSizes[idx]);
- slotCaptureSelectionChanged();
- }
-}
-
-
-void StreamingConfiguration::slotUpCaptureChannel()
-{
- slotSetDirty();
- TQListViewItem *prev = NULL;
- TQListViewItem *i = m_ListCaptureURLs->firstChild();
- TQListViewItem *item = m_ListCaptureURLs->selectedItem();
- int idx = 0;
- for (; i && i != item; i = i->nextSibling(), ++idx) {
- prev = i;
- }
- if (prev && item) {
- TQString s = prev->text(1);
- prev->setText(1, item->text(1));
- item->setText(1, s);
- SoundFormat sf = m_CaptureSoundFormats[idx];
- m_CaptureSoundFormats[idx] = m_CaptureSoundFormats[idx-1];
- m_CaptureSoundFormats[idx-1] = sf;
- size_t size = m_CaptureBufferSizes[idx];
- m_CaptureBufferSizes[idx] = m_CaptureBufferSizes[idx-1];
- m_CaptureBufferSizes[idx-1] = size;
- m_ListCaptureURLs->setSelected(prev, true);
- }
- m_ListCaptureURLs->ensureItemVisible(prev);
-}
-
-
-void StreamingConfiguration::slotDownCaptureChannel()
-{
- slotSetDirty();
- TQListViewItem *item = m_ListCaptureURLs->selectedItem();
- TQListViewItem *next = item ? item->nextSibling() : NULL;
- TQListViewItem *i = m_ListCaptureURLs->firstChild();
- int idx = 0;
- for (; i && i != item; i = i->nextSibling()) {
- ++idx;
- }
- if (next && item) {
- TQString s = next->text(1);
- next->setText(1, item->text(1));
- item->setText(1, s);
- SoundFormat sf = m_CaptureSoundFormats[idx];
- m_CaptureSoundFormats[idx] = m_CaptureSoundFormats[idx+1];
- m_CaptureSoundFormats[idx+1] = sf;
- size_t size = m_CaptureBufferSizes[idx];
- m_CaptureBufferSizes[idx] = m_CaptureBufferSizes[idx+1];
- m_CaptureBufferSizes[idx+1] = size;
- m_ListCaptureURLs->setSelected(next, true);
- }
- m_ListCaptureURLs->ensureItemVisible(next);
-}
-
-
-
-
-
-void StreamingConfiguration::slotPlaybackSelectionChanged()
-{
- TQListViewItem *item = m_ListPlaybackURLs->selectedItem();
- bool up_possible = false;
- bool down_possible = false;
- if (item) {
- int idx = 0;
- TQListViewItem *i = m_ListPlaybackURLs->firstChild();
- for (; i && i != item; i = i->nextSibling()) {
- ++idx;
- }
- up_possible = idx > 0;
- down_possible = idx < m_ListPlaybackURLs->childCount() - 1;
- setStreamOptions(m_PlaybackSoundFormats[idx], m_PlaybackBufferSizes[idx]);
-
- item = m_ListCaptureURLs->selectedItem();
- if (item)
- m_ListCaptureURLs->setSelected(item, false);
- }
- TQListViewItem *playback_item = m_ListPlaybackURLs->selectedItem();
- TQListViewItem *capture_item = m_ListCaptureURLs->selectedItem();
- bool e = (playback_item || capture_item);
- m_cbFormat ->setEnabled(e);
- m_cbRate ->setEnabled(e);
- m_cbBits ->setEnabled(e);
- m_cbSign ->setEnabled(e);
- m_cbChannels ->setEnabled(e);
- m_cbEndianess ->setEnabled(e);
- m_sbBufferSize->setEnabled(e);
- m_pbUpPlaybackURL ->setEnabled(up_possible);
- m_pbDownPlaybackURL->setEnabled(down_possible);
-}
-
-
-void StreamingConfiguration::slotCaptureSelectionChanged()
-{
- TQListViewItem *item = m_ListCaptureURLs->selectedItem();
- bool up_possible = false;
- bool down_possible = false;
- if (item) {
- int idx = 0;
- TQListViewItem *i = m_ListCaptureURLs->firstChild();
- for (; i && i != item; i = i->nextSibling()) {
- ++idx;
- }
- up_possible = idx > 0;
- down_possible = idx < m_ListCaptureURLs->childCount() - 1;
- setStreamOptions(m_CaptureSoundFormats[idx], m_CaptureBufferSizes[idx]);
-
- item = m_ListPlaybackURLs->selectedItem();
- if (item)
- m_ListPlaybackURLs->setSelected(item, false);
- }
- TQListViewItem *playback_item = m_ListPlaybackURLs->selectedItem();
- TQListViewItem *capture_item = m_ListCaptureURLs->selectedItem();
- bool e = (playback_item || capture_item);
- m_cbFormat ->setEnabled(e);
- m_cbRate ->setEnabled(e);
- m_cbBits ->setEnabled(e);
- m_cbSign ->setEnabled(e);
- m_cbChannels ->setEnabled(e);
- m_cbEndianess ->setEnabled(e);
- m_sbBufferSize->setEnabled(e);
- m_pbUpCaptureURL ->setEnabled(up_possible);
- m_pbDownCaptureURL->setEnabled(down_possible);
-}
-
-void StreamingConfiguration::slotSetDirty()
-{
- m_dirty = true;
-}
-
-void StreamingConfiguration::slotUpdateSoundFormat()
-{
- if (m_ignore_updates)
- return;
-
- slotSetDirty();
- TQListViewItem *playback_item = m_ListPlaybackURLs->selectedItem();
- TQListViewItem *capture_item = m_ListCaptureURLs->selectedItem();
- if (playback_item) {
- int idx = 0;
- TQListViewItem *i = m_ListPlaybackURLs->firstChild();
- for (; i && i != playback_item; i = i->nextSibling()) {
- ++idx;
- }
- getStreamOptions(m_PlaybackSoundFormats[idx], m_PlaybackBufferSizes[idx]);
- }
- else if (capture_item) {
- int idx = 0;
- TQListViewItem *i = m_ListCaptureURLs->firstChild();
- for (; i && i != capture_item; i = i->nextSibling()) {
- ++idx;
- }
- getStreamOptions(m_CaptureSoundFormats[idx], m_CaptureBufferSizes[idx]);
- }
-}
-
-
-void StreamingConfiguration::setStreamOptions(const SoundFormat &sf, int BufferSize)
-{
- m_ignore_updates = true;
-
- int idx_Format = FORMAT_RAW_IDX;
- int idx_Rate = RATE_44100_IDX;
- int idx_Bits = BITS_16_IDX;
- int idx_Sign = SIGN_SIGNED_IDX;
- int idx_Channels = CHANNELS_STEREO_IDX;
- int idx_Endianess = ENDIAN_LITTLE_IDX;
-
- if (sf.m_Encoding == "raw") {
- idx_Format = FORMAT_RAW_IDX;
- }
- else {
- // ...
- }
-
- switch(sf.m_SampleRate) {
- case 48000 : idx_Rate = RATE_48000_IDX; break;
- case 44100 : idx_Rate = RATE_44100_IDX; break;
- case 22050 : idx_Rate = RATE_22050_IDX; break;
- case 11025 : idx_Rate = RATE_11025_IDX; break;
- }
-
- switch(sf.m_SampleBits) {
- case 8 : idx_Bits = BITS_8_IDX; break;
- case 16 : idx_Bits = BITS_16_IDX; break;
- }
-
- switch(sf.m_IsSigned) {
- case true : idx_Sign = SIGN_SIGNED_IDX; break;
- case false : idx_Sign = SIGN_UNSIGNED_IDX; break;
- }
-
- switch(sf.m_Channels) {
- case 2: idx_Channels = CHANNELS_STEREO_IDX; break;
- case 1: idx_Channels = CHANNELS_MONO_IDX; break;
- }
-
- switch(sf.m_Endianess) {
- case LITTLE_ENDIAN: idx_Endianess = ENDIAN_LITTLE_IDX; break;
- case BIG_ENDIAN: idx_Endianess = ENDIAN_BIG_IDX; break;
- }
-
- m_cbFormat ->setCurrentItem(idx_Format);
- m_cbRate ->setCurrentItem(idx_Rate);
- m_cbBits ->setCurrentItem(idx_Bits);
- m_cbSign ->setCurrentItem(idx_Sign);
- m_cbChannels ->setCurrentItem(idx_Channels);
- m_cbEndianess ->setCurrentItem(idx_Endianess);
- m_sbBufferSize->setValue(BufferSize / 1024);
-
- m_ignore_updates = false;
-}
-
-
-void StreamingConfiguration::getStreamOptions(SoundFormat &sf, int &BufferSize) const
-{
- int idx_Format = m_cbFormat ->currentItem();
- int idx_Rate = m_cbRate ->currentItem();
- int idx_Bits = m_cbBits ->currentItem();
- int idx_Sign = m_cbSign ->currentItem();
- int idx_Channels = m_cbChannels ->currentItem();
- int idx_Endianess = m_cbEndianess ->currentItem();
-
- BufferSize = m_sbBufferSize->value() * 1024;
-
- if (idx_Format == FORMAT_RAW_IDX) {
- sf.m_Encoding = "raw";
- }
- else {
- // ...
- }
-
- switch(idx_Rate) {
- case RATE_48000_IDX : sf.m_SampleRate = 48000; break;
- case RATE_44100_IDX : sf.m_SampleRate = 44100; break;
- case RATE_22050_IDX : sf.m_SampleRate = 22050; break;
- case RATE_11025_IDX : sf.m_SampleRate = 11025; break;
- default : sf.m_SampleRate = 44100; break;
- }
-
- switch(idx_Bits) {
- case BITS_8_IDX : sf.m_SampleBits = 8; break;
- case BITS_16_IDX : sf.m_SampleBits = 16; break;
- default : sf.m_SampleBits = 16; break;
- }
-
- switch(idx_Sign) {
- case SIGN_SIGNED_IDX : sf.m_IsSigned = true; break;
- case SIGN_UNSIGNED_IDX : sf.m_IsSigned = false; break;
- default : sf.m_IsSigned = true; break;
- }
-
- switch(idx_Channels) {
- case CHANNELS_STEREO_IDX : sf.m_Channels = 2; break;
- case CHANNELS_MONO_IDX : sf.m_Channels = 1; break;
- default : sf.m_Channels = 2; break;
- }
-
- switch(idx_Endianess) {
- case ENDIAN_LITTLE_IDX : sf.m_Endianess = LITTLE_ENDIAN; break;
- case ENDIAN_BIG_IDX : sf.m_Endianess = BIG_ENDIAN; break;
- default : sf.m_Endianess = BYTE_ORDER; break;
- }
-}
-
-#include "streaming-configuration.moc"