Skip to content

Commit

Permalink
Fixed #571 - HamlibDrv: Used newer API to get information about Rig
Browse files Browse the repository at this point in the history
  • Loading branch information
foldynl committed Jan 17, 2025
1 parent 97f8a37 commit ee39df0
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 7 deletions.
21 changes: 18 additions & 3 deletions rig/drivers/HamlibRigDrv.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,12 @@ QList<QPair<int, QString>> HamlibRigDrv::getModelList()
QList<QPair<int, QString>> ret;

rig_load_all_backends();

#if ( HAMLIBVERSION_MAJOR >= 4 && HAMLIBVERSION_MINOR >= 2 )
rig_list_foreach_model(addRig, &ret);
#else
rig_list_foreach(addRig, &ret);
#endif

return ret;
}
Expand All @@ -53,11 +58,20 @@ QList<QPair<QString, QString> > HamlibRigDrv::getPTTTypeList()
return ret;
}

#if ( HAMLIBVERSION_MAJOR == 4 && HAMLIBVERSION_MINOR == 6 && HAMLIBVERSION_PATCH == 0 )
int HamlibRigDrv::addRig(rig_caps *caps, void* data)
#if ( HAMLIBVERSION_MAJOR >= 4 && HAMLIBVERSION_MINOR >= 2 )
int HamlibRigDrv::addRig (const rig_model_t rigModel, void *data)
{
QList<QPair<int, QString>> *list = static_cast<QList<QPair<int, QString>>*>(data);

QString name = QString("%1 %2 (%3)").arg(QString::fromLatin1(rig_get_caps_cptr(rigModel, RIG_CAPS_MFG_NAME_CPTR)).trimmed(),
QString::fromLatin1(rig_get_caps_cptr(rigModel, RIG_CAPS_MODEL_NAME_CPTR)).trimmed(),
QString::fromLatin1(rig_get_caps_cptr(rigModel, RIG_CAPS_VERSION_CPTR)).trimmed());

list->append(QPair<int, QString>(rigModel, name));
return -1;
}
#else
int HamlibRigDrv::addRig(const rig_caps *caps, void* data)
#endif
{
QList<QPair<int, QString>> *list = static_cast<QList<QPair<int, QString>>*>(data);

Expand All @@ -68,6 +82,7 @@ int HamlibRigDrv::addRig(const rig_caps *caps, void* data)
list->append(QPair<int, QString>(caps->rig_model, name));
return -1;
}
#endif

RigCaps HamlibRigDrv::getCaps(int model)
{
Expand Down
7 changes: 3 additions & 4 deletions rig/drivers/HamlibRigDrv.h
Original file line number Diff line number Diff line change
Expand Up @@ -41,10 +41,9 @@ private slots:
private:

// https://github.com/Hamlib/Hamlib/issues/1647
// It seems that the authors, under fire
// from other application authors, have changed the API back.
#if ( HAMLIBVERSION_MAJOR == 4 && HAMLIBVERSION_MINOR == 6 && HAMLIBVERSION_PATCH == 0 )
static int addRig(rig_caps *caps, void* data);
// use a newer HAMLIB API rig_list_foreach_model from 4.2
#if ( HAMLIBVERSION_MAJOR >= 4 && HAMLIBVERSION_MINOR >= 2 )
static int addRig (const rig_model_t rigModel, void *data);
#else
static int addRig(const rig_caps *caps, void* data);
#endif
Expand Down

0 comments on commit ee39df0

Please sign in to comment.