AFAIK that API is not allowed on CRAN. It triggers a NOTE or a WARNING, and your package will not be published.
Gabor On Wed, May 6, 2020 at 9:04 PM Martin Morgan <mtmorgan.b...@gmail.com> wrote: > > The public connection API is defined in > > https://github.com/wch/r-source/blob/trunk/src/include/R_ext/Connections.h > > I'm not sure of a good pedagogic example; people who want to write their own > connections usually want to do so for complicated reasons! > > This is my own abandoned attempt > https://github.com/mtmorgan/socketeer/blob/b0a1448191fe5f79a3f09d1f939e1e235a22cf11/src/connection.c#L169-L192 > where connection_local_client() is called from R and _connection_local() > creates and populates the appropriate structure. Probably I have done things > totally wrong (e.g., by not checking the version of the API, as advised in > the header file!) > > Martin Morgan > > On 5/6/20, 2:26 PM, "R-devel on behalf of Duncan Murdoch" > <r-devel-boun...@r-project.org on behalf of murdoch.dun...@gmail.com> wrote: > > On 06/05/2020 1:09 p.m., frede...@ofb.net wrote: > > Dear R Devel, > > > > Since Linux moved away from using a file-system interface for audio, I > think it is necessary to write special libraries to interface with audio > hardware from various languages on Linux. > > > > In R, it seems like the appropriate datatype for a `snd_pcm_t` handle > pointing to an open ALSA source or sink would be a "connection". Connection > types are already defined in R for "file", "url", "pipe", "fifo", > "socketConnection", etc. > > > > Is there a tutorial or an example package where a new type of > connection is defined, so that I can see how to do this properly in a package? > > > > I can see from the R source that, for example, `do_gzfile` is defined > in `connections.c` and referenced in `names.c`. However, I thought I should > ask here first in case there is a better place to start, than trying to copy > this code. > > > > I only want an object that I can use `readBin` and `writeBin` on, to > read and write audio data using e.g. `snd_pcm_writei` which is part of the > `alsa-lib` package. > > I don't think R supports user-defined connections, but probably writing > readBin and writeBin equivalents specific to your library wouldn't be > any harder than creating a connection. For those, you will probably > want to work with an "external pointer" (see Writing R Extensions). > Rcpp probably has support for these if you're working in C++. > > Duncan Murdoch > > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel