2018-06-22 Fred Gleason <fredg@paravelsystems.com>

* Added GPIO support for HPI devices to the 'Local Audio Adapter'
	switcher/gpio driver.
This commit is contained in:
Fred Gleason
2018-08-23 01:23:59 +00:00
parent 8f2fbcab9f
commit 58fa103f6e
8 changed files with 813 additions and 53 deletions

View File

@@ -1,8 +1,8 @@
// local_audio.h
//
// A Rivendell switcher driver for the BroadcastTools 10x1
// A Rivendell switcher driver for local audio cards.
//
// (C) Copyright 2002-2003,2016 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2018 Fred Gleason <fredg@paravelsystems.com>
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License version 2 as
@@ -21,12 +21,23 @@
#ifndef LOCAL_AUDIO_H
#define LOCAL_AUDIO_H
#include <vector>
#include <qtimer.h>
#include <rd.h>
#include <rdmatrix.h>
#include <rdmacro.h>
#include <rdoneshot.h>
#include <rdtty.h>
#include <switcher.h>
#ifdef HPI
#include <asihpi/hpi.h>
#endif // HPI
#include "switcher.h"
#define LOCALAUDIO_POLL_INTERVAL 100
class LocalAudio : public Switcher
{
@@ -41,9 +52,29 @@ class LocalAudio : public Switcher
bool secondaryTtyActive();
void processCommand(RDMacro *cmd);
private slots:
void pollData();
void gpoOneshotData(int value);
private:
void InitializeHpi(RDMatrix *matrix);
void SetGpo(int line,bool state);
void UpdateDb(RDMatrix *matrix) const;
#ifdef HPI
hpi_err_t LogHpi(hpi_err_t err,int lineno);
hpi_handle_t bt_mixer;
hpi_handle_t bt_gpis_param;
hpi_handle_t bt_gpos_param;
std::vector<uint8_t> bt_gpi_states;
#endif // HPI
RDOneShot *bt_gpo_oneshot;
uint8_t *bt_gpi_values;
uint8_t *bt_gpo_values;
QTimer *bt_poll_timer;
int bt_inputs;
int bt_outputs;
int bt_gpis;
int bt_gpos;
int bt_card;
};