1
2/*
3 * Copyright 2006 The Android Open Source Project
4 *
5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file.
7 */
8
9
10#include "SkPostParts.h"
11#include "SkDisplayPost.h"
12
13#if SK_USE_CONDENSED_INFO == 0
14
15const SkMemberInfo SkDataInput::fInfo[] = {
16    SK_MEMBER_INHERITED
17};
18
19#endif
20
21DEFINE_GET_MEMBER(SkDataInput);
22
23SkDataInput::SkDataInput() : fParent(NULL) {}
24
25bool SkDataInput::add() {
26    SkASSERT(name.size() > 0);
27    const char* dataName = name.c_str();
28    if (fInt != (int) SK_NaN32)
29        fParent->fEvent.setS32(dataName, fInt);
30    else if (SkScalarIsNaN(fFloat) == false)
31        fParent->fEvent.setScalar(dataName, fFloat);
32    else if (string.size() > 0)
33        fParent->fEvent.setString(dataName, string);
34//  else
35//      SkASSERT(0);
36    return false;
37}
38
39void SkDataInput::dirty() {
40    fParent->dirty();
41}
42
43SkDisplayable* SkDataInput::getParent() const {
44    return fParent;
45}
46
47bool SkDataInput::setParent(SkDisplayable* displayable) {
48    if (displayable->isPost() == false)
49        return true;
50    fParent = (SkPost*) displayable;
51    return false;
52}
53
54void SkDataInput::onEndElement(SkAnimateMaker&) {
55    add();
56}
57