Prevent memory leak and superfluous status notifications.
[wine] / programs / winecfg / properties.c
1 /*
2  * WineCfg properties management
3  *
4  * Copyright 2002 Jaco Greeff
5  * Copyright 2003 Dimitrie O. Paun
6  *
7  * This library is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU Lesser General Public
9  * License as published by the Free Software Foundation; either
10  * version 2.1 of the License, or (at your option) any later version.
11  *
12  * This library is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15  * Lesser General Public License for more details.
16  *
17  * You should have received a copy of the GNU Lesser General Public
18  * License along with this library; if not, write to the Free Software
19  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20  *
21  */
22
23 #include <windows.h>
24
25 #include "properties.h"
26
27 static VERSION_DESC sWinVersions[] = {
28     {"", "Use default(Global setting)"},
29     {"win20", "Windows 2.0"},
30     {"win30", "Windows 3.0"},
31     {"win31", "Windows 3.1"},
32     {"nt351", "Windows NT 3.5"},
33     {"nt40", "Windows NT 4.0"},
34     {"win95", "Windows 95"},
35     {"win98", "Windows 98"},
36     {"winme", "Windows ME"},
37     {"win2k", "Windows 2000"},
38     {"winxp", "Windows XP"},
39     {"win2003", "Windows 2003"},
40     {"", ""}
41 };
42
43 static VERSION_DESC sDOSVersions[] = {
44     {"", "Use default(Global setting)"},
45     {"6.22", "MS-DOS 6.22"},
46     {"", ""}
47 };
48
49 #if 0
50 static VERSION_DESC sWineDrivers[] = {
51     {"x11drv", "X11 Interface"},
52     {"ttydrv", "TTY Interface"},
53     {"", ""}
54 };
55 #endif
56
57 static DLL_DESC sDLLType[] = {
58     {"oleaut32", DLL_BUILTIN},
59     {"ole32", DLL_BUILTIN},
60     {"commdlg", DLL_BUILTIN},
61     {"comdlg32", DLL_BUILTIN},
62     {"shell", DLL_BUILTIN},
63     {"shell32", DLL_BUILTIN},
64     {"shfolder", DLL_BUILTIN},
65     {"shlwapi", DLL_BUILTIN},
66     {"shdocvw", DLL_BUILTIN},
67     {"advapi32", DLL_BUILTIN},
68     {"msvcrt", DLL_NATIVE},
69     {"mciavi.drv", DLL_NATIVE},
70     {"mcianim.drv", DLL_NATIVE},
71     {"*", DLL_NATIVE},
72     {"", -1}
73 };
74
75 static AUDIO_DRIVER sAudioDrivers[] = {
76   {"Alsa", "winealsa.drv"},
77   {"aRts", "winearts.drv"},
78   {"OSS", "wineoss.drv"},
79   {"Jack", "winejack.drv"},
80   {"Nas", "winenas.drv"},
81   {"Audio IO(Solaris)", "wineaudioio.drv"},
82   {"Disable sound", ""},
83   {"", ""}
84 };
85  
86
87
88 /*****************************************************************************
89  */
90 VERSION_DESC* getWinVersions(void)
91 {
92     return sWinVersions;
93 }
94
95
96 /*****************************************************************************
97  */
98 VERSION_DESC* getDOSVersions(void)
99 {
100     return sDOSVersions;
101 }
102
103
104 /*****************************************************************************
105  */
106 DLL_DESC* getDLLDefaults(void)
107 {
108     return sDLLType;
109 }
110
111 /*****************************************************************************
112  */
113 AUDIO_DRIVER* getAudioDrivers(void)
114 {
115     return sAudioDrivers;
116 }
117
118
119 /* Functions to convert from version to description and back */
120 char* getVersionFromDescription(VERSION_DESC* pVer, char *desc)
121 {
122   for (; *pVer->szVersion; pVer++)
123   {
124     if(!strcasecmp(pVer->szDescription, desc))
125       return pVer->szVersion;
126   }
127
128   return NULL;
129 }
130
131 char* getDescriptionFromVersion(VERSION_DESC* pVer, char *ver)
132 {
133   for (; *pVer->szDescription; pVer++)
134   {
135     if(!strcasecmp(pVer->szVersion, ver))
136       return pVer->szDescription;
137   }
138
139   return NULL;
140 }