1/* 2 * Copyright 2004-2015 Haiku, Inc. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 * 5 * Authors: 6 * J��r��me Duval, jerome.duval@free.fr 7 * Marcus Overhagen, marcus@overhagen.de 8 * J��r��me L��v��que, leveque.jerome@gmail.com 9 */ 10 11 12#ifndef _ICE1712_MULTI_H_ 13#define _ICE1712_MULTI_H_ 14 15#include "ice1712.h" 16 17#include <hmulti_audio.h> 18 19#define ICE1712_MULTI_CONTROL_FIRSTID (0x80000000) 20 21#define ICE1712_MULTI_CONTROL_TYPE_MASK (0x70000000) 22#define ICE1712_MULTI_CONTROL_TYPE_COMBO (0x10000000) 23#define ICE1712_MULTI_CONTROL_TYPE_VOLUME (0x20000000) 24#define ICE1712_MULTI_CONTROL_TYPE_OUTPUT (0x30000000) 25#define ICE1712_MULTI_CONTROL_TYPE_OTHER4 (0x40000000) 26#define ICE1712_MULTI_CONTROL_TYPE_OTHER5 (0x50000000) 27#define ICE1712_MULTI_CONTROL_TYPE_OTHER6 (0x60000000) 28#define ICE1712_MULTI_CONTROL_TYPE_OTHER7 (0x70000000) 29 30#define ICE1712_MULTI_CONTROL_CHANNEL_MASK (0x0FF00000) 31#define ICE1712_MULTI_CONTROL_INDEX_MASK (0x00000FFF) 32 33#define ICE1712_MULTI_SET_CHANNEL(_c_) ((_c_ << 20) & \ 34 ICE1712_MULTI_CONTROL_CHANNEL_MASK) 35#define ICE1712_MULTI_GET_CHANNEL(_c_) ((_c_ & \ 36 ICE1712_MULTI_CONTROL_CHANNEL_MASK) >> 20) 37 38#define ICE1712_MULTI_SET_INDEX(_i_) (_i_ & \ 39 ICE1712_MULTI_CONTROL_INDEX_MASK) 40#define ICE1712_MULTI_GET_INDEX(_i_) (_i_ & \ 41 ICE1712_MULTI_CONTROL_INDEX_MASK) 42 43/* 44#define ICE1712_MULTI_CONTROL_VOLUME_PB (0x00010000) 45#define ICE1712_MULTI_CONTROL_VOLUME_REC (0x00020000) 46#define ICE1712_MULTI_CONTROL_MUTE (0x00040000) 47#define ICE1712_MULTI_CONTROL_MUX (0x00080000) 48#define ICE1712_MULTI_CONTROL_MASK (0x00FF0000) 49#define ICE1712_MULTI_CONTROL_CHANNEL_MASK (0x000000FF) 50*/ 51 52#define CONTROL_IS_MASTER (0) 53 54status_t ice1712Get_Description(ice1712 *card, multi_description *data); 55status_t ice1712Get_Channel(ice1712 *card, multi_channel_enable *data); 56status_t ice1712Set_Channel(ice1712 *card, multi_channel_enable *data); 57status_t ice1712Get_Format(ice1712 *card, multi_format_info *data); 58status_t ice1712Set_Format(ice1712 *card, multi_format_info *data); 59status_t ice1712Get_MixValue(ice1712 *card, multi_mix_value_info *data); 60status_t ice1712Set_MixValue(ice1712 *card, multi_mix_value_info *data); 61status_t ice1712Get_MixValueChannel(ice1712 *card, 62 multi_mix_channel_info *data); 63status_t ice1712Get_MixValueControls(ice1712 *card, 64 multi_mix_control_info *data); 65status_t ice1712Get_MixValueConnections(ice1712 *card, 66 multi_mix_connection_info *data); 67status_t ice1712Buffer_Get(ice1712 *card, multi_buffer_list *data); 68status_t ice1712Buffer_Exchange(ice1712 *card, multi_buffer_info *data); 69status_t ice1712Buffer_Stop(ice1712 *card); 70 71#endif //_ICE1712_MULTI_H_ 72 73