home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.0 / NeXTSTEP3.0.iso / NextDeveloper / Headers / sound / snddriver_client.h < prev    next >
Text File  |  1991-12-21  |  9KB  |  271 lines

  1. /*
  2.  *    snddriver_client.h
  3.  *    Copyright 1990 NeXT, Inc.
  4.  *
  5.  *    This file gets #import'ed by sounddriver.h.
  6.  */
  7.  
  8. kern_return_t snddriver_get_device_parms (
  9.     port_t        device_port,        // valid device port
  10.     boolean_t    *speaker,        // returned speaker enable 
  11.     boolean_t    *lowpass,        // returned lowpass filter en.
  12.     boolean_t    *zerofill);
  13.  
  14. kern_return_t snddriver_set_device_parms (
  15.     port_t        device_port,        // valid device port
  16.     boolean_t    speaker,        // enable speaker    
  17.     boolean_t    lowpass,        // enable lowpass filter
  18.     boolean_t    zerofill);
  19.  
  20. /* new in 2.0 */
  21. kern_return_t snddriver_set_ramp (
  22.     port_t        device_port,        // valid device port
  23.     int        rampflags);        // Flags for setting ramp
  24.  
  25. kern_return_t snddriver_get_volume (
  26.     port_t        device_port,        // valid device port
  27.     int        *left_chan,        // returned volume
  28.     int        *right_chan);
  29.  
  30. kern_return_t snddriver_set_volume (
  31.     portBSgdevice_port,        // valid device port
  32.     int        left_chan,        // volume on left channel
  33.     int        right_chan);
  34.  
  35. kern_return_t snddriver_set_dsp_owner_port (
  36.     port_t        device_port,        // valid device port
  37.     port_t        owner_port,        // dsp owner port
  38.     port_t        *neg_port);
  39.  
  40. kern_return_t snddriver_set_sndin_owner_port (
  41.     port_t        device_port,        // valid device port
  42.     port_t        owner_port,        // sound in owner port
  43.     port_t        *neg_port);
  44.  
  45. kern_return_t snddriver_set_sndout_owner_port (
  46.     port_t        device_port,        // valid device port
  47.     port_t        owner_port,        // sound out owner port
  48.     port_t        *neg_port);
  49.  
  50. kern_return_t snddriver_get_dsp_cmd_port (
  51.     port_t        device_port,        // valid device port
  52.     port_t        owner_port,        // valid owner port
  53.     port_t        *cmd_port);
  54.  
  55. kern_return_t snddriver_dspcmd_req_msg (
  56.     port_t        cmd_port,        // valid dsp command port
  57.     port_t        reply_port);
  58.  
  59. kern_return_t snddriver_dspcmd_req_err (
  60.     port_t        cmd_port,        // valid dsp command port
  61.     port_t        reply_port);
  62.  
  63. kern_return_t snddriver_dspcmd_req_condition (    //?
  64.     port_t        cmd_port,        // valid dsp command port
  65.     u_int        mask,            // mask of flags in condition
  66.     u_int        flags,            // value of flags in condition
  67.     int        priority,        // priority of this transaction
  68.     port_t        reply_port);
  69.  
  70. kern_return_t snddriver_dsp_set_flags (
  71.     port_t        cmd_port,        // valid dsp command port
  72.     u_int        mask,            // mask of flags to affect
  73.     u_int        flags,            // values of affected flags
  74.     int        priority);
  75.  
  76. kern_return_t snddriver_dsp_host_cmd (
  77.     port_t        cmd_port,        // valid dsp command port
  78.     u_int        host_command,        // host command to execute
  79.     int        priority);
  80.  
  81. /* New for 2.0 */
  82. kern_return_t snddriver_dsp_read_data (
  83.     port_t        cmd_port,        // valid command port
  84.     void        **data,            // buffer pointer or NULL
  85.     int        count,            // count of data elements
  86.     int        data_size,        // bytes per data element
  87.     int        priority);        // priority of this transaction
  88.  
  89. /* New for 2.0 */
  90. kern_return_t snddriver_dsp_read_messages (
  91.     port_t        cmd_port,        // valid command port
  92.     void        *data,            // buffer pointer or NULL
  93.     int        *count,            // count of data elements
  94.     int        data_size,        // bytes per data element
  95.     int        priority);        // priority of this transaction
  96.  
  97. kern_return_t snddriver_dsp_read (
  98.     port_t        cmd_port,        // valid command port
  99.     void        *data,            // pointer to buffer
  100.     int        *count,            // count of data elements
  101.     int        data_size,        // bytes per data element
  102.     int        priority);
  103. /* Calls read_messagesBShDSPMSG, DSPERR, or C_DMA protocol, else read_data */
  104.  
  105. kern_return_t snddriver_dsp_write (
  106.     port_t        cmd_port,        // valid command port
  107.     void        *data,            // pointer to buffer
  108.     int        count,            // count of data elements
  109.     int        data_size,        // bytes per data element
  110.     int        priority);
  111.  
  112. kern_return_t snddriver_dsp_boot (
  113.     port_t        cmd_port,        // valid command port
  114.     int        *bootImage,        // on-chip instructions
  115.     int        bootImageSize,        // instruction count
  116.     int        priority);
  117.  
  118. /*
  119.  * Set number of dma descriptors in stream.
  120.  * New for 2.0.
  121.  */
  122. kern_return_t snddriver_stream_ndma (
  123.     port_t        stream_port,        // valid stream port
  124.     int        tag,            // tag to identify stream
  125.     int        ndma);            // number of dma descs in stream
  126.  
  127. /* 
  128.  * Reset dsp (new in 2.0). 
  129.  */
  130. kern_return_t snddriver_dsp_reset (
  131.     port_t        cmd_port,        // valid command port
  132.     int        priority);        // priority of this transaction
  133.  
  134. /*
  135.  * Re-allocate the device port.  This causes all current connections to be
  136.  * terminated. (New in 2.0)
  137.  * This routine causes the current device port (and all other driver ports) to be
  138.  * deallocated.  A new device port is allocated and returned in the new_dev_port
  139.  * argument.  The purpose of this call is to provide security by allowing a privileged
  140.  * entity to terminate all connections to the device and re-register the device in the
  141.  * proper name space.  The host_priv_port argument is the port returned by the
  142.  * host_priv_port() trap (see <mach_host.h>).
  143.  */
  144. kern_return_t snddriver_new_device_port (
  145.     port_t        device_port,    // current valid device port
  146.     port_t        host_priv_port,    // from host_priv_self()
  147.     port_t        *new_dev_port);    // new device port
  148.  
  149. /*
  150.  * Exchange the current dsp owner port with a new one.  New for 2.0.
  151.  */
  152. kern_return_t snddriver_reset_dsp_owner (
  153.     port_t        device_port,    // valid device port
  154.     port_t        old_owner_port,    // old dsp owner port
  155.     port_t        new_owner_port,    // new dsp owner port
  156.     port_t        new_negotiation);// new dsp negotiation port
  157.  
  158. /*
  159.  * Exchange the current sndin owner port with a new one.  New for 2.0.
  160.  */
  161. kern_return_t snddriver_reset_sndin_owner (
  162.     port_t        device_port,    // valid device port
  163.     port_t        old_owner_port,    // old sndin owner port
  164.     port_t        new_owner_port,    // new sndin owner port
  165.     port_t        new_negotiation);// new sndin negotiation port
  166.  
  167. /*
  168.  * Exchange the current sndout owner port with a new one.  New for 2.0.
  169.  */
  170. kern_return_t snddriver_BSit_sndout_owner (
  171.     port_t        device_port,    // valid device port
  172.     port_t        old_owner_port,    // old sndout owner port
  173.     port_t        new_owner_port,    // new sndout owner port
  174.     port_t        new_negotiation);// new sndout negotiation port
  175.  
  176. /*
  177.  * User-initiated dma transfer to dsp. See programming examples. (New in 2.0.)
  178.  */
  179. kern_return_t snddriver_dsp_dma_write (
  180.     port_t        cmd_port,    // valid dsp command port
  181.     int        size,        // # dsp words to transfer
  182.     int        mode,        // mode of dma [1..5]
  183.     void        *data);        // data to output
  184.  
  185. /*
  186.  * User-initiated dma from dsp. See programming examples. (New in 2.0.)
  187.  */
  188. kern_return_t snddriver_dsp_dma_read (
  189.     port_t        cmd_port,    // valid dsp command port
  190.     int        size,        // .. of dsp buffer in words
  191.     int        mode,        // mode of dma [1..5]
  192.     void        **data);    // where data is put
  193.  
  194. /*
  195.  * Set the size of the sound out buffers used by snddriver_stream_setup() when
  196.  * it configures the stream.  The default is vm_page_size.
  197.  * New in 2.0.
  198.  */
  199. kern_return_t snddriver_set_sndout_bufsize (
  200.     port_t        dev_port,        // valid device port
  201.     port_t        owner_port,        // valid owner port
  202.     int        sobsize);        // so buf size
  203.  
  204. /*
  205.  * Set the number of sound out buffers used by snddriver_stream_setup() when
  206.  * it configures the stream.  The default is 4.
  207.  * New in 2.0.
  208.  */
  209. kern_return_t snddriver_set_sndout_bufcount (
  210.     port_t        dev_port,        // valid device port
  211.     port_t        owner_port,        // valid owner port
  212.     int        sobcount);        // so buf count
  213.  
  214. kern_return_t snddriver_stream_setup (
  215.     port_t        dev_port,        // valid device port
  216.     port_t        owner_port,        // valid owner port
  217.     int        config,            // stream configuration
  218.     int        buf_size,        // samples per buffer
  219.     int        sample_size,        // bytes per sample
  220.     int        low_water,        // low water mark
  221.     int        high_water,        // high water mark
  222.     int        *protocol,        // modified dsp protocol
  223.     port_t        *stream_port);
  224.  
  225. kern_return_t snddriver_dsp_protocol (
  226.     port_t        device_port,        // valid device port
  227.     port_t        owner_port,        // port registered as owner
  228.     int        protocol);
  229.  
  230. /*
  231.  * Stream interaction functions
  232.  */
  233. kern_return_t snddriver_stream_start_reading (
  234.     port_t        stream_port,        // valid stream port
  235.     char        *filename,        //? backing store (or null) NYI
  236.     int        data_size,        // count of samples to read
  237.     int        tag,            // user data
  238.     boolean_t    started_msg,        // send message when started
  239.     boolean_t    completed_msg,        // send message when completed
  240.     boolean_t    aborted_msg,        // send messageBSpn aborted
  241.     boolean_t    paused_msg,        // send message when paused
  242.     boolean_t    resumed_msg,        // send message when resumed
  243.     boolean_t    overflow_msg,        // send message when overflowed
  244.     port_t        reply_port);        // port for above messages
  245.  
  246. kern_return_t snddriver_stream_start_writing (
  247.     port_t        stream_port,        // valid stream port
  248.     void        *data,            // pointer to samples 
  249.     int        data_size,        // count of samples to write
  250.     int        tag,            // user data
  251.     boolean_t    preempt,        // play preemptively
  252.     boolean_t    deallocate,        // deallocate data when sent
  253.     boolean_t    started_msg,        // send message when started
  254.     boolean_t    completed_msg,        // send message when completed
  255.     boolean_t    aborted_msg,        // send message when aborted
  256.     boolean_t    paused_msg,        // send message when paused
  257.     booleaBSYresumed_msg,        // send message when resumed
  258.     boolean_t    overflow_msg,        // send message when overflowed
  259.     port_t        reply_port);
  260.  
  261. kern_return_t snddriver_stream_control (
  262.     port_t        stream_port,        // valid stream port
  263.     int        tag,            // tag to identify stream
  264.     int        snd_control);
  265.  
  266. kern_return_t snddriver_stream_nsamples (
  267.     port_t        stream_port,        // valid stream port
  268.     int        *nsamples);
  269.  
  270.  
  271.