mirror of
https://github.com/mpv-player/mpv
synced 2024-12-27 09:32:40 +00:00
d3a3cfe54c
Somewhat less ifdeffery, higher flexibility. Now there are 3 separate config file resolvers for 3 platforms (unix, win, osx), and they can still interact with each other somewhat. For example, OSX for now uses most of Unix, but adds the OSX bundle path. This can be extended to resolve very specific platform paths, such as location of the desktop. Most of the Unix specific code moves to path-unix.c. The behavior should be the same - if not, it is likely a bug.
23 lines
970 B
C
23 lines
970 B
C
#ifndef OSDEP_PATH_H
|
|
#define OSDEP_PATH_H
|
|
|
|
// Return a platform-specific path, identified by the type parameter. If the
|
|
// return value is allocated, talloc_ctx is used as talloc parent context.
|
|
//
|
|
// The following type values are defined:
|
|
// "home" the native mpv-specific user config dir
|
|
// "old_home" same as "home", but lesser priority (compatibility)
|
|
// "osxbundle" OSX bundle path
|
|
// "global" the least priority, global config file location
|
|
//
|
|
// It is allowed to return a static string, so the caller must set talloc_ctx
|
|
// to something other than NULL to avoid memory leaks.
|
|
typedef const char *(*mp_get_platform_path_cb)(void *talloc_ctx, const char *type);
|
|
|
|
// Conforming to mp_get_platform_path_cb.
|
|
const char *mp_get_platform_path_win(void *talloc_ctx, const char *type);
|
|
const char *mp_get_platform_path_osx(void *talloc_ctx, const char *type);
|
|
const char *mp_get_platform_path_unix(void *talloc_ctx, const char *type);
|
|
|
|
#endif
|