Mercurial > mplayer.hg
view get_path.c @ 15447:a246c4454efc
1.961: vo_quartz and vo_macosx support -ontop as well.
1.962: vo_ggi now supports ontop.
1.963: sync to x264 rev223 (options: ratetol, vbv_*)
+ also added: qp_step
1.964: Document -vf pp=ac.
1.965: Document -hr-edl-seek, based on a description by Oded Shimon.
1.966: added some hyphens in quoted examples
1.967: -edl works with MEncoder as well.
1.968: wording fix (skipped)
+ That key is really called 'Apfel'. happily fixed
author | kraymer |
---|---|
date | Fri, 13 May 2005 23:19:06 +0000 |
parents | 55d9619d75e5 |
children | 4be161b8e0ef |
line wrap: on
line source
/* * Get path to config dir/file. * * Return Values: * Returns the pointer to the ALLOCATED buffer containing the * zero terminated path string. This buffer has to be FREED * by the caller. * */ #ifdef MACOSX_BUNDLE #include <CoreFoundation/CoreFoundation.h> #include <sys/types.h> #include <sys/stat.h> #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #endif char *get_path(char *filename){ char *homedir; char *buff; #if defined(__MINGW32__) static char *config_dir = "/mplayer"; #else static char *config_dir = "/.mplayer"; #endif int len; #ifdef MACOSX_BUNDLE struct stat dummy; #endif if ((homedir = getenv("HOME")) == NULL) #if defined(__MINGW32__)||defined(__CYGWIN__) /*hack to get fonts etc. loaded outside of cygwin environment*/ { int i,imax=0; char exedir[260]; GetModuleFileNameA(NULL, exedir, 260); for(i=0; i< strlen(exedir);i++)if(exedir[i] =='\\'){exedir[i]='/';imax=i;} exedir[imax]='\0'; homedir = exedir; } #else return NULL; #endif len = strlen(homedir) + strlen(config_dir) + 1; if (filename == NULL) { if ((buff = (char *) malloc(len)) == NULL) return NULL; sprintf(buff, "%s%s", homedir, config_dir); } else { len += strlen(filename) + 1; if ((buff = (char *) malloc(len)) == NULL) return NULL; sprintf(buff, "%s%s/%s", homedir, config_dir, filename); } #ifdef MACOSX_BUNDLE if(stat(buff, &dummy)) { CFIndex maxlen=64; CFURLRef resources=NULL; free(buff); buff=NULL; resources=CFBundleCopyResourcesDirectoryURL(CFBundleGetMainBundle()); if(resources) { buff=malloc(maxlen); *buff=0; while(!CFURLGetFileSystemRepresentation(resources, true, buff, maxlen)) { maxlen*=2; buff=realloc(buff, maxlen); } CFRelease(resources); } if(buff&&filename) { if((strlen(filename)+strlen(buff)+2)>maxlen) { maxlen=strlen(filename)+strlen(buff)+2; buff=realloc(buff, maxlen); } strcat(buff,"/"); strcat(buff, filename); } } #endif mp_msg(MSGT_GLOBAL,MSGL_V,"get_path('%s') -> '%s'\n",filename,buff); return buff; }