summaryrefslogtreecommitdiff
path: root/coreengine/viewelementsdisplaytracks.c
blob: bf5b2186f9caab274cec98293dd21e49496fbe84 (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
#include "viewelementsdisplaytracks.h"

/******************************************************************
* cVeDtBackground
******************************************************************/
cVeDtBackground::cVeDtBackground(void) {
    numTracks = 0;
}

cVeDtBackground::~cVeDtBackground(void) {
}

void cVeDtBackground::SetTokenContainer(void) {
    tokenContainer = new skindesignerapi::cTokenContainer();
    tokenContainer->DefineIntToken("{numtracks}", (int)eDTBackgroundIT::numtracks);
    InheritTokenContainer();
}

void cVeDtBackground::Set(int numTracks) {
    this->numTracks = numTracks;
}

bool cVeDtBackground::Parse(bool forced) {
    if (!cViewElement::Parse(forced))
        return false;
    tokenContainer->Clear();
    tokenContainer->AddIntToken((int)eDTBackgroundIT::numtracks, numTracks);
    SetDirty();
    return true;
}

/******************************************************************
* cVeDtHeader
******************************************************************/
cVeDtHeader::cVeDtHeader(void) {
    title = NULL;
    audioChannel = 0;
    numTracks = 0;
    changed = true;
}

cVeDtHeader::~cVeDtHeader(void) {
    free(title);
}

void cVeDtHeader::SetTokenContainer(void) {
    tokenContainer = new skindesignerapi::cTokenContainer();
    tokenContainer->DefineIntToken("{numtracks}", (int)eDTHeaderIT::numtracks);
    tokenContainer->DefineIntToken("{isstereo}", (int)eDTHeaderIT::isstereo);
    tokenContainer->DefineIntToken("{isac3}", (int)eDTHeaderIT::isac3);
    tokenContainer->DefineStringToken("{title}", (int)eDTHeaderST::title);
    InheritTokenContainer();
}

void cVeDtHeader::SetTitle(const char *title) {
    if (!title)
        return;
    free(this->title);
    this->title = strdup(title);
    changed = true;
}

void cVeDtHeader::SetNumtracks(int numTracks) {    
    this->numTracks = numTracks;
    changed = true;
}

void cVeDtHeader::SetAudiochannel(int audioChannel) {
    this->audioChannel = audioChannel;
    changed = true;
}

bool cVeDtHeader::Parse(bool forced) {
    if (!cViewElement::Parse(forced) || !changed)
        return false;

    tokenContainer->Clear();
    tokenContainer->AddIntToken((int)eDTHeaderIT::numtracks, numTracks);
    tokenContainer->AddIntToken((int)eDTHeaderIT::isstereo, (audioChannel < 0) ? false : true);
    tokenContainer->AddIntToken((int)eDTHeaderIT::isac3, (audioChannel < 0) ? true : false);
    tokenContainer->AddStringToken((int)eDTHeaderST::title, title);
    SetDirty();
    return true;
}