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>
|
||||
* 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.
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user