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:
Fred Gleason
2019-08-26 13:59:27 -04:00
parent 9d5cc4865c
commit c2e410f637
4 changed files with 37 additions and 3 deletions

View File

@@ -18950,3 +18950,6 @@
2019-08-24 Fred Gleason <fredg@paravelsystems.com>
* Refactored rdalsaconfig(8) to use ALSA device IDs rather than
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.

View File

@@ -28,6 +28,8 @@
#include <rd.h>
#include <rdcmd_switch.h>
#include <rdapplication.h>
#include <alsaitem.h>
#include <rdalsaconfig.h>
@@ -66,6 +68,8 @@ void StartDaemons()
MainWidget::MainWidget(QWidget *parent)
: QWidget(parent)
{
QString err_msg;
setWindowTitle(tr("RDAlsaConfig")+" v"+VERSION);
//
@@ -79,6 +83,15 @@ MainWidget::MainWidget(QWidget *parent)
setMinimumWidth(sizeHint().width());
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
//
@@ -121,7 +134,7 @@ MainWidget::MainWidget(QWidget *parent)
//
// 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);
LoadConfig();
@@ -336,6 +349,7 @@ void MainWidget::SaveConfig() const
fprintf(f," card %s\n",
(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," rate %u\n",rda->system()->sampleRate());
if(alsa_system_model->card(indexes.at(i))->id()=="Axia") {
fprintf(f," channels 2\n");
}

View File

@@ -26,9 +26,11 @@
#include <rdalsamodel.h>
RDAlsaModel::RDAlsaModel(QObject *parent)
RDAlsaModel::RDAlsaModel(unsigned samprate,QObject *parent)
: QAbstractListModel(parent)
{
model_sample_rate=samprate;
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
{
int row=index.row();

View File

@@ -36,8 +36,9 @@ class RDAlsaModel : public QAbstractListModel
{
Q_OBJECT;
public:
RDAlsaModel(QObject *parent=0);
RDAlsaModel(unsigned samprate,QObject *parent=0);
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 headerData(int section,Qt::Orientation orient,
int role=Qt::DisplayRole) const;
@@ -50,6 +51,7 @@ class RDAlsaModel : public QAbstractListModel
QList<RDAlsaCard *> model_alsa_cards;
QList<int> model_card_index;
QList<int> model_pcm_index;
unsigned model_sample_rate;
};