1/*
2 * OpenSound media addon for BeOS and Haiku
3 *
4 * Copyright (c) 2007, Fran��ois Revol (revol@free.fr)
5 * Distributed under the terms of the MIT License.
6 */
7
8#ifndef _OPENSOUNDDEVICEMIXER_H
9#define _OPENSOUNDDEVICEMIXER_H
10
11#include "OpenSoundDevice.h"
12
13class OpenSoundDeviceMixer
14{
15	public:
16		OpenSoundDeviceMixer(oss_mixerinfo *info);
17		virtual ~OpenSoundDeviceMixer(void);
18
19		virtual status_t InitCheck(void) const;
20		int			FD() const { return fFD; };
21		const oss_mixerinfo *Info() const { return &fMixerInfo; };
22
23		int				CountExtInfos();
24		status_t		GetExtInfo(int index, oss_mixext *info);
25		status_t		GetMixerValue(oss_mixer_value *value);
26		status_t		SetMixerValue(oss_mixer_value *value);
27		status_t		GetEnumInfo(int index, oss_mixer_enuminfo *info);
28
29
30
31		//
32		int				CachedUpdateCounter(int index);
33		void			SetCachedUpdateCounter(int index, int counter);
34
35		/*
36		status_t		Get(oss_ *info);
37		status_t		Get(oss_ *info);
38		*/
39
40	private:
41		status_t 				fInitCheckStatus;
42		oss_mixerinfo			fMixerInfo;
43		int						fFD;
44};
45
46#endif
47