@@ -1613,7 +1613,12 @@ cdef class PyBladerfDevice:
16131613 return pybladerf_rx_mux(mux )
16141614
16151615 def pybladerf_schedule_retune(self , channel: int , timestamp: int , frequency: int , quick_tune: pybladerf_quick_tune | None = None ) -> None:
1616- cdef cbladerf.bladerf_quick_tune *c_quick_tune_ptr = quick_tune.get_ptr() if quick_tune is not None else NULL
1616+ cdef cbladerf.bladerf_quick_tune *c_quick_tune_ptr = NULL
1617+ cdef pybladerf_quick_tune quick_tune_link
1618+ if isinstance(quick_tune , pybladerf_quick_tune ):
1619+ quick_tune_link = quick_tune
1620+ c_quick_tune_ptr = < cbladerf.bladerf_quick_tune* > quick_tune_link.get_ptr()
1621+
16171622 cdef uint64_t c_timestamp = < uint64_t> timestamp
16181623 cdef uint64_t c_frequency = < uint64_t> frequency
16191624 cdef int c_channel = < int > channel
@@ -1666,7 +1671,13 @@ cdef class PyBladerfDevice:
16661671 raise_error('pybladerf_sync_config()', result )
16671672
16681673 def pybladerf_sync_tx(self , samples: np.ndarray[Any , Any], num_samples: int , metadata: pybladerf_metadata | None = None , timeout_ms: int = 0 ) -> None:
1669- cdef cbladerf.bladerf_metadata *c_metadata_ptr = metadata.get_ptr() if metadata is not None else NULL
1674+ cdef cbladerf.bladerf_metadata *c_metadata_ptr = NULL
1675+ cdef pybladerf_metadata metadata_link
1676+
1677+ if isinstance(metadata , pybladerf_metadata ):
1678+ metadata_link = metadata
1679+ c_metadata_ptr = < cbladerf.bladerf_metadata* > metadata_link.get_ptr()
1680+
16701681 cdef unsigned int c_num_samples = < unsigned int > num_samples
16711682 cdef unsigned int c_timeout_ms = < unsigned int > timeout_ms
16721683 cdef void * c_samples_ptr = < void * > < uintptr_t> samples.ctypes.data
@@ -1677,7 +1688,13 @@ cdef class PyBladerfDevice:
16771688 raise_error(' pybladerf_sync_tx()' , result)
16781689
16791690 def pybladerf_sync_rx (self , samples: np.ndarray[Any , Any], num_samples: int , metadata: pybladerf_metadata | None = None , timeout_ms: int = 0 ) -> None:
1680- cdef cbladerf.bladerf_metadata *c_metadata_ptr = metadata.get_ptr() if metadata is not None else NULL
1691+ cdef cbladerf.bladerf_metadata *c_metadata_ptr = NULL
1692+ cdef pybladerf_metadata metadata_link
1693+
1694+ if isinstance(metadata , pybladerf_metadata ):
1695+ metadata_link = metadata
1696+ c_metadata_ptr = < cbladerf.bladerf_metadata* > metadata_link.get_ptr()
1697+
16811698 cdef unsigned int c_num_samples = < unsigned int > num_samples
16821699 cdef unsigned int c_timeout_ms = < unsigned int > timeout_ms
16831700 cdef void * c_samples_ptr = < void * > < uintptr_t> samples.ctypes.data
0 commit comments