[haiku-commits] haiku: hrev52424 - headers/private/media

  • From: Barrett17@xxxxxxxxxxxxxxxx
  • To: haiku-commits@xxxxxxxxxxxxx
  • Date: Tue, 23 Oct 2018 10:00:12 -0400 (EDT)

hrev52424 adds 1 changeset to branch 'master'
old head: b84955d416f92e89c9d73999f545a2dec353d988
new head: 804f91e6346f6f99bf9123f6ff3f0322cf02cbe1
overview: 
https://git.haiku-os.org/haiku/log/?qt=range&q=804f91e6346f+%5Eb84955d416f9

----------------------------------------------------------------------------

804f91e6346f: media: Remove legacy multi_audio.h

                                        [ Barrett17 <b.vitruvio@xxxxxxxxx> ]

----------------------------------------------------------------------------

Revision:    hrev52424
Commit:      804f91e6346f6f99bf9123f6ff3f0322cf02cbe1
URL:         https://git.haiku-os.org/haiku/commit/?id=804f91e6346f
Author:      Barrett17 <b.vitruvio@xxxxxxxxx>
Date:        Tue Oct 23 13:50:27 2018 UTC

----------------------------------------------------------------------------

4 files changed, 5 insertions(+), 701 deletions(-)
headers/private/media/multi_audio.h              | 688 -------------------
.../kernel/drivers/audio/ac97/ich/ac97_multi.c   |   2 +-
src/add-ons/kernel/drivers/audio/sb16/driver.h   |  10 +-
.../kernel/drivers/audio/multi_audio_test.cpp    |   6 +-

----------------------------------------------------------------------------

diff --git a/headers/private/media/multi_audio.h 
b/headers/private/media/multi_audio.h
deleted file mode 100644
index 1f1df38895..0000000000
--- a/headers/private/media/multi_audio.h
+++ /dev/null
@@ -1,688 +0,0 @@
-/* multi_audio.h */
-
-/* Interface description for drivers implementing studio-level audio I/O with 
*/
-/* possible auxillary functions (transport, time code, etc). */
-/* Copyright © 1998-1999 Be Incorporated. All rights reserved. */
-
-/* This is the first release candidate for the API. Unless we hear feedback 
that */
-/* forces a change before the end of August, we will try to stay binary 
compatible */
-/* with this interface. */
-/* Send feedback to trinity@xxxxxx [1999-07-02] */
-
-#if !defined(_MULTI_AUDIO_H)
-#define _MULTI_AUDIO_H
-
-#include <Drivers.h>
-
-#ifndef ASSERT
-#include <Debug.h>
-#endif
-
-#define B_MULTI_DRIVER_BASE (B_AUDIO_DRIVER_BASE+20)
-
-enum { /* open() modes */
-       /*      O_RDONLY is 0, O_WRONLY is 1, O_RDWR is 2       */
-       B_MULTI_CONTROL = 3
-};
-
-/* ioctl codes */
-enum {
-       /* multi_description */
-       B_MULTI_GET_DESCRIPTION = B_MULTI_DRIVER_BASE,
-       /* multi_event_handling */
-       B_MULTI_GET_EVENT_INFO,
-       B_MULTI_SET_EVENT_INFO,
-       B_MULTI_GET_EVENT,
-       /* multi_channel_enable */
-       B_MULTI_GET_ENABLED_CHANNELS,
-       B_MULTI_SET_ENABLED_CHANNELS,
-       /* multi_format_info */
-       B_MULTI_GET_GLOBAL_FORMAT,
-       B_MULTI_SET_GLOBAL_FORMAT,              /* always sets for all 
channels, always implemented */
-       /* multi_channel_formats */
-       B_MULTI_GET_CHANNEL_FORMATS,
-       B_MULTI_SET_CHANNEL_FORMATS,    /* only implemented if possible */
-       /* multi_mix_value_info */
-       B_MULTI_GET_MIX,
-       B_MULTI_SET_MIX,
-       /* multi_mix_channel_info */
-       B_MULTI_LIST_MIX_CHANNELS,
-       /* multi_mix_control_info */
-       B_MULTI_LIST_MIX_CONTROLS,
-       /* multi_mix_connection_info */
-       B_MULTI_LIST_MIX_CONNECTIONS,
-       /* multi_buffer_list */
-       B_MULTI_GET_BUFFERS,                    /* Fill out the struct for the 
first time; doesn't start anything. */
-       B_MULTI_SET_BUFFERS,                    /* Set what buffers to use, if 
the driver supports soft buffers. */
-       /* bigtime_t */
-       B_MULTI_SET_START_TIME,                 /* When to actually start */
-       /* multi_buffer_info */
-       B_MULTI_BUFFER_EXCHANGE,                /* stop and go are derived from 
this being called */
-       B_MULTI_BUFFER_FORCE_STOP,              /* force stop of playback */
-       /* extension protocol */
-       B_MULTI_LIST_EXTENSIONS,                /* get a list of supported 
extensions */
-       B_MULTI_GET_EXTENSION,                  /* get the value of an 
extension (or return error if not supported) */
-       B_MULTI_SET_EXTENSION,                  /* set the value of an 
extension */
-       /* multi_mode_list */
-       B_MULTI_LIST_MODES,                             /* get a list of 
possible modes (multi_mode_list * arg) */
-       B_MULTI_GET_MODE,                               /* get the current mode 
(int32 * arg) */
-       B_MULTI_SET_MODE                                /* set a new mode 
(int32 * arg) */
-};
-
-/* sample rate values */
-/* various fixed sample rates we support (for hard-sync clocked values) */
-#define B_SR_8000 0x1
-#define B_SR_11025 0x2
-#define B_SR_12000 0x4
-#define B_SR_16000 0x8
-#define B_SR_22050 0x10
-#define B_SR_24000 0x20
-#define B_SR_32000 0x40
-#define B_SR_44100 0x80
-#define B_SR_48000 0x100
-#define B_SR_64000 0x200
-#define B_SR_88200 0x400
-#define B_SR_96000 0x800
-#define B_SR_176400 0x1000
-#define B_SR_192000 0x2000
-#define B_SR_384000 0x4000
-#define B_SR_1536000 0x10000
-/* continuously variable sample rate (typically board-generated) */
-#define B_SR_CVSR 0x10000000UL
-/* sample rate parameter global to all channels (input and output rates 
respectively) */
-#define B_SR_IS_GLOBAL 0x80000000UL
-/* output sample rate locked to input sample rate (output_rates only; the 
common case!) */
-#define B_SR_SAME_AS_INPUT 0x40000000UL
-
-
-/* format values */
-/* signed char */
-#define B_FMT_8BIT_S 0x01
-/* unsigned char -- this is special case */
-#define B_FMT_8BIT_U 0x02
-/* traditional 16 bit signed format (host endian) */
-#define B_FMT_16BIT 0x10
-/* left-adjusted in 32 bit signed word */
-#define B_FMT_18BIT 0x20
-#define B_FMT_20BIT 0x40
-#define B_FMT_24BIT 0x100
-#define B_FMT_32BIT 0x1000
-/* 32-bit floating point, -1.0 to 1.0 */
-#define B_FMT_FLOAT 0x20000
-/* 64-bit floating point, -1.0 to 1.0 */
-#define B_FMT_DOUBLE 0x40000
-/* 80-bit floating point, -1.0 to 1.0 */
-#define B_FMT_EXTENDED 0x80000
-/* bit stream */
-#define B_FMT_BITSTREAM 0x1000000
-/* format parameter global to all channels (input and output formats 
respectively) */
-#define B_FMT_IS_GLOBAL 0x80000000UL
-/* output format locked to input format (output_formats) */
-#define B_FMT_SAME_AS_INPUT 0x40000000UL
-
-/*     possible sample lock sources */
-#define B_MULTI_LOCK_INPUT_CHANNEL 0x0 /* lock_source_data is channel id */
-#define B_MULTI_LOCK_INTERNAL 0x1
-#define B_MULTI_LOCK_WORDCLOCK 0x2
-#define B_MULTI_LOCK_SUPERCLOCK 0x4
-#define B_MULTI_LOCK_LIGHTPIPE 0x8
-#define B_MULTI_LOCK_VIDEO 0x10                        /* or blackburst */
-#define B_MULTI_LOCK_FIRST_CARD 0x20   /* if you have more than one card */
-#define B_MULTI_LOCK_MTC 0x40
-#define B_MULTI_LOCK_SPDIF 0x80
-
-/* possible timecode sources */
-#define B_MULTI_TIMECODE_MTC 0x1
-#define B_MULTI_TIMECODE_VTC 0x2
-#define B_MULTI_TIMECODE_SMPTE 0x4
-#define B_MULTI_TIMECODE_SUPERCLOCK 0x8
-#define B_MULTI_TIMECODE_FIREWIRE 0x10
-
-/* interface_flags values */
-/* Available functions on this device. */
-#define B_MULTI_INTERFACE_PLAYBACK 0x1
-#define B_MULTI_INTERFACE_RECORD 0x2
-#define B_MULTI_INTERFACE_TRANSPORT 0x4
-#define B_MULTI_INTERFACE_TIMECODE 0x8
-/* "Soft" buffers means you can change the pointer values and the driver will 
still be happy. */
-#define B_MULTI_INTERFACE_SOFT_PLAY_BUFFERS 0x10000
-#define B_MULTI_INTERFACE_SOFT_REC_BUFFERS 0x20000
-/* Whether the data stream is interrupted when changing channel enables. */
-#define B_MULTI_INTERFACE_CLICKS_WHEN_ENABLING_OUTPUTS 0x40000
-#define B_MULTI_INTERFACE_CLICKS_WHEN_ENABLING_INPUTS 0x80000
-
-#define B_CURRENT_INTERFACE_VERSION 0x4502
-#define B_MINIMUM_INTERFACE_VERSION 0x4502
-
-typedef struct multi_description multi_description;
-typedef struct multi_channel_info multi_channel_info;
-struct multi_description {
-
-       size_t                  info_size;                      /* 
sizeof(multi_description) */
-       uint32                  interface_version;      /* current version of 
interface that's implemented */
-       uint32                  interface_minimum;      /* minimum version 
required to understand driver */
-
-       char                    friendly_name[32];      /* name displayed to 
user (C string) */
-       char                    vendor_info[32];        /* name used internally 
by vendor (C string) */
-
-       int32                   output_channel_count;
-       int32                   input_channel_count;
-       int32                   output_bus_channel_count;
-       int32                   input_bus_channel_count;
-       int32                   aux_bus_channel_count;
-
-       int32                   request_channel_count;          /* how many 
channel_infos are there */
-       multi_channel_info *
-                                       channels;
-
-       uint32                  output_rates;
-       uint32                  input_rates;
-       float                   min_cvsr_rate;
-       float                   max_cvsr_rate;
-       uint32                  output_formats;
-       uint32                  input_formats;
-       uint32                  lock_sources;
-       uint32                  timecode_sources;
-
-       uint32                  interface_flags;
-       bigtime_t               start_latency;          /* how much in advance 
driver needs SET_START_TIME */
-
-       uint32                  _reserved_[11];
-
-       char                    control_panel[64];      /* MIME type of control 
panel application */
-};
-
-#if !defined(_MEDIA_DEFS_H)    /* enum in MediaDefs.h */
-/* designation values */
-/* mono channels have no designation */
-#define B_CHANNEL_LEFT 0x1
-#define B_CHANNEL_RIGHT 0x2
-#define B_CHANNEL_CENTER 0x4                   /* 5.1+ or fake surround */
-#define B_CHANNEL_SUB 0x8                              /* 5.1+ */
-#define B_CHANNEL_REARLEFT 0x10                        /* quad surround or 
5.1+ */
-#define B_CHANNEL_REARRIGHT 0x20               /* quad surround or 5.1+ */
-#define B_CHANNEL_FRONT_LEFT_CENTER 0x40
-#define B_CHANNEL_FRONT_RIGHT_CENTER 0x80
-#define B_CHANNEL_BACK_CENTER 0x100            /* 6.1 or fake surround */
-#define B_CHANNEL_SIDE_LEFT 0x200
-#define B_CHANNEL_SIDE_RIGHT 0x400
-#define B_CHANNEL_TOP_CENTER 0x800
-#define B_CHANNEL_TOP_FRONT_LEFT 0x1000
-#define B_CHANNEL_TOP_FRONT_CENTER 0x2000
-#define B_CHANNEL_TOP_FRONT_RIGHT 0x4000
-#define B_CHANNEL_TOP_BACK_LEFT 0x8000
-#define B_CHANNEL_TOP_BACK_CENTER 0x10000
-#define B_CHANNEL_TOP_BACK_RIGHT 0x20000
-#endif
-
-#define B_CHANNEL_MONO_BUS 0x4000000
-#define B_CHANNEL_STEREO_BUS 0x2000000         /* + left/right */
-#define B_CHANNEL_SURROUND_BUS 0x1000000       /* multichannel */
-
-/* If you have interactions where some inputs can not be used when some */
-/* outputs are used, mark both inputs and outputs with this flag. */
-#define B_CHANNEL_INTERACTION 0x80000000UL
-/* If input channel #n is simplexed with output channel #n, they should both */
-/* have this flag set (different from the previous flag, which is more vague). 
*/
-#define B_CHANNEL_SIMPLEX 0x40000000UL
-
-/* connector values */
-/* analog connectors */
-#define B_CHANNEL_RCA 0x1
-#define B_CHANNEL_XLR 0x2
-#define B_CHANNEL_TRS 0x4
-#define B_CHANNEL_QUARTER_INCH_MONO 0x8
-#define B_CHANNEL_MINI_JACK_STEREO 0x10
-#define B_CHANNEL_QUARTER_INCH_STEREO 0x20
-#define B_CHANNEL_ANALOG_HEADER 0x100  /* internal on card */
-#define B_CHANNEL_SNAKE 0x200                  /* or D-sub */
-/* digital connectors (stereo) */
-#define B_CHANNEL_OPTICAL_SPDIF 0x1000
-#define B_CHANNEL_COAX_SPDIF 0x2000
-#define B_CHANNEL_COAX_EBU 0x4000
-#define B_CHANNEL_XLR_EBU 0x8000
-#define B_CHANNEL_TRS_EBU 0x10000
-#define B_CHANNEL_SPDIF_HEADER 0x20000 /* internal on card */
-/* multi-channel digital connectors */
-#define B_CHANNEL_LIGHTPIPE 0x100000
-#define B_CHANNEL_TDIF 0x200000
-#define B_CHANNEL_FIREWIRE 0x400000
-#define B_CHANNEL_USB 0x800000
-/* If you have multiple output connectors, only one of which can */
-/* be active at a time. */
-#define B_CHANNEL_EXCLUSIVE_SELECTION 0x80000000UL
-
-
-typedef enum {
-       B_MULTI_NO_CHANNEL_KIND,
-       B_MULTI_OUTPUT_CHANNEL = 0x1,
-       B_MULTI_INPUT_CHANNEL = 0x2,
-       B_MULTI_OUTPUT_BUS = 0x4,
-       B_MULTI_INPUT_BUS = 0x8,
-       B_MULTI_AUX_BUS = 0x10
-} channel_kind;
-
-struct multi_channel_info {
-       int32                   channel_id;
-       channel_kind    kind;
-       uint32                  designations;
-       uint32                  connectors;
-       uint32                  _reserved_[4];
-};
-
-
-/* Constants */
-#define B_MULTI_EVENT_MINMAX           16
-/* Event flags/masks */
-#define B_MULTI_EVENT_TRANSPORT        0x40000000UL
-#define B_MULTI_EVENT_HAS_TIMECODE     0x80000000UL
-
-/* possible transport events */
-#define B_MULTI_EVENT_NONE                     0x00000000UL
-#define B_MULTI_EVENT_START            0x40010000UL
-#define B_MULTI_EVENT_LOCATION                 0x40020000UL            /* 
location when shuttling or locating */
-#define B_MULTI_EVENT_SHUTTLING        0x40040000UL
-#define B_MULTI_EVENT_STOP                     0x40080000UL
-#define B_MULTI_EVENT_RECORD           0x40100000UL
-#define B_MULTI_EVENT_PAUSE            0x40200000UL
-#define B_MULTI_EVENT_RUNNING          0x40400000UL            /* location 
when running */
-/* possible device events */
-enum {
-       B_MULTI_EVENT_STARTED                           = 0x1,
-       B_MULTI_EVENT_STOPPED                           = 0x2,
-       B_MULTI_EVENT_CHANNEL_FORMAT_CHANGED= 0x4,
-       B_MULTI_EVENT_BUFFER_OVERRUN            = 0x8,
-       B_MULTI_EVENT_SIGNAL_LOST                       = 0x10,
-       B_MULTI_EVENT_SIGNAL_DETECTED           = 0x20, 
-       B_MULTI_EVENT_CLOCK_LOST                        = 0x40,
-       B_MULTI_EVENT_CLOCK_DETECTED            = 0x80,
-       B_MULTI_EVENT_NEW_MODE                          = 0x100,
-       B_MULTI_EVENT_CONTROL_CHANGED           = 0x200
-};
-
-typedef struct multi_get_event_info multi_get_event_info;
-struct multi_get_event_info {
-       size_t          info_size;              /* sizeof(multi_get_event_info) 
*/
-       uint32          supported_mask; /* what events h/w supports */
-       uint32          current_mask;   /* current driver value */
-       uint32          queue_size;             /* current queue size */
-       uint32          event_count;    /* number of events currently in queue*/
-       uint32          _reserved[3];
-};
-
-typedef struct multi_set_event_info multi_set_event_info;
-struct multi_set_event_info {
-       size_t          info_size;              /* sizeof(multi_set_event_info) 
*/
-       uint32          in_mask;                /* what events to wait for */
-       int32           semaphore;              /* semaphore app will wait on */
-       uint32          queue_size;             /* minimum number of events to 
save */
-       uint32          _reserved[4];
-};
-
-typedef struct multi_get_event multi_get_event;
-struct multi_get_event {
-       size_t          info_size;              /* sizeof(multi_get_event) */
-       uint32          event;
-       bigtime_t       timestamp;              /* real time at which event was 
received */
-       int32           count;                  /* used for configuration 
events */
-       union {
-                       int32           channels[100];
-                       uint32          clocks;
-                       int32           mode;
-                       int32           controls[100];
-                       struct { /* transport event */
-                               float           out_rate;               /* what 
rate it's now playing at */
-                               int32           out_hours;              /* 
location at the time given */
-                               int32           out_minutes;
-                               int32           out_seconds;
-                               int32           out_frames;
-                       }transport;
-                       char                    _reserved_[400];                
-       #if defined(__cplusplus)
-               };
-       #else
-               } u;
-       #endif
-       uint32  _reserved_1[10];
-};
-
-typedef struct multi_channel_enable multi_channel_enable;
-struct multi_channel_enable {
-       size_t                  info_size;                      /* 
sizeof(multi_channel_enable) */
-       /* this must have bytes for all channels (see multi_description) */
-       /* channel 0 is lowest bit of first byte */
-       uchar *                 enable_bits;
-
-       uint32                  lock_source;
-       int32                   lock_data;
-       uint32                  timecode_source;
-       uint32 *                connectors;                     /* which 
connector(s) is/are active, per channel */
-};
-
-#include <stdio.h>
-
-#if defined(__cplusplus)
-       inline void B_SET_CHANNEL(void * bits, int channel, bool value)
-       {
-               ASSERT(channel>=0);
-               (((uchar *)(bits))[((channel)&0x7fff)>>3] =
-                       (((uchar *)(bits))[((channel)&0x7fff)>>3] & 
~(1<<((channel)&0x7))) |
-                       ((value) ? (1<<((channel)&0x7)) : 0));
-       }
-       inline bool B_TEST_CHANNEL(const void * bits, int channel)
-       {
-               return ((((uchar *)(bits))[((channel)&0x7fff)>>3] >> 
((channel)&0x7)) & 1);
-       }
-#else
-       #define B_SET_CHANNEL(bits, channel, value) \
-               ASSERT(channel>=0); \
-               (((uchar *)(bits))[((channel)&0x7fff)>>3] = \
-                       (((uchar *)(bits))[((channel)&0x7fff)>>3] & 
~(1<<((channel)&0x7))) | \
-                       ((value) ? (1<<((channel)&0x7)) : 0))
-       #define B_TEST_CHANNEL(bits, channel) \
-               ((((uchar *)(bits))[((channel)&0x7fff)>>3] >> ((channel)&0x7)) 
& 1)
-#endif
-
-typedef struct multi_channel_formats multi_channel_formats;
-typedef struct multi_format_info multi_format_info;
-typedef struct _multi_format _multi_format;
-
-struct _multi_format {
-       uint32                  rate;
-       float                   cvsr;
-       uint32                  format;
-       uint32                  _reserved_[3];
-};
-enum { /* timecode kinds */
-       B_MULTI_NO_TIMECODE,
-       B_MULTI_TIMECODE_30,                    /* MIDI */
-       B_MULTI_TIMECODE_30_DROP_2,             /* NTSC */
-       B_MULTI_TIMECODE_30_DROP_4,             /* Brazil */
-       B_MULTI_TIMECODE_25,                    /* PAL */
-       B_MULTI_TIMECODE_24                             /* Film */
-};
-struct multi_format_info {
-       size_t                  info_size;                      /* 
sizeof(multi_format_info) */
-       bigtime_t               output_latency;
-       bigtime_t               input_latency;
-       int32                   timecode_kind;
-       uint32                  _reserved_[7];
-       _multi_format   input;
-       _multi_format   output;
-};
-struct multi_channel_formats {
-       size_t                  info_size;                      /* 
sizeof(multi_channel_formats) */
-       int32                   request_channel_count;
-       int32                   request_first_channel;
-       int32                   returned_channel_count;
-       int32                   timecode_kind;
-       int32                   _reserved_[4];
-       _multi_format *
-                                       channels;
-       bigtime_t *             latencies;                      /* DMA/hardware 
latencies; client calculates for buffers */
-};
-
-
-typedef struct multi_mix_value multi_mix_value;
-struct multi_mix_value {
-       int32                   id;
-       union {
-               float                   gain;
-               uint32                  mux;    /* bitmask of mux points */
-               bool                    enable;
-               uint32                  _reserved_[2];
-#if defined(__cplusplus)
-       };
-#else
-       } u;
-#endif
-       int32                   ramp;
-       uint32                  _reserved_2[2];
-};
-
-typedef struct multi_mix_value_info multi_mix_value_info;
-struct multi_mix_value_info {
-       size_t                  info_size;              /* 
sizeof(multi_mix_value_info) */
-       int32                   item_count;
-       multi_mix_value *
-                                       values;
-       int32                   at_frame;               /* time at which to 
start the change */
-};
-
-//     only one of these should be set
-#define B_MULTI_MIX_JUNCTION 0x1
-#define B_MULTI_MIX_GAIN 0x2
-#define B_MULTI_MIX_MUX 0x4
-#define B_MULTI_MIX_ENABLE 0x8
-#define B_MULTI_MIX_KIND_MASK 0xffff
-//     any combination of these can be set
-#define B_MULTI_MIX_RAMP 0x10000
-
-typedef struct multi_mix_control multi_mix_control;
-struct multi_mix_control {
-       int32                   id;                             /* unique for 
device -- not same id as any channel/bus ! */
-       uint32                  flags;                  /* including kind */
-       int32                   master;                 /* or 0 if it's not 
slaved */
-       union {
-               struct {
-                       float                   min_gain;               /* dB */
-                       float                   max_gain;               /* dB */
-                       float                   granularity;    /* dB */
-               }                       gain;
-               struct {
-                       uint32                  _reserved;
-               }                       mux;
-               struct {
-                       uint32                  _reserved;
-               }                       enable;
-               uint32          _reserved[12];
-#if defined(__cplusplus)
-       };
-#else
-       }                               u;
-#endif
-       char                    name[32];
-};
-
-typedef struct multi_mix_channel_info multi_mix_channel_info;
-struct multi_mix_channel_info {
-       size_t                  info_size;              /* 
sizeof(multi_mix_channel_info) */
-       int32                   channel_count;
-       int32 *                 channels;               /* allocated by caller, 
lists requested channels */
-       int32                   max_count;              /* in: control ids per 
channel */
-       int32                   actual_count;   /* out: actual max # controls 
for any individual requested channel */
-       int32 **                controls;
-};
-
-typedef struct multi_mix_control_info multi_mix_control_info;
-struct multi_mix_control_info {
-       size_t                  info_size;              /* 
sizeof(multi_mix_control_info) */
-       int32                   control_count;  /* in: number of controls */
-       multi_mix_control *
-                                       controls;               /* allocated by 
caller, returns control description for each */
-};
-
-typedef struct multi_mix_connection multi_mix_connection;
-struct multi_mix_connection {
-       int32                   from;
-       int32                   to;
-       uint32                  _reserved_[2];
-};
-
-typedef struct multi_mix_connection_info multi_mix_connection_info;
-struct multi_mix_connection_info {
-       size_t                  info_size;
-       int32                   max_count;              /* in: available space 
*/
-       int32                   actual_count;   /* out: actual count */
-       multi_mix_connection *
-                                       connections;    /* allocated by caller, 
returns connections */
-};
-
-
-/* possible flags values for what is available (in and out) */
-#define B_MULTI_BUFFER_PLAYBACK 0x1
-#define B_MULTI_BUFFER_RECORD 0x2
-#define B_MULTI_BUFFER_METERING 0x4
-#define B_MULTI_BUFFER_TIMECODE 0x40000
-
-typedef struct multi_buffer_list multi_buffer_list;
-typedef struct buffer_desc buffer_desc;
-/* This struct is used to query the driver about what buffers it will use, */
-/* and to tell it what buffers to use if it supports soft buffers. */
-struct multi_buffer_list {
-
-       size_t                  info_size;                              /* 
sizeof(multi_buffer_list) */
-       uint32                  flags;
-
-       int32                   request_playback_buffers;
-       int32                   request_playback_channels;
-       uint32                  request_playback_buffer_size;           /* 
frames per buffer */
-       int32                   return_playback_buffers;                        
/* playback_buffers[b][] */
-       int32                   return_playback_channels;                       
/* playback_buffers[][c] */
-       uint32                  return_playback_buffer_size;            /* 
frames */
-       buffer_desc **  playback_buffers;
-       void *                  _reserved_1;
-
-       int32                   request_record_buffers;
-       int32                   request_record_channels;
-       uint32                  request_record_buffer_size;                     
/* frames per buffer */
-       int32                   return_record_buffers;
-       int32                   return_record_channels;
-       uint32                  return_record_buffer_size;                      
/* frames */
-       buffer_desc **  record_buffers;
-       void *                  _reserved_2;
-
-};
-
-struct buffer_desc {
-       char *                  base;           /* pointer to first sample for 
channel for buffer */
-       size_t                  stride;         /* offset to next sample */
-       uint32                  _reserved_[2];
-};
-
-
-/* This struct is used when actually queuing data to be played, and/or */
-/* receiving data from a recorder. */
-typedef struct multi_buffer_info multi_buffer_info;
-struct multi_buffer_info {
-
-       size_t                  info_size;                      /* 
sizeof(multi_buffer_info) */
-       uint32                  flags;
-
-       bigtime_t               played_real_time;
-       bigtime_t               played_frames_count;
-       int32                   _reserved_0;
-       int32                   playback_buffer_cycle;
-
-       bigtime_t               recorded_real_time;
-       bigtime_t               recorded_frames_count;
-       int32                   _reserved_1;
-       int32                   record_buffer_cycle;
-
-       int32                   meter_channel_count;
-       char *                  meters_peak;    /* in the same format as the 
data; allocated by caller */
-       char *                  meters_average; /* in the same format as the 
data; allocated by caller */
-
-       /*      timecode sent and received at buffer swap       */
-       int32                   hours;
-       int32                   minutes;
-       int32                   seconds;
-       int32                   tc_frames;              /* for timecode frames 
as opposed to sample frames */
-       int32                   at_frame_delta; /* how far into buffer (or 
before buffer for negative) */
-
-};
-
-
-typedef struct multi_mode_info multi_mode_info;
-typedef struct multi_mode_list multi_mode_list;
-
-struct multi_mode_list {
-       size_t                  info_size;              /* 
sizeof(multi_mode_list) */
-       int32                   in_request_count;
-       int32                   out_actual_count;
-       int32                   out_current_mode;
-       multi_mode_info *
-                                       io_modes;
-};
-
-struct multi_mode_info {
-       int32                   mode_id;
-       uint32                  flags;
-       char                    mode_name[64];
-       int32                   input_channel_count;
-       int32                   output_channel_count;
-       float                   best_frame_rate_in;
-       float                   best_frame_rate_out;
-       uint32                  sample_formats_in;
-       uint32                  sample_formats_out;
-       char                    _reserved[160];
-};
-
-
-/*     This extension protocol can grow however much you want. */
-/*     Good extensions should be put into this header; really  */
-/*     good extensions should become part of the regular API.  */
-/*     For developer-developed extensions, use all lowercase   */
-/*     and digits (no upper case). If we then bless a third-   */
-/*     party extension, we can just upper-case the selector.   */
-
-typedef struct multi_extension_list multi_extension_list;
-typedef struct multi_extension_info multi_extension_info;
-struct multi_extension_info {
-       uint32                  code;
-       uint32                  flags;
-       char                    name[24];
-};
-
-#define B_MULTI_MAX_EXTENSION_COUNT 31
-struct multi_extension_list    { /* MULTI_LIST_EXTENSIONS */
-       size_t                  info_size;              /* 
sizeof(multi_extension_list) */
-       uint32                  max_count;
-       int32                   actual_count;   /* return # of actual 
extensions */
-       multi_extension_info *
-                                       extensions;             /* allocated by 
caller */
-};
-
-typedef struct multi_extension_cmd multi_extension_cmd;
-struct multi_extension_cmd {   /* MULTI_GET_EXTENSION and MULTI_SET_EXTENSION 
*/
-       size_t                  info_size;              /* 
sizeof(multi_extension_cmd) */
-       uint32                  code;
-       uint32                  _reserved_1;
-       void *                  in_data;
-       size_t                  in_size;
-       void *                  out_data;
-       size_t                  out_size;
-};
-
-enum {
-       B_MULTI_EX_CLOCK_GENERATION = 'CLGE',
-       B_MULTI_EX_DIGITAL_FORMAT = 'DIFO',
-       B_MULTI_EX_OUTPUT_NOMINAL = 'OUNO',
-       B_MULTI_EX_INPUT_NOMINAL = 'INNO'
-};
-
-typedef struct multi_ex_clock_generation multi_ex_clock_generation;
-struct multi_ex_clock_generation {
-       int32                   channel;        /* if specific, or -1 for all */
-       uint32                  clock;          /* WORDCLOCK or SUPERCLOCK, 
typically */
-};
-
-typedef struct multi_ex_digital_format multi_ex_digital_format;
-struct multi_ex_digital_format {
-       int32                   channel;        /* if specific, or -1 for all */
-       uint32                  format;         /* B_CHANNEL_*_SPDIF or 
B_CHANNEL_*_EBU */
-};
-
-enum {
-       B_MULTI_NOMINAL_MINUS_10 = 1, 
-       B_MULTI_NOMINAL_PLUS_4
-};
-
-typedef struct multi_ex_nominal_level multi_ex_nominal_level;
-struct multi_ex_nominal_level {
-       int32                   channel;        /* if specific, or -1 for all */
-       int32                   level;
-};
-
-#endif /* _MULTI_AUDIO_H */
-
diff --git a/src/add-ons/kernel/drivers/audio/ac97/ich/ac97_multi.c 
b/src/add-ons/kernel/drivers/audio/ac97/ich/ac97_multi.c
index 9a89c5ce89..711a51a415 100644
--- a/src/add-ons/kernel/drivers/audio/ac97/ich/ac97_multi.c
+++ b/src/add-ons/kernel/drivers/audio/ac97/ich/ac97_multi.c
@@ -27,7 +27,7 @@
  */
 #include <OS.h>
 #include <MediaDefs.h>
-#include "multi_audio.h"
+#include "hmulti_audio.h"
 #include "ac97_multi.h"
 
 //#define DEBUG 1
diff --git a/src/add-ons/kernel/drivers/audio/sb16/driver.h 
b/src/add-ons/kernel/drivers/audio/sb16/driver.h
index a0a25b3492..4b89aed915 100644
--- a/src/add-ons/kernel/drivers/audio/sb16/driver.h
+++ b/src/add-ons/kernel/drivers/audio/sb16/driver.h
@@ -8,13 +8,9 @@
 #include <string.h>
 #include <stdlib.h>
 
-#ifdef COMPILE_FOR_R5
-        #define DEVFS_PATH     "audio/multi"
-        #include <multi_audio.h>
-#else
-        #define DEVFS_PATH     "audio/hmulti"
-        #include <hmulti_audio.h>
-#endif
+#define DEVFS_PATH     "audio/hmulti"
+#include <hmulti_audio.h>
+
 
 #define STRMINBUF              2
 #define STRMAXBUF              2
diff --git a/src/tests/add-ons/kernel/drivers/audio/multi_audio_test.cpp 
b/src/tests/add-ons/kernel/drivers/audio/multi_audio_test.cpp
index 485c92584c..04068a9de5 100644
--- a/src/tests/add-ons/kernel/drivers/audio/multi_audio_test.cpp
+++ b/src/tests/add-ons/kernel/drivers/audio/multi_audio_test.cpp
@@ -11,11 +11,7 @@
 #include <unistd.h>
 #include <math.h>
 
-#ifdef HAIKU_MULTI_AUDIO
-#      include <hmulti_audio.h>
-#else
-#      include <multi_audio.h>
-#endif
+#include <hmulti_audio.h>
 
 #include "argv.h"
 


Other related posts:

  • » [haiku-commits] haiku: hrev52424 - headers/private/media - Barrett17