Advertisement
Guest User

Helpers.js

a guest
Mar 30th, 2015
400
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.72 KB | None | 0 0
  1. // Generate/modify colours
  2. function RGBA(r, g, b, a) {
  3. return ((a << 24) | (r << 16) | (g << 8) | (b));
  4. }
  5.  
  6. function RGB(r, g, b) {
  7. return (0xff000000 | (r << 16) | (g << 8) | (b));
  8. }
  9.  
  10. function getAlpha(color) {
  11. return ((color >> 24) & 0xff);
  12. }
  13.  
  14. // Helper function for DrawString() and MeasureString()
  15. // args: h_align, v_align, trimming, flags
  16. function StringFormat() {
  17. var h_align = 0, v_align = 0, trimming = 0, flags = 0;
  18. switch (arguments.length)
  19. {
  20. // fall-thru
  21. case 4:
  22. flags = arguments[3];
  23. case 3:
  24. trimming = arguments[2];
  25. case 2:
  26. v_align = arguments[1];
  27. case 1:
  28. h_align = arguments[0];
  29. break;
  30. default:
  31. return 0;
  32. }
  33. return ((h_align << 28) | (v_align << 24) | (trimming << 20) | flags);
  34. }
  35.  
  36. var FontStyle = {
  37. Regular: 0,
  38. Bold: 1,
  39. Italic: 2,
  40. BoldItalic: 3,
  41. Underline: 4,
  42. Strikeout: 8
  43. };
  44.  
  45. // fonts and colors
  46.  
  47. // Used in window.GetColorCUI()
  48. ColorTypeCUI = {
  49. text: 0,
  50. selection_text: 1,
  51. inactive_selection_text: 2,
  52. background: 3,
  53. selection_background: 4,
  54. inactive_selection_background: 5,
  55. active_item_frame: 6
  56. };
  57.  
  58. // Used in window.GetFontCUI()
  59. FontTypeCUI = {
  60. items: 0,
  61. labels: 1
  62. };
  63.  
  64. // Used in window.GetColorDUI()
  65. ColorTypeDUI = {
  66. text: 0,
  67. background: 1,
  68. highlight: 2,
  69. selection: 3
  70. };
  71.  
  72. // Used in window.GetFontDUI()
  73. FontTypeDUI = {
  74. defaults: 0,
  75. tabs: 1,
  76. lists: 2,
  77. playlists: 3,
  78. statusbar: 4,
  79. console: 5
  80. };
  81.  
  82. var g_instancetype = window.InstanceType;
  83. var g_font = null;
  84. var ww = 0, wh = 0;
  85. var g_textcolor = 0, g_textcolor_hl = 0;
  86. var g_backcolor = 0;
  87. //var g_hot = false;
  88.  
  89. function get_font() {
  90. if (g_instancetype == 0) { // CUI
  91. g_font = window.GetFontCUI(FontTypeCUI.items);
  92. } else if (g_instancetype == 1) { // DUI
  93. g_font = window.GetFontDUI(FontTypeDUI.defaults);
  94. } else {
  95. // None
  96. }
  97. }
  98. get_font();
  99.  
  100. function get_colors() {
  101. if (g_instancetype == 0) { // CUI
  102. g_textcolor = window.GetColorCUI(ColorTypeCUI.text);
  103. g_textcolor_hl = window.GetColorCUI(ColorTypeCUI.text);
  104. g_backcolor = window.GetColorCUI(ColorTypeCUI.background);
  105. } else if (g_instancetype == 1) { // DUI
  106. g_textcolor = window.GetColorDUI(ColorTypeDUI.text);
  107. g_textcolor_hl = window.GetColorDUI(ColorTypeDUI.highlight);
  108. g_backcolor = window.GetColorDUI(ColorTypeDUI.background);
  109. } else {
  110. // None
  111. }
  112. }
  113. get_colors();
  114.  
  115. // PBO
  116. var PlaybackOrder = {
  117. Default: 0,
  118. RepeatPlaylist: 1,
  119. RepeatTrack: 2,
  120. Random: 3,
  121. ShuffleTracks: 4,
  122. ShuffleAlbums: 5,
  123. ShuffleFolders: 6
  124. }
  125.  
  126. /*
  127. // Convert Point size to Pixel size (Useful in gdi.Font() and such)
  128. function Point2Pixel(pt, dpi) {
  129. return (pt * dpi / 72);
  130. }
  131.  
  132. function getRed(color) {
  133. return ((color >> 16) & 0xff);
  134. }
  135.  
  136. function getGreen(color) {
  137. return ((color >> 8) & 0xff);
  138. }
  139.  
  140. function getBlue(color) {
  141. return (color & 0xff);
  142. }
  143.  
  144. function setAlpha(color, a) {
  145. return ((color & 0x00ffffff) | (a << 24));
  146. }
  147.  
  148. function setRed(color, r) {
  149. return ((color & 0xff00ffff) | (r << 16));
  150. }
  151.  
  152. function setGreen(color, g) {
  153. return ((color & 0xffff00ff) | (g << 8));
  154. }
  155.  
  156. function setBlue(color, b) {
  157. return ((color & 0xffffff00) | b);
  158. }
  159.  
  160. // Based on human hearing curve
  161. // 0 <= p <= 1
  162. // return a value value: -100 <= vol <= 0
  163. function pos2vol(pos) {
  164. return (50 * Math.log(0.99 * p + 0.01) / Math.LN10);
  165. }
  166.  
  167. // Inverse function of pos2vol()
  168. function vol2pos(v){
  169. return (Math.round(((Math.pow(10, v / 50) - 0.01) / 0.99)));
  170. }
  171.  
  172. // pre-calculated colors
  173. Colors = {
  174. AliceBlue : 0xFFF0F8FF,
  175. AntiqueWhite : 0xFFFAEBD7,
  176. Aqua : 0xFF00FFFF,
  177. Aquamarine : 0xFF7FFFD4,
  178. Azure : 0xFFF0FFFF,
  179. Beige : 0xFFF5F5DC,
  180. Bisque : 0xFFFFE4C4,
  181. Black : 0xFF000000,
  182. BlanchedAlmond : 0xFFFFEBCD,
  183. Blue : 0xFF0000FF,
  184. BlueViolet : 0xFF8A2BE2,
  185. Brown : 0xFFA52A2A,
  186. BurlyWood : 0xFFDEB887,
  187. CadetBlue : 0xFF5F9EA0,
  188. Chartreuse : 0xFF7FFF00,
  189. Chocolate : 0xFFD2691E,
  190. Coral : 0xFFFF7F50,
  191. CornflowerBlue : 0xFF6495ED,
  192. Cornsilk : 0xFFFFF8DC,
  193. Crimson : 0xFFDC143C,
  194. Cyan : 0xFF00FFFF,
  195. DarkBlue : 0xFF00008B,
  196. DarkCyan : 0xFF008B8B,
  197. DarkGoldenrod : 0xFFB8860B,
  198. DarkGray : 0xFFA9A9A9,
  199. DarkGreen : 0xFF006400,
  200. DarkKhaki : 0xFFBDB76B,
  201. DarkMagenta : 0xFF8B008B,
  202. DarkOliveGreen : 0xFF556B2F,
  203. DarkOrange : 0xFFFF8C00,
  204. DarkOrchid : 0xFF9932CC,
  205. DarkRed : 0xFF8B0000,
  206. DarkSalmon : 0xFFE9967A,
  207. DarkSeaGreen : 0xFF8FBC8B,
  208. DarkSlateBlue : 0xFF483D8B,
  209. DarkSlateGray : 0xFF2F4F4F,
  210. DarkTurquoise : 0xFF00CED1,
  211. DarkViolet : 0xFF9400D3,
  212. DeepPink : 0xFFFF1493,
  213. DeepSkyBlue : 0xFF00BFFF,
  214. DimGray : 0xFF696969,
  215. DodgerBlue : 0xFF1E90FF,
  216. Firebrick : 0xFFB22222,
  217. FloralWhite : 0xFFFFFAF0,
  218. ForestGreen : 0xFF228B22,
  219. Fuchsia : 0xFFFF00FF,
  220. Gainsboro : 0xFFDCDCDC,
  221. GhostWhite : 0xFFF8F8FF,
  222. Gold : 0xFFFFD700,
  223. Goldenrod : 0xFFDAA520,
  224. Gray : 0xFF808080,
  225. Green : 0xFF008000,
  226. GreenYellow : 0xFFADFF2F,
  227. Honeydew : 0xFFF0FFF0,
  228. HotPink : 0xFFFF69B4,
  229. IndianRed : 0xFFCD5C5C,
  230. Indigo : 0xFF4B0082,
  231. Ivory : 0xFFFFFFF0,
  232. Khaki : 0xFFF0E68C,
  233. Lavender : 0xFFE6E6FA,
  234. LavenderBlush : 0xFFFFF0F5,
  235. LawnGreen : 0xFF7CFC00,
  236. LemonChiffon : 0xFFFFFACD,
  237. LightBlue : 0xFFADD8E6,
  238. LightCoral : 0xFFF08080,
  239. LightCyan : 0xFFE0FFFF,
  240. LightGoldenrodYellow : 0xFFFAFAD2,
  241. LightGray : 0xFFD3D3D3,
  242. LightGreen : 0xFF90EE90,
  243. LightPink : 0xFFFFB6C1,
  244. LightSalmon : 0xFFFFA07A,
  245. LightSeaGreen : 0xFF20B2AA,
  246. LightSkyBlue : 0xFF87CEFA,
  247. LightSlateGray : 0xFF778899,
  248. LightSteelBlue : 0xFFB0C4DE,
  249. LightYellow : 0xFFFFFFE0,
  250. Lime : 0xFF00FF00,
  251. LimeGreen : 0xFF32CD32,
  252. Linen : 0xFFFAF0E6,
  253. Magenta : 0xFFFF00FF,
  254. Maroon : 0xFF800000,
  255. MediumAquamarine : 0xFF66CDAA,
  256. MediumBlue : 0xFF0000CD,
  257. MediumOrchid : 0xFFBA55D3,
  258. MediumPurple : 0xFF9370DB,
  259. MediumSeaGreen : 0xFF3CB371,
  260. MediumSlateBlue : 0xFF7B68EE,
  261. MediumSpringGreen : 0xFF00FA9A,
  262. MediumTurquoise : 0xFF48D1CC,
  263. MediumVioletRed : 0xFFC71585,
  264. MidnightBlue : 0xFF191970,
  265. MintCream : 0xFFF5FFFA,
  266. MistyRose : 0xFFFFE4E1,
  267. Moccasin : 0xFFFFE4B5,
  268. NavajoWhite : 0xFFFFDEAD,
  269. Navy : 0xFF000080,
  270. OldLace : 0xFFFDF5E6,
  271. Olive : 0xFF808000,
  272. OliveDrab : 0xFF6B8E23,
  273. Orange : 0xFFFFA500,
  274. OrangeRed : 0xFFFF4500,
  275. Orchid : 0xFFDA70D6,
  276. PaleGoldenrod : 0xFFEEE8AA,
  277. PaleGreen : 0xFF98FB98,
  278. PaleTurquoise : 0xFFAFEEEE,
  279. PaleVioletRed : 0xFFDB7093,
  280. PapayaWhip : 0xFFFFEFD5,
  281. PeachPuff : 0xFFFFDAB9,
  282. Peru : 0xFFCD853F,
  283. Pink : 0xFFFFC0CB,
  284. Plum : 0xFFDDA0DD,
  285. PowderBlue : 0xFFB0E0E6,
  286. Purple : 0xFF800080,
  287. Red : 0xFFFF0000,
  288. RosyBrown : 0xFFBC8F8F,
  289. RoyalBlue : 0xFF4169E1,
  290. SaddleBrown : 0xFF8B4513,
  291. Salmon : 0xFFFA8072,
  292. SandyBrown : 0xFFF4A460,
  293. SeaGreen : 0xFF2E8B57,
  294. SeaShell : 0xFFFFF5EE,
  295. Sienna : 0xFFA0522D,
  296. Silver : 0xFFC0C0C0,
  297. SkyBlue : 0xFF87CEEB,
  298. SlateBlue : 0xFF6A5ACD,
  299. SlateGray : 0xFF708090,
  300. Snow : 0xFFFFFAFA,
  301. SpringGreen : 0xFF00FF7F,
  302. SteelBlue : 0xFF4682B4,
  303. Tan : 0xFFD2B48C,
  304. Teal : 0xFF008080,
  305. Thistle : 0xFFD8BFD8,
  306. Tomato : 0xFFFF6347,
  307. Transparent : 0x00FFFFFF,
  308. Turquoise : 0xFF40E0D0,
  309. Violet : 0xFFEE82EE,
  310. Wheat : 0xFFF5DEB3,
  311. White : 0xFFFFFFFF,
  312. WhiteSmoke : 0xFFF5F5F5,
  313. Yellow : 0xFFFFFF00,
  314. YellowGreen : 0xFF9ACD32
  315. };
  316.  
  317. var artist = ["Artist","%artist%"];
  318. var album = ["Album","%album%"];
  319. var title = ["Title","%title%"];
  320. var discnumber = ["Discnumber","%discnumber%"];
  321. var tracknumber = ["Tracknumber","%tracknumber%"];
  322. var date = ["Date","%date%"];
  323. var genre = ["Genre","%genre%"];
  324. var album_artist = ["Album Artist","%album artist%"];
  325. var composer = ["Composer",""];
  326. var performer = ["Performer",""];
  327. var tracknumber = ["Tracknumber","%tracknumber%"];
  328. var totaltracks = ["Total Tracks","%totaltracks%"];
  329. var discnumber = ["Discnumber","%discnumber%"];
  330. var totaldiscs = ["Total Discs","%totaldiscs%"];
  331. var comment = ["Comment","%comment%"];
  332. var first_played = ["First Played","%first_played%"];
  333. var last_played = ["Last Played","%last_played%"];
  334. var play_count = ["Play Pount","%play_count%"];
  335. var played_per_day = ["Played Per Day","%played_per_day%"];
  336. var added = ["Added","%added%"];
  337. var rating = ["Rating","%rating%"];
  338. var rating_stars = ["Rating","%rating_stars_fixed%"];
  339. var bitrate = ["Bitrate","%bitrate%"];
  340. var channels = ["Channels","%channels%"];
  341. var filesize = ["Filesize","%filesize%"];
  342. var filesize_natural = ["Filesize Natural","%filesize_natural%"];
  343. var samplerate = ["Samplerate","%samplerate%"];
  344. var codec = ["Codec","%codec%"];
  345. var playback_time = ["Playback Time","%playback_time%"];
  346. var playback_time_seconds = ["Playback Time Seconds","%playback_time_seconds% "];
  347. var playback_time_remaining = ["Playback Time Remaining","%playback_time_remaining%"];
  348. var length = ["Length","%length%"];
  349. var length_ex = ["Length ex","%length_ex%"];
  350. var album_gain = ["Album Gain","%replaygain_album_gain%"];
  351. var track_gain = ["Track Gain","%replaygain_track_gain%"];
  352. var filename = ["Filename","%filename%"];
  353. var directoryname = ["Directoryname","%directoryname%"];
  354.  
  355. //var WshShell = new ActiveXObject("WScript.Shell");
  356. //var hWnd = utils.GetHWND("{97E27FAA-C0B3-4b8e-A693-ED7881E99FC1}");
  357.  
  358. Array.prototype.clean = function(deleteValue) {
  359. for (var i = 0; i < this.length; i++) {
  360. if (this[i] == deleteValue) {
  361. this.splice(i, 1);
  362. }
  363. }
  364. return this;
  365. };
  366.  
  367. Array.prototype.sum = function(){
  368. for(var i=0,sum=0;i<this.length;sum+=this[i++]);
  369. return sum;
  370. }
  371. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement