* \brief get Data Carrier Detect (squelch) from Parallel Port * \param p * \param dcdx return value (Must be non NULL) * \return RIG_OK or < 0 error */
| 721 | * \return RIG_OK or < 0 error |
| 722 | */ |
| 723 | int par_dcd_get(hamlib_port_t *p, dcd_t *dcdx) |
| 724 | { |
| 725 | rig_debug(RIG_DEBUG_VERBOSE, "%s called\n", __func__); |
| 726 | |
| 727 | switch (p->type.dcd) |
| 728 | { |
| 729 | case RIG_DCD_PARALLEL: |
| 730 | { |
| 731 | unsigned char reg; |
| 732 | int status; |
| 733 | |
| 734 | status = par_read_data(p, ®); |
| 735 | |
| 736 | if (status == RIG_OK) |
| 737 | { |
| 738 | *dcdx = (reg & (1 << p->parm.parallel.pin)) ? |
| 739 | RIG_DCD_ON : RIG_DCD_OFF; |
| 740 | } |
| 741 | |
| 742 | return status; |
| 743 | } |
| 744 | |
| 745 | default: |
| 746 | rig_debug(RIG_DEBUG_ERR, |
| 747 | "%s: unsupported DCD type %d\n", |
| 748 | __func__, |
| 749 | p->type.dcd); |
| 750 | return -RIG_ENAVAIL; |
| 751 | } |
| 752 | |
| 753 | return RIG_OK; |
| 754 | } |
| 755 | |
| 756 | /** @} */ |
no test coverage detected