1 /*
2   LICENSE
3   -------
4 Copyright 2005-2012 Nullsoft, Inc.
5 All rights reserved.
6 
7 Redistribution and use in source and binary forms, with or without modification,
8 are permitted provided that the following conditions are met:
9 
10   * Redistributions of source code must retain the above copyright notice,
11     this list of conditions and the following disclaimer.
12 
13   * Redistributions in binary form must reproduce the above copyright notice,
14     this list of conditions and the following disclaimer in the documentation
15     and/or other materials provided with the distribution.
16 
17   * Neither the name of Nullsoft nor the names of its contributors may be used to
18     endorse or promote products derived from this software without specific prior written permission.
19 
20 THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR
21 IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
22 FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
23 CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24 DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
26 IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
27 OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29 
30 #ifndef __NULLSOFT_DX8_PLUGIN_SHELL_DEFINES_H__
31 #define __NULLSOFT_DX8_PLUGIN_SHELL_DEFINES_H__ 1
32 
33 // APPNAME should be something like "MyPlugin 1.0".
34 // This is the name that will appear in Winamp's list of installed plugins.
35 // Try to include the version number with the name.
36 // Note: to change the name of the *file* (DLL) that the plugin is
37 //   compiled to, go to Project Settings -> Link tab -> and change the
38 //   'output file name'.  Don't forget to do it for both Debug AND
39 //   Release builds!
40 #define SHORTNAME        "MilkDrop 2" // used as window caption for both MilkDrop and the config panel.  avoid numbers or punctuation; when 'integrate with winamp' option is enabled, these characters don't always work with all skins.
41 #define LONGNAME         "MilkDrop v2.25c" // appears at bottom of config panel
42 #define LONGNAMEW        L"MilkDrop v2.25c" // appears at bottom of config panel
43 
44 // INT_VERSION is the major version #, multipled by 100 (ie. version 1.02
45 // would be 102).  If the app goes to read in the INI file and sees that
46 // the INI file is from an older version of your plugin, it will ignore
47 // their old settings and reset them to the defaults for the new version;
48 // but that only works if you keep this value up-to-date.  ***To disable this
49 // behavior, just always leave this at 100. ***
50 #define INT_VERSION     200
51 // INT_SUBVERSION is the minor version #, counting up from 0 as you do
52 // mini-releases.  If the plugin goes to read the old INI file and sees that
53 // the major version # is the same but the minor version # is not, it will,
54 // again, ignore their old settings and reset them to the defaults for the
55 // new version.  ***To disable this behavior, just always leave this at 0. ***
56 #define INT_SUBVERSION  5      //straight=0, a=1, b=2, ...
57 
58 // SUBDIR puts milkdrop's documentation, INI file, presets folder, etc.
59 // in a subdir underneath Winamp\Plugins.
60 #define SUBDIR  L"Milkdrop2\\"   //""
61 
62 // INIFILE is the name of the .INI file that will save the user's
63 // config panel settings.  Do not include a path; just give the filename.
64 // The actual file will be stored in the WINAMP\PLUGINS directory,
65 // OR POSSIBLY c:\application data\...(user)...\winamp\plugins!!! - if
66 // they have sep. settings for each user!
67 #define INIFILE         L"milk2.ini"      //*** DO NOT PUT IN A SUBDIR because on save, if dir doesn't already exist,
68                                          //     it won't be able to save the INI file.
69 #define MSG_INIFILE     L"milk2_msg.ini"  //*** could be in c:\program files\winamp\plugins, or in
70 #define IMG_INIFILE     L"milk2_img.ini"  //                c:\application data\...user...\winamp\plugins !!
71 #define ADAPTERSFILE	L"milk2_adapters.txt"
72 
73 // DOCFILE is the name of the documentation file that you'll write
74 // for your users.  Do not include a path; just give the filename.
75 // When a user clicks the 'View Docs' button on the config panel,
76 // the plugin will try to display this file, located in the
77 // WINAMP\PLUGINS directory.
78 //
79 // ***Note that the button will be invisible (on the config panel)
80 // at runtime if this string is empty.***
81 #define DOCFILE         SUBDIR L"docs\\milkdrop.html"     // set this to something like "myplugin.html"
82 
83 // PLUGIN_WEB_URL is the web address of the homepage for your plugin.
84 // It should be a well-formed URL (http://...).  When a user clicks
85 // the 'View Webpage' button on the config panel, the plugin will
86 // launch their default browser to display this page.
87 //
88 // ***Note that the button will be invisible (on the config panel)
89 // at runtime if this string is empty.***
90 #define PLUGIN_WEB_URL  L"http://www.nullsoft.com/free/milkdrop/"   // set this to something like "http://www.myplugin.com/"
91 
92 // The following two strings - AUTHOR_NAME and COPYRIGHT - will be used
93 // in a little box in the config panel, to identify the author & copyright
94 // holder of the plugin.  Keep them short so they fit in the box.
95 #define AUTHOR_NAME     L"Ryan Geiss"
96 #define COPYRIGHT       L"(c) 2001-2013 Nullsoft, Inc."
97 
98 // CLASSNAME is the name of the window class that the plugin will
99 // use.  You don't want this to overlap with any other plugins
100 // or applications that are running, so change this to something
101 // that will probably be unique.  For example, if your plugin was
102 // called Libido, then "LibidoClass" would probably be a safe bet.
103 #define CLASSNAME       L"MilkDrop2"
104 
105 // Here you can give names to the buttons (~tabs) along the top
106 // of the config panel.  Each button, when clicked, will bring
107 // up the corresponding 'property page' (embedded dialog),
108 // IDD_PROPPAGE_1 through IDD_PROPPAGE_8.  If you want less than
109 // 8 buttons to show up, just leave their names as blank.  For
110 // full instructions on how to add a new tab/page, see
111 // DOCUMENTATION.TXT.
112 //#define CONFIG_PANEL_BUTTON_1 " Common Settings "	// nPage==1
113 //#define CONFIG_PANEL_BUTTON_2 "  MORE SETTINGS  "	// nPage==2
114 //#define CONFIG_PANEL_BUTTON_3 " Artist Tools "		// nPage==3
115 //#define CONFIG_PANEL_BUTTON_4 " Transitions "		// nPage==4
116 //#define CONFIG_PANEL_BUTTON_5 ""                    // nPage==5
117 //#define CONFIG_PANEL_BUTTON_6 ""                    // nPage==6
118 //#define CONFIG_PANEL_BUTTON_7 ""                    // nPage==7
119 //#define CONFIG_PANEL_BUTTON_8 ""                    // nPage==8
120 // As if 2.0e, these strings are defined in the stringtable of the dll
121 // and otherwise work the same as these header defines.
122 // (The equivelent of "" in these is a single space now)
123 
124 // adjust the defaults for the 4 built-in fonts here.
125 // (note: if you want the font to be available on 98 + ME + 2k + XP, use one of the following...)
126 //     arial
127 //     courier 10-12-15
128 //     courier new
129 //     comic san[s] ms
130 //     lucida console
131 //     ms sans serif
132 //     ms serif
133 //     small fonts
134 //     symbol 8-10-12-14-18-24
135 //     tahoma
136 //     times new roman
137 //     verdana
138 //     webdings
139 #define SIMPLE_FONT_DEFAULT_FACE L"Courier" //"MS Sans Serif"  - changed to Courier because menus + code FAR more legible!
140 #define SIMPLE_FONT_DEFAULT_SIZE 12 //16
141 #define SIMPLE_FONT_DEFAULT_BOLD 0
142 #define SIMPLE_FONT_DEFAULT_ITAL 0
143 #define SIMPLE_FONT_DEFAULT_AA   0
144 #define DECORATIVE_FONT_DEFAULT_FACE L"Times New Roman"
145 #define DECORATIVE_FONT_DEFAULT_SIZE 24
146 #define DECORATIVE_FONT_DEFAULT_BOLD 0
147 #define DECORATIVE_FONT_DEFAULT_ITAL 1
148 #define DECORATIVE_FONT_DEFAULT_AA   1
149 #define HELPSCREEN_FONT_DEFAULT_FACE L"MS Sans Serif"
150 #define HELPSCREEN_FONT_DEFAULT_SIZE 14  // NOTE: should fit on 640x480 screen!
151 #define HELPSCREEN_FONT_DEFAULT_BOLD 1
152 #define HELPSCREEN_FONT_DEFAULT_ITAL 0
153 #define HELPSCREEN_FONT_DEFAULT_AA   0
154 #define PLAYLIST_FONT_DEFAULT_FACE L"Arial"
155 #define PLAYLIST_FONT_DEFAULT_SIZE 16
156 #define PLAYLIST_FONT_DEFAULT_BOLD 0
157 #define PLAYLIST_FONT_DEFAULT_ITAL 0
158 #define PLAYLIST_FONT_DEFAULT_AA   0
159 
160 // automatically add extra fonts to the config panel
161 // by simply #defining them here, UP TO A MAX OF 5 EXTRA FONTS.
162 // access the font by calling GetFont(EXTRA_1) for extra font #1,
163 // GetExtraFont(EXTRA_2) for extra font #2, and so on.
164 #define NUM_EXTRA_FONTS 2  // <- don't exceed 5 here!
165 #define TOOLTIP_FONT EXTRA_1
166 //#define EXTRA_FONT_1_NAME         "Tooltips"
167 // defined in the stringtable resources now since 2.0e
168 #define EXTRA_FONT_1_DEFAULT_FACE L"Arial"
169 #define EXTRA_FONT_1_DEFAULT_SIZE 14
170 #define EXTRA_FONT_1_DEFAULT_BOLD 0
171 #define EXTRA_FONT_1_DEFAULT_ITAL 0
172 #define EXTRA_FONT_1_DEFAULT_AA   0
173 #define SONGTITLE_FONT EXTRA_2
174 //#define EXTRA_FONT_2_NAME         "Animated Songtitles"
175 // defined in the stringtable resources now since 2.0e
176 #define EXTRA_FONT_2_DEFAULT_FACE L"Times New Roman"
177 #define EXTRA_FONT_2_DEFAULT_SIZE 18
178 #define EXTRA_FONT_2_DEFAULT_BOLD 0
179 #define EXTRA_FONT_2_DEFAULT_ITAL 1
180 #define EXTRA_FONT_2_DEFAULT_AA   1
181 
182 #define WINDOWCAPTION   SHORTNAME   // the caption that will appear on the plugin window
183 #define DLLDESC         LONGNAME    // the desc. of this DLL, as it appears in Winamp's list of viz plugins
184 #define MODULEDESC      LONGNAME    // the desc. of this viz module within the DLL (..this framework is set up for just 1 module per DLL)
185 
186 // Finally, a few parameters that will control how things are done
187 // inside the plugin shell:
188 #define NUM_WAVEFORM_SAMPLES         480   // RANGE: 32-576.  This is the # of samples of waveform data that you want.
189                                            //   Note that if it is less than 576, then VMS will do its best
190                                            //   to line up the waveforms from frame to frame for you, using
191                                            //   the extra samples as 'squish' space.
192                                            // Note: the more 'slush' samples you leave, the better the alignment
193                                            //   will be.  512 samples gives you decent alignment; 400 samples
194                                            //   leaves room for fantastic alignment.
195                                            // Observe that if you specify a value here (say 400) and then only
196                                            //   render a sub-portion of that in some cases (say, 200 samples),
197                                            //   make sure you render the *middle* 200 samples (#100-300), because
198                                            //   the alignment happens *mostly at the center*.
199 #define NUM_FREQUENCIES              512   // # of freq. samples you want *out* of the FFT, for 0-11kHz range.
200                                            //   ** this must be a power of 2!
201                                            //   ** the actual FFT will use twice this many frequencies **
202 
203 #define TEXT_MARGIN                  10    // the # of pixels of margin to leave between text and the edge of the screen
204 #define PLAYLIST_INNER_MARGIN        4     // the extra margin between the playlist box and the text inside
205 
206 #define PLAYLIST_COLOR_PLAYING_TRACK 0xFFCCFF00 // alpha|red|green|blue
207 #define PLAYLIST_COLOR_HILITE_TRACK  0xFFFF5050
208 #define PLAYLIST_COLOR_BOTH          0xFFFFCC22
209 #define PLAYLIST_COLOR_NORMAL        0xFFCCCCCC
210 
211 #define MENU_COLOR    0xFFCCCCCC
212 #define MENU_HILITE_COLOR 0xFFFF4400
213 #define DIR_COLOR     0xFF88CCFF
214 #define TOOLTIP_COLOR 0xFFBBBBCC
215 
216 #define MAX_PRESETS_PER_PAGE 32
217 
218 //#define PRESS_F1_MSG                 "Press F1 for Help " // leave extra space @ end, so italicized fonts don't get clipped
219 // defined in the stringtable resources now since 2.0e
220 #define PRESS_F1_DUR                 3.0f // in seconds
221 #define PRESS_F1_EXP                 10.0f // exponent for how quickly it accelerates to leave the screen. 1 = linear; >1 = stays & then dashes off @ end
222 
223 #endif