bool_t sal_media_description_has_dir(const SalMediaDescription *md, SalStreamDir stream_dir){ if (stream_dir==SalStreamRecvOnly){ return has_dir(md, SalStreamRecvOnly) && !(has_dir(md,SalStreamSendOnly) || has_dir(md,SalStreamSendRecv)); }else if (stream_dir==SalStreamSendOnly){ return has_dir(md, SalStreamSendOnly) && !(has_dir(md,SalStreamRecvOnly) || has_dir(md,SalStreamSendRecv)); }else if (stream_dir==SalStreamSendRecv){ return has_dir(md,SalStreamSendRecv); }else{ /*SalStreamInactive*/ if (has_dir(md,SalStreamSendOnly) || has_dir(md,SalStreamSendRecv) || has_dir(md,SalStreamRecvOnly)) return FALSE; else return TRUE; } return FALSE; }
static void list_drives(void) { static struct list drive_list; char dir[PATH_MAX], vis[PATH_MAX]; const char *home = getenv("HOME"); const char *user = getenv("USER"); int i; ui_list_begin(&drive_list, nelem(common_dirs), 0, nelem(common_dirs) * ui.lineheight + 4); for (i = 0; i < nelem(common_dirs); ++i) if (has_dir(home, user, i, dir, vis)) if (ui_list_item(&drive_list, common_dirs[i].name, vis, 0)) load_dir(dir); ui_list_end(&drive_list); }