mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2025-11-26 15:20:29 +01:00
2019-08-26 Fred Gleason <fredg@paravelsystems.com>
* Updated rdalsaconfig(8) to include a 'rate <sr>' line in each asound.conf(5) entry.
This commit is contained in:
@@ -18950,3 +18950,6 @@
|
|||||||
2019-08-24 Fred Gleason <fredg@paravelsystems.com>
|
2019-08-24 Fred Gleason <fredg@paravelsystems.com>
|
||||||
* Refactored rdalsaconfig(8) to use ALSA device IDs rather than
|
* Refactored rdalsaconfig(8) to use ALSA device IDs rather than
|
||||||
ordinal numbers in asound.conf(5).
|
ordinal numbers in asound.conf(5).
|
||||||
|
2019-08-26 Fred Gleason <fredg@paravelsystems.com>
|
||||||
|
* Updated rdalsaconfig(8) to include a 'rate <sr>' line in
|
||||||
|
each asound.conf(5) entry.
|
||||||
|
|||||||
@@ -28,6 +28,8 @@
|
|||||||
#include <rd.h>
|
#include <rd.h>
|
||||||
#include <rdcmd_switch.h>
|
#include <rdcmd_switch.h>
|
||||||
|
|
||||||
|
#include <rdapplication.h>
|
||||||
|
|
||||||
#include <alsaitem.h>
|
#include <alsaitem.h>
|
||||||
#include <rdalsaconfig.h>
|
#include <rdalsaconfig.h>
|
||||||
|
|
||||||
@@ -66,6 +68,8 @@ void StartDaemons()
|
|||||||
MainWidget::MainWidget(QWidget *parent)
|
MainWidget::MainWidget(QWidget *parent)
|
||||||
: QWidget(parent)
|
: QWidget(parent)
|
||||||
{
|
{
|
||||||
|
QString err_msg;
|
||||||
|
|
||||||
setWindowTitle(tr("RDAlsaConfig")+" v"+VERSION);
|
setWindowTitle(tr("RDAlsaConfig")+" v"+VERSION);
|
||||||
|
|
||||||
//
|
//
|
||||||
@@ -79,6 +83,15 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
setMinimumWidth(sizeHint().width());
|
setMinimumWidth(sizeHint().width());
|
||||||
setMinimumHeight(sizeHint().height());
|
setMinimumHeight(sizeHint().height());
|
||||||
|
|
||||||
|
//
|
||||||
|
// Open the Database
|
||||||
|
//
|
||||||
|
rda=new RDApplication("RDAlsaConfig","rdalsaconfig",RDALSACONFIG_USAGE,this);
|
||||||
|
if(!rda->open(&err_msg)) {
|
||||||
|
QMessageBox::critical(this,"RDAlsaConfig - "+tr("Error"),err_msg);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
// Generate Fonts
|
// Generate Fonts
|
||||||
//
|
//
|
||||||
@@ -121,7 +134,7 @@ MainWidget::MainWidget(QWidget *parent)
|
|||||||
//
|
//
|
||||||
// Load Available Devices and Configuration
|
// Load Available Devices and Configuration
|
||||||
//
|
//
|
||||||
alsa_system_model=new RDAlsaModel();
|
alsa_system_model=new RDAlsaModel(rda->system()->sampleRate(),this);
|
||||||
alsa_system_list->setModel(alsa_system_model);
|
alsa_system_list->setModel(alsa_system_model);
|
||||||
LoadConfig();
|
LoadConfig();
|
||||||
|
|
||||||
@@ -336,6 +349,7 @@ void MainWidget::SaveConfig() const
|
|||||||
fprintf(f," card %s\n",
|
fprintf(f," card %s\n",
|
||||||
(const char *)alsa_system_model->card(indexes.at(i))->id().toUtf8());
|
(const char *)alsa_system_model->card(indexes.at(i))->id().toUtf8());
|
||||||
fprintf(f," device %d\n",alsa_system_model->pcmNumber(indexes.at(i)));
|
fprintf(f," device %d\n",alsa_system_model->pcmNumber(indexes.at(i)));
|
||||||
|
fprintf(f," rate %u\n",rda->system()->sampleRate());
|
||||||
if(alsa_system_model->card(indexes.at(i))->id()=="Axia") {
|
if(alsa_system_model->card(indexes.at(i))->id()=="Axia") {
|
||||||
fprintf(f," channels 2\n");
|
fprintf(f," channels 2\n");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -26,9 +26,11 @@
|
|||||||
|
|
||||||
#include <rdalsamodel.h>
|
#include <rdalsamodel.h>
|
||||||
|
|
||||||
RDAlsaModel::RDAlsaModel(QObject *parent)
|
RDAlsaModel::RDAlsaModel(unsigned samprate,QObject *parent)
|
||||||
: QAbstractListModel(parent)
|
: QAbstractListModel(parent)
|
||||||
{
|
{
|
||||||
|
model_sample_rate=samprate;
|
||||||
|
|
||||||
LoadSystemConfig();
|
LoadSystemConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -45,6 +47,19 @@ int RDAlsaModel::rowCount(const QModelIndex &parent) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Qt::ItemFlags RDAlsaModel::flags(const QModelIndex &index) const
|
||||||
|
{
|
||||||
|
Qt::ItemFlags flags=QAbstractListModel::flags(index);
|
||||||
|
|
||||||
|
if((model_alsa_cards.at(model_card_index.at(index.row()))->id()=="Axia")&&
|
||||||
|
(model_sample_rate!=48000)) {
|
||||||
|
flags=flags&Qt::ItemIsEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
return flags;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
QVariant RDAlsaModel::data(const QModelIndex &index,int role) const
|
QVariant RDAlsaModel::data(const QModelIndex &index,int role) const
|
||||||
{
|
{
|
||||||
int row=index.row();
|
int row=index.row();
|
||||||
|
|||||||
@@ -36,8 +36,9 @@ class RDAlsaModel : public QAbstractListModel
|
|||||||
{
|
{
|
||||||
Q_OBJECT;
|
Q_OBJECT;
|
||||||
public:
|
public:
|
||||||
RDAlsaModel(QObject *parent=0);
|
RDAlsaModel(unsigned samprate,QObject *parent=0);
|
||||||
int rowCount(const QModelIndex &parent=QModelIndex()) const;
|
int rowCount(const QModelIndex &parent=QModelIndex()) const;
|
||||||
|
Qt::ItemFlags flags(const QModelIndex &index) const;
|
||||||
QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const;
|
QVariant data(const QModelIndex &index,int role=Qt::DisplayRole) const;
|
||||||
QVariant headerData(int section,Qt::Orientation orient,
|
QVariant headerData(int section,Qt::Orientation orient,
|
||||||
int role=Qt::DisplayRole) const;
|
int role=Qt::DisplayRole) const;
|
||||||
@@ -50,6 +51,7 @@ class RDAlsaModel : public QAbstractListModel
|
|||||||
QList<RDAlsaCard *> model_alsa_cards;
|
QList<RDAlsaCard *> model_alsa_cards;
|
||||||
QList<int> model_card_index;
|
QList<int> model_card_index;
|
||||||
QList<int> model_pcm_index;
|
QList<int> model_pcm_index;
|
||||||
|
unsigned model_sample_rate;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user