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

cSDDisplayMessage::cSDDisplayMessage(cTemplate *messageTemplate) {
    doOutput = true;
    initial = true;
    if (!messageTemplate) {
        doOutput = false;
        esyslog("skindesigner: displayMessage no valid template - aborting");
        return;
    }
    messageView = new cDisplayMessageView(messageTemplate->GetRootView());
    if (!messageView->createOsd()) {
        doOutput = false;
        return;
    }
    messageView->DrawBackground();
}

cSDDisplayMessage::~cSDDisplayMessage() {
    if (!doOutput)
        return;
    delete messageView;
}

void cSDDisplayMessage::SetMessage(eMessageType Type, const char *Text) {
    if (!doOutput)
        return;
    messageView->ClearMessage();
    if (!Text) {
        return;
    }
    messageView->DrawMessage(Type, Text);
}


void cSDDisplayMessage::Flush(void) {
    if (!doOutput)
        return;
    if (initial) {
        messageView->DoFadeIn();
        initial = false;
    } else {
        messageView->Flush();
    }
}