180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru/*
380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Copyright 2006 The Android Open Source Project
480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru *
580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * Use of this source code is governed by a BSD-style license that can be
680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru * found in the LICENSE file.
780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru */
880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkPostParts.h"
1180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#include "SkDisplayPost.h"
1280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#if SK_USE_CONDENSED_INFO == 0
1480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruconst SkMemberInfo SkDataInput::fInfo[] = {
1680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SK_MEMBER_INHERITED
1780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru};
1880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
1980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru#endif
2080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
2180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruDEFINE_GET_MEMBER(SkDataInput);
2280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
2380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkDataInput::SkDataInput() : fParent(NULL) {}
2480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
2580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkDataInput::add() {
2680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    SkASSERT(name.size() > 0);
2780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    const char* dataName = name.c_str();
2880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    if (fInt != (int) SK_NaN32)
2980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        fParent->fEvent.setS32(dataName, fInt);
3080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    else if (SkScalarIsNaN(fFloat) == false)
3180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        fParent->fEvent.setScalar(dataName, fFloat);
3280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    else if (string.size() > 0)
3380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        fParent->fEvent.setString(dataName, string);
3480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru//  else
3580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru//      SkASSERT(0);
3680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    return false;
3780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
3880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
3980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruvoid SkDataInput::dirty() {
4080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    fParent->dirty();
4180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
4280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
4380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste QueruSkDisplayable* SkDataInput::getParent() const {
4480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    return fParent;
4580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
4680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
4780bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Querubool SkDataInput::setParent(SkDisplayable* displayable) {
4880bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    if (displayable->isPost() == false)
4980bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru        return true;
5080bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    fParent = (SkPost*) displayable;
5180bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    return false;
5280bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
5380bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru
5480bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queruvoid SkDataInput::onEndElement(SkAnimateMaker&) {
5580bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru    add();
5680bacfeb4bda06541e8695bd502229727bccfeaJean-Baptiste Queru}
57