summaryrefslogtreecommitdiff
path: root/muggle-plugin/vdr_setup.c
blob: df10c0dd537261b49e9998504a0a5466f45898f8 (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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
/*!
 * \file vdr_setup.c
 * \brief A setup class for a VDR media plugin (muggle)
 *
 * \version $Revision: 1.3 $
 * \date    $Date$
 * \author  Ralf Klueber, Lars von Wedel, Andreas Kellner
 * \author  Responsible author: $Author$
 *
 * $Id$
 *
 * Partially adapted from
 * MP3/MPlayer plugin to VDR (C++)
 * (C) 2001,2002 Stefan Huelswitt <huels@iname.com>
 */

#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>

#include "vdr_setup.h"
#include "vdr_actions.h"
#include "i18n.h"


// --- mgMenuSetup -----------------------------------------------------------

mgMenuSetup::mgMenuSetup ()
{
    m_data = the_setup;

    SetSection (tr ("Muggle"));

    Add (new
        cMenuEditBoolItem (tr ("Setup.Muggle$Initial loop mode"),
        &m_data.InitLoopMode));
    Add (new
	 cMenuEditBoolItem (tr ("Setup.Muggle$Initial shuffle mode"),
			    &m_data.InitShuffleMode));
    Add (new
        cMenuEditBoolItem (tr ("Setup.Muggle$Audio mode"), &m_data.AudioMode,
        tr ("Round"), tr ("Dither")));
    Add (new
        cMenuEditBoolItem (tr ("Setup.Muggle$Use 48kHz mode only"),
        &m_data.Only48kHz));
    Add (new
        cMenuEditIntItem (tr ("Setup.Muggle$Display mode"),
        &m_data.DisplayMode, 1, 3));
    Add (new
        cMenuEditBoolItem (tr ("Setup.Muggle$Background mode"),
        &m_data.BackgrMode, tr ("Black"), tr ("Live")));
    Add (new
        cMenuEditIntItem (tr ("Setup.Muggle$Normalizer level"),
        &m_data.TargetLevel, 0, MAX_TARGET_LEVEL));
    Add (new
        cMenuEditIntItem (tr ("Setup.Muggle$Limiter level"),
        &m_data.LimiterLevel, MIN_LIMITER_LEVEL, 100));
    Add (new
	 cMenuEditBoolItem (tr ("Setup.Muggle$Delete stale references"),
			    &m_data.DeleteStaleReferences));
    
    
    mgAction *a = actGenerate(actSync);
    const char *mn = a->MenuName();
    a->SetText(mn);
    free(const_cast<char*>(mn));
    Add(dynamic_cast<cOsdItem*>(a));
}


void
mgMenuSetup::Store (void)
{
    the_setup = m_data;

    SetupStore ("InitLoopMode", the_setup.InitLoopMode);
    SetupStore ("InitShuffleMode", the_setup.InitShuffleMode);
    SetupStore ("AudioMode", the_setup.AudioMode);
    SetupStore ("DisplayMode", the_setup.DisplayMode);
    SetupStore ("BackgrMode", the_setup.BackgrMode);
    SetupStore ("TargetLevel", the_setup.TargetLevel);
    SetupStore ("LimiterLevel", the_setup.LimiterLevel);
    SetupStore ("Only48kHz", the_setup.Only48kHz);
    SetupStore ("DeleteStaleReferences", the_setup.DeleteStaleReferences);
}