static OMX_ERRORTYPE obtain_next_url (scloud_prc_t * ap_prc, int a_skip_value) { OMX_ERRORTYPE rc = OMX_ErrorNone; const long pathname_max = PATH_MAX + NAME_MAX; assert (ap_prc); assert (ap_prc->p_scloud_); if (!ap_prc->p_uri_param_) { ap_prc->p_uri_param_ = tiz_mem_calloc ( 1, sizeof (OMX_PARAM_CONTENTURITYPE) + pathname_max + 1); } tiz_check_null_ret_oom (ap_prc->p_uri_param_); ap_prc->p_uri_param_->nSize = sizeof (OMX_PARAM_CONTENTURITYPE) + pathname_max + 1; ap_prc->p_uri_param_->nVersion.nVersion = OMX_VERSION; { const char * p_next_url = a_skip_value > 0 ? tiz_scloud_get_next_url (ap_prc->p_scloud_) : tiz_scloud_get_prev_url (ap_prc->p_scloud_); tiz_check_null_ret_oom (p_next_url); { const OMX_U32 url_len = strnlen (p_next_url, pathname_max); TIZ_TRACE (handleOf (ap_prc), "URL [%s]", p_next_url); /* Verify we are getting an http scheme */ if (!p_next_url || !url_len || (strncasecmp (p_next_url, "http://", 7) != 0 && strncasecmp (p_next_url, "https://", 8) != 0)) { rc = OMX_ErrorContentURIError; } else { strncpy ((char *) ap_prc->p_uri_param_->contentURI, p_next_url, url_len); ap_prc->p_uri_param_->contentURI[url_len] = '\0'; /* Song metadata is now available, update the IL client */ rc = update_metadata (ap_prc); } } } return rc; }
END_TEST START_TEST (test_scloud_play_playlist) { tiz_scloud_t *p_soundcloud = NULL; int rc = tiz_scloud_init (&p_soundcloud, SOUNDCLOUD_USERNAME, SOUNDCLOUD_PASS); ck_assert (0 == rc); ck_assert (p_soundcloud); rc = tiz_scloud_play_playlist (p_soundcloud, SOUNDCLOUD_PLAYLIST); ck_assert (0 == rc); /* while (1) */ { /* char cmd[CMD_LEN]; */ { const char *next_url = tiz_scloud_get_next_url (p_soundcloud); ck_assert (next_url); fprintf (stderr, "url = %s\n", next_url); } { const char *user = tiz_scloud_get_current_track_user (p_soundcloud); ck_assert (user); fprintf (stderr, "user = %s\n", user); } { const char *title = tiz_scloud_get_current_track_title (p_soundcloud); ck_assert (title); fprintf (stderr, "title = %s\n", title); } { const char *duration = tiz_scloud_get_current_track_duration (p_soundcloud); ck_assert (duration); fprintf (stderr, "duration = %s\n", duration); } { const char *year = tiz_scloud_get_current_track_year (p_soundcloud); ck_assert (year); fprintf (stderr, "year = %s\n", year); } { const char *permalink = tiz_scloud_get_current_track_permalink (p_soundcloud); ck_assert (permalink); fprintf (stderr, "permalink = %s\n", permalink); } { const char *license = tiz_scloud_get_current_track_license (p_soundcloud); ck_assert (license); fprintf (stderr, "license = %s\n", license); } /* snprintf (cmd, CMD_LEN, "%s '%s'", PLAYER, next_url); */ /* fprintf (stderr, "cmd = %s\n", cmd); */ /* ck_assert (-1 != system (cmd)); */ } tiz_scloud_destroy (p_soundcloud); }