DBG_STATIC int get_transport_info(struct action_event *event) { int rc = -1; if (upnp_obtain_instanceid(event, NULL)) { upnp_set_error(event, UPNP_TRANSPORT_E_INVALID_IID, "ID non-zero invalid"); //return -1; } rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATE, "CurrentTransportState"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATUS, "CurrentTransportStatus"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_PLAY_SPEED, "CurrentSpeed"); if (rc) goto out; out: return rc; }
static int get_transport_info(struct action_event *event) { int rc; ENTER(); if (obtain_instanceid(event, NULL)) { rc = -1; goto out; } rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATE, "CurrentTransportState"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATUS, "CurrentTransportStatus"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_PLAY_SPEED, "CurrentSpeed"); if (rc) goto out; out: LEAVE(); return rc; }
static int get_transport_info(struct action_event *event) { if (obtain_instanceid(event, NULL) < 0) { return -1; } upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATE, "CurrentTransportState"); upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_STATUS, "CurrentTransportStatus"); upnp_append_variable(event, TRANSPORT_VAR_TRANSPORT_PLAY_SPEED, "CurrentSpeed"); return 0; }
static int get_media_info(struct action_event *event) { int rc = -1; if (upnp_obtain_instanceid(event, NULL)) { upnp_set_error(event, UPNP_TRANSPORT_E_INVALID_IID, "ID non-zero invalid"); return -1; } rc = upnp_append_variable(event, TRANSPORT_VAR_NR_TRACKS, "NrTracks"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_MEDIA_DUR, "MediaDuration"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_AV_URI, "CurrentURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_AV_URI_META, "CurrentURIMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI, "NextURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI_META, "NextURIMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIA, "PlayMedium"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM, "RecordMedium"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM_WR_STATUS, "WriteStatus"); if (rc) goto out; out: return rc; }
static int get_current_transportactions(struct action_event *event) { if (obtain_instanceid(event, NULL) < 0) { return -1; } upnp_append_variable(event, TRANSPORT_VAR_CUR_TRANSPORT_ACTIONS, "Actions"); return 0; }
DBG_STATIC int get_position_info(struct action_event *event) { int rc = -1; if (upnp_obtain_instanceid(event, NULL)) { upnp_set_error(event, UPNP_TRANSPORT_E_INVALID_IID, "ID non-zero invalid"); return -1; } ithread_mutex_lock(&transport_mutex); // Calls back into transport to set vars output_update_position(); ithread_mutex_unlock(&transport_mutex); rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK, "Track"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_DUR, "TrackDuration"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_META, "TrackMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_URI, "TrackURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REL_TIME_POS, "RelTime"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_ABS_TIME_POS, "AbsTime"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REL_CTR_POS, "RelCount"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_ABS_CTR_POS, "AbsCount"); if (rc) goto out; out: return rc; }
DBG_STATIC int get_transport_settings(struct action_event *event) { int rc = -1; if (upnp_obtain_instanceid(event, NULL)) { upnp_set_error(event, UPNP_TRANSPORT_E_INVALID_IID, "ID non-zero invalid"); return -1; } rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_PLAY_MODE, "CurrentPlayMode"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_REC_QUAL_MODE, "CurrentRecordQualityMode"); if (rc) goto out; out: return rc; }
static int cmd_obtain_variable(struct action_event *event, int varnum, const char *paramname) { char *value; value = upnp_get_string(event, "InstanceID"); if (value == NULL) { return -1; } printf("%s: InstanceID='%s'\n", __FUNCTION__, value); free(value); return upnp_append_variable(event, varnum, paramname); }
static int cmd_obtain_variable(struct action_event *event, control_variable_t varnum, const char *paramname) { char *instance = upnp_get_string(event, "InstanceID"); if (instance == NULL) { return -1; } Log_info("control", "%s: %s for instance %s\n", __FUNCTION__, paramname, instance); free(instance); // we don't care about that value for now. upnp_append_variable(event, varnum, paramname); return 0; }
static int get_media_info(struct action_event *event) { if (obtain_instanceid(event, NULL) < 0) { return -1; } upnp_append_variable(event, TRANSPORT_VAR_NR_TRACKS, "NrTracks"); upnp_append_variable(event, TRANSPORT_VAR_CUR_MEDIA_DUR, "MediaDuration"); upnp_append_variable(event, TRANSPORT_VAR_AV_URI, "CurrentURI"); upnp_append_variable(event, TRANSPORT_VAR_AV_URI_META, "CurrentURIMetaData"); upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI, "NextURI"); upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI_META, "NextURIMetaData"); upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIA, "PlayMedium"); upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM, "RecordMedium"); upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM_WR_STATUS, "WriteStatus"); return 0; }
static int get_position_info(struct action_event *event) { if (obtain_instanceid(event, NULL) < 0) { return -1; } upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK, "Track"); upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_DUR, "TrackDuration"); upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_META, "TrackMetaData"); upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_URI, "TrackURI"); upnp_append_variable(event, TRANSPORT_VAR_REL_TIME_POS, "RelTime"); upnp_append_variable(event, TRANSPORT_VAR_ABS_TIME_POS, "AbsTime"); upnp_append_variable(event, TRANSPORT_VAR_REL_CTR_POS, "RelCount"); upnp_append_variable(event, TRANSPORT_VAR_ABS_CTR_POS, "AbsCount"); return 0; }
static int get_current_transportactions(struct action_event *event) { int rc; ENTER(); if (obtain_instanceid(event, NULL)) { rc = -1; goto out; } rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRANSPORT_ACTIONS, "Actions"); if (rc) goto out; out: LEAVE(); return rc; }
static int get_position_info(struct action_event *event) { int rc; ENTER(); if (obtain_instanceid(event, NULL)) { rc = -1; goto out; } gint64 duration, position; service_lock(); const int pos_result = output_get_position(&duration, &position); service_unlock(); if (pos_result == 0) { char tbuf[32]; print_upnp_time_into_buffer(tbuf, sizeof(tbuf), duration); replace_var(TRANSPORT_VAR_CUR_TRACK_DUR, tbuf); print_upnp_time_into_buffer(tbuf, sizeof(tbuf), position); replace_var(TRANSPORT_VAR_REL_TIME_POS, tbuf); } rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK, "Track"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_DUR, "TrackDuration"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_META, "TrackMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_TRACK_URI, "TrackURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REL_TIME_POS, "RelTime"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_ABS_TIME_POS, "AbsTime"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REL_CTR_POS, "RelCount"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_ABS_CTR_POS, "AbsCount"); if (rc) goto out; out: LEAVE(); return rc; }
static int get_media_info(struct action_event *event) { char *value; int rc; ENTER(); value = upnp_get_string(event, "InstanceID"); if (value == NULL) { rc = -1; goto out; } printf("%s: InstanceID='%s'\n", __FUNCTION__, value); free(value); rc = upnp_append_variable(event, TRANSPORT_VAR_NR_TRACKS, "NrTracks"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_CUR_MEDIA_DUR, "MediaDuration"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_AV_URI, "CurrentURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_AV_URI_META, "CurrentURIMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI, "NextURI"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_NEXT_AV_URI_META, "NextURIMetaData"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIA, "PlayMedium"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM, "RecordMedium"); if (rc) goto out; rc = upnp_append_variable(event, TRANSPORT_VAR_REC_MEDIUM_WR_STATUS, "WriteStatus"); if (rc) goto out; out: return rc; }