GstStateChangeReturn audio_play_player (CustomData *data) { return _change_state (data, GST_STATE_PLAYING); }
GstStateChangeReturn audio_stop_player (CustomData *data) { return _change_state (data, GST_STATE_READY); }
GstStateChangeReturn audio_pause_player (CustomData *data) { return _change_state (data, GST_STATE_PAUSED); }
int json_parser_char(json_parser *parser, int next_char) { /* After calling json_parser_alloc, call this function for each character (or partial character) in your JSON text. It can accept UTF-8, UTF-16, or UTF-32. It returns true if things are looking ok so far. If it rejects the text, it returns false. */ int next_class, next_state; /* Determine the character's class. */ if (next_char < 0) { return false; } if (next_char >= 128) { next_class = C_ETC; } else { next_class = ascii_class[next_char]; if (next_class <= __) { return false; } } /* Get the next state from the state transition table. */ next_state = state_transition_table[parser->state][next_class]; if (next_state >= 0) { /* Change the state. */ if (!_change_state(parser, next_state)) return false; } else { /* Or perform one of the actions. */ switch (next_state) { /* empty } */ case -9: if (!_change_state(parser, OK)) return false; if (!_pop(parser, MODE_OBJECT_KEY) || !_pop(parser, MODE_OBJECT)) return false; break; /* } */ case -8: if (!_change_state(parser, OK)) return false; if (!_pop(parser, MODE_OBJECT_VALUE) || !_pop(parser, MODE_OBJECT)) return false; break; /* ] */ case -7: if (!_change_state(parser, OK)) return false; if (!_pop(parser, MODE_ARRAY)) return false; break; /* { */ case -6: if (!_change_state(parser, OB)) return false; if (!_push(parser, MODE_OBJECT) || !_push(parser, MODE_OBJECT_KEY)) return false; break; /* [ */ case -5: if (!_change_state(parser, AR)) return false; if (!_push(parser, MODE_ARRAY)) return false; break; /* " */ case -4: switch (parser->stack[parser->top].mode) { case MODE_OBJECT_KEY: if (!_change_state(parser, CO)) return false; break; case MODE_ARRAY: case MODE_OBJECT_VALUE: if (!_change_state(parser, OK)) return false; break; default: return false; } break; /* , */ case -3: switch (parser->stack[parser->top].mode) { case MODE_OBJECT_VALUE: /* A comma causes a flip from object_value mode to object_key mode. */ if (!_change_state(parser, KE)) return false; if (!_pop(parser, MODE_OBJECT_VALUE) || !_push(parser, MODE_OBJECT_KEY)) return false; break; case MODE_ARRAY: if (!_change_state(parser, VA)) return false; break; default: return false; } break; /* : */ case -2: /* A colon causes a flip from object_key mode to object_value mode. */ if (!_change_state(parser, VA)) return false; if (!_pop(parser, MODE_OBJECT_KEY) || !_push(parser, MODE_OBJECT_VALUE)) return false; break; /* Bad action. */ default: return false; } } parser->char_index++; if (parser->config.json_str) parser->config.json_str_len++; return true; }