summaryrefslogtreecommitdiff
path: root/soundset.h
blob: 6f5d4fd35246d1a2802bf309a0dab3d04a60f2c6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/*
 * sndctl  -  a plugin for the Video Disk Recorder
 *        file: soundset.h
 * description: header file for soundset.c
 *
 *      author: Thomas Hildebrandt <toxym@web.de>
 *
 * inspired by and reengineered from 'avolctl'
 * thanks to Martin Prochnow <nordlichtl@martins-kabuff.de>
 */

#ifndef SNDCTL_SOUNDSET_H
#define SNDCTL_SOUNDSET_H

#include "sndctl.h"
#include "mixer.h"

/*
 * cSoundSet
 * sound set representation class definition
 */
class cSoundSet {
  private:
    struct control{
      cControlId control;
      char value[SNDCTL_MAX_LEN_CONTROL_VAL];
    }                  *controls;
    string              id;
    cMixer             *mixer;
    string              name;
    int                 nrOfControls;
    int                 volume;

  public:
    cSoundSet( cMixer*, string );
    ~cSoundSet();

    string         Get( cControlId ControlId );
    string         GetID( void );
    string         GetName( void );
    bool           Set( string, string );
    bool           Set(cControlId ControlId, string Value );
    bool           Store( string, cPluginSndctl* );
    void           Volume( int = -1 );
    vector<cControlId> GetControls( void );
};

#endif //SNDCTL_SOUNDSET_H