mirror of
https://github.com/hrydgard/ppsspp.git
synced 2026-11-13 17:49:29 +01:00
Merge remote repo native into ext/native/.
This commit is contained in:
commit
f279c2a3c2
378 files changed
+190761
No files matched your search
@@ -0,0 +1,115 @@
|
||||
#include "json/json_writer.h"
|
||||
|
||||
JsonWriter::JsonWriter() {
|
||||
}
|
||||
|
||||
JsonWriter::~JsonWriter() {
|
||||
}
|
||||
|
||||
void JsonWriter::begin() {
|
||||
str_ << "{";
|
||||
stack_.push_back(StackEntry(DICT));
|
||||
}
|
||||
|
||||
void JsonWriter::end() {
|
||||
pop();
|
||||
str_ << "\n";
|
||||
}
|
||||
|
||||
const char *JsonWriter::indent(int n) const {
|
||||
static const char * const whitespace = " ";
|
||||
return whitespace + (32 - n);
|
||||
}
|
||||
|
||||
const char *JsonWriter::indent() const {
|
||||
int amount = (int)stack_.size() + 1;
|
||||
amount *= 2; // 2-space indent.
|
||||
return indent(amount);
|
||||
}
|
||||
|
||||
const char *JsonWriter::arrayIndent() const {
|
||||
int amount = (int)stack_.size() + 1;
|
||||
amount *= 2; // 2-space indent.
|
||||
return stack_.back().first ? indent(amount) : "";
|
||||
}
|
||||
|
||||
const char *JsonWriter::comma() const {
|
||||
if (stack_.back().first) {
|
||||
return "";
|
||||
} else {
|
||||
return ",";
|
||||
}
|
||||
}
|
||||
|
||||
const char *JsonWriter::arrayComma() const {
|
||||
if (stack_.back().first) {
|
||||
return "\n";
|
||||
} else {
|
||||
return ", ";
|
||||
}
|
||||
}
|
||||
|
||||
void JsonWriter::pushDict(const char *name) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": {";
|
||||
stack_.push_back(StackEntry(DICT));
|
||||
}
|
||||
|
||||
void JsonWriter::pushArray(const char *name) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": [";
|
||||
stack_.push_back(StackEntry(ARRAY));
|
||||
}
|
||||
|
||||
void JsonWriter::writeBool(bool value) {
|
||||
str_ << arrayComma() << arrayIndent() << (value ? "true" : "false");
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeBool(const char *name, bool value) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": " << (value ? "true" : "false");
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeInt(int value) {
|
||||
str_ << arrayComma() << arrayIndent() << value;
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeInt(const char *name, int value) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": " << value;
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeFloat(double value) {
|
||||
str_ << arrayComma() << arrayIndent() << value;
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeFloat(const char *name, double value) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": " << value;
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeString(const char *value) {
|
||||
str_ << arrayComma() << arrayIndent() << "\"" << value << "\"";
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::writeString(const char *name, const char *value) {
|
||||
str_ << comma() << "\n" << indent() << "\"" << name << "\": \"" << value << "\"";
|
||||
stack_.back().first = false;
|
||||
}
|
||||
|
||||
void JsonWriter::pop() {
|
||||
BlockType type = stack_.back().type;
|
||||
stack_.pop_back();
|
||||
switch (type) {
|
||||
case ARRAY:
|
||||
str_ << "\n" << indent() << "]";
|
||||
break;
|
||||
case DICT:
|
||||
str_ << "\n" << indent() << "}";
|
||||
break;
|
||||
}
|
||||
if (stack_.size() > 0)
|
||||
stack_.back().first = false;
|
||||
}
|
||||
Reference in new issue
Block a user