1 /**********************************************************************
2 
3   Audacity: A Digital Audio Editor
4 
5   PlatformCompatibility.h
6 
7   Platform-specific compatibility functions
8 
9   This file implements functions needed to work around
10   platform-specific problems and which cannot be solved by a simple
11   #ifdef/#endif plus two or three lines additional code. Wherever
12   possible, the implementation should be such, that the function is
13   implemented on every platform, but is a dummy for those platforms
14   on which it is not needed, so additional #ifdef's are unnecessary.
15 
16   Markus Meyer
17 
18 **********************************************************************/
19 
20 #ifndef __AUDACITY_COMPATIBILITY__
21 #define __AUDACITY_COMPATIBILITY__
22 
23 #include "Identifier.h"
24 
25 class FILES_API PlatformCompatibility
26 {
27 public:
28    //
29    // On Win32, this function gets the long file name (like
30    // "C:\Program Files\Project.aup3") from a short file name like
31    // "C:\PROGRA~1\PROJEC~1.AUP. On other systems, the function
32    // just returns the exact string it is given.
33    //
34    static FilePath GetLongFileName(const FilePath& shortFileName);
35 
36    //
37    // Get filename and path of executable (e.g. "/usr/bin/audacity" on
38    // Linux or "C:\Program Files\Audacity\Audacity.exe" on Windows)
39    // This string is unchanging
40    //
41    static const FilePath &GetExecutablePath();
42 };
43 
44 #endif
45