defines.h 12 KB

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