#include <vlc_playlist.h>
#include <vlc_meta.h>
#include <vlc_fs.h>
+#include <vlc_url.h>
#include <assert.h>
char *uri;
struct stat st;
- if (asprintf(&uri, "%s/%s", current_dir, entry) != -1)
+ if (asprintf(&uri, "%s" DIR_SEP "%s", current_dir, entry) != -1)
{
ret = vlc_stat(uri, &st) || !S_ISDIR(st.st_mode);
free(uri);
mvnprintw(y++, 0, COLS, _(" Position : %s/%s"), buf1, buf2);
- aout_VolumeGet(p_playlist, &i_volume);
+ i_volume = aout_VolumeGet(p_playlist);
mvnprintw(y++, 0, COLS, _(" Volume : %i%%"),
i_volume*200/AOUT_VOLUME_MAX);
case '\n':
case ' ':
dir_entry = p_sys->pp_dir_entries[p_sys->i_box_idx];
+ char *psz_path;
+ if (asprintf(&psz_path, "%s" DIR_SEP "%s", p_sys->psz_current_dir,
+ dir_entry->psz_path) == -1)
+ return true;
if (!dir_entry->b_file && key != ' ')
{
- char *current_dir = p_sys->psz_current_dir;
- if (asprintf(&p_sys->psz_current_dir, "%s/%s",
- p_sys->psz_current_dir, dir_entry->psz_path) != -1)
- {
- ReadDir(p_intf);
- free(current_dir);
- }
- else
- p_sys->psz_current_dir = current_dir;
+ free(p_sys->psz_current_dir);
+ p_sys->psz_current_dir = psz_path;
+ ReadDir(p_intf);
p_sys->i_box_start = 0;
p_sys->i_box_idx = 0;
return true;
}
- char* psz_uri;
- if (asprintf(&psz_uri, "%s://%s/%s",
- dir_entry->b_file ? "file" : "directory",
- p_sys->psz_current_dir, dir_entry->psz_path) == -1)
- {
- return false;
- }
+ char *psz_uri = make_URI(psz_path, dir_entry->b_file ? "file"
+ : "directory");
+ free(psz_path);
+ if (psz_uri == NULL)
+ return true;
playlist_t *p_playlist = pl_Get(p_intf);
playlist_item_t *p_parent = p_sys->p_node;
}
else if (len)
{
+ char *psz_uri = make_URI(p_sys->psz_open_chain, NULL);
+ if (psz_uri == NULL)
+ {
+ p_sys->i_box_type = BOX_PLAYLIST;
+ return;
+ }
+
playlist_t *p_playlist = pl_Get(p_intf);
playlist_item_t *p_parent = p_sys->p_node, *p_current;
p_parent = p_parent->p_parent;
PL_UNLOCK;
- playlist_Add(p_playlist, p_sys->psz_open_chain, NULL,
+ playlist_Add(p_playlist, psz_uri, NULL,
PLAYLIST_APPEND|PLAYLIST_GO, PLAYLIST_END,
p_parent->p_input == p_playlist->p_local_onelevel->p_input,
false);
+ free(psz_uri);
p_sys->b_plidx_follow = true;
}
p_sys->i_box_type = BOX_PLAYLIST;
break;
default:
- if (len + 1 < search ? sizeof p_sys->psz_search_chain
- : sizeof p_sys->psz_open_chain)
+ if (len + 1 < (search ? sizeof p_sys->psz_search_chain
+ : sizeof p_sys->psz_open_chain))
{
str[len + 0] = (char) key;
str[len + 1] = '\0';