Drive Mapping

Proposed drive mappings Currently: U = Used in place of Q for skins/scripts/plugins/vis (and anything else in the root of Q) - currently we check U and then Q for these things manually. Q = System (should not be writable) P = Profile Z = Temporary T = UserData - the "masterusers" profile, normally Q:\userdata, but can be mapped elsewhere (on xbox at least) via Q:\system\profiles.xml Proposal: Q = system This is where we install stuff, it never changes (except on update), it's not writable Z = Temporary This is where we store file temporarily. It's not shared between users/instances/runs. Very volatile. U = No idea what to call this Store mutable data here which doesn't belong to any user. Is there anything we need besides profiles.xml? Should this be writable by scripts or only xbmc itself? P = profiles Give some default profile to begin with, can create more profiles. If some file doesn't exist in here, read from Q. On write, copy from Q and make changes.

New names Currently we support Windows like drive mappings. This is only because of the xbox, and moving forward we would like to change this to a protocol string (system://) or an environment variable (ENV[system]). Proposed names: Q -> system:// Z -> temp:// P -> profile:// or user:// U -> global://? Do we really need this? It should only be writable by the app itself.

Another possible naming: xbmc://system@path

More suggestions: We should perhaps have "drives" for plugins, scripts, skins, themes, sounds (since those are subjects to install) and also we need a user (for userdata/scriptdata) and one userdata/scriptdata (globally for all users) Have no real idea what to name these.