home *** CD-ROM | disk | FTP | other *** search
/ PC World 1998 December / PCWorld_1998-12_cd.iso / software / servis / Ostatni / Winamp / winam203.exe / FRONTEND.TXT < prev    next >
Text File  |  1998-10-08  |  6KB  |  166 lines

  1. #define WM_WA_IPC WM_USER
  2. // messages are sent to the winamp window using:
  3. //result = SendMessage(hwnd_winamp,WM_WA_IPC,command_data,command);
  4.  
  5.  
  6. /* Messages available to send */
  7.  
  8. #define IPC_GETVERSION 0
  9. /*
  10.     IPC_GETVERSION is sent to the window, and the return value is the version
  11.         Version 1.55 = 0x1551
  12.         Version 1.6b = 0x16A0
  13.         Version 1.60 = 0x16AF
  14.         Version 1.61 = 0x16B0
  15.         Version 1.62 = 0x16B1
  16.         Version 1.64 = 0x16B3
  17.         Version 1.666 = 0x16B4
  18.         Version 1.69 = 0x16B5
  19.         Version 1.70 = 0x1700
  20.         Version 1.72 = 0x1702
  21.         Version 1.73 = 0x1703
  22.         Version 1.80 = 0x1800
  23.         Version 1.81 = 0x1801
  24.         Version 1.82 = 0x1802
  25.         Version 1.90 = 0x1900
  26.         Version 1.91 = 0x1901
  27.                 Version 2.00 = 0x2000
  28.                 Version 2.01 = 0x2001
  29.                 Version 2.02 = 0x2002
  30.                 Version 2.03 = 0x2003
  31.     the command_data parameter is 0.
  32.     so, 
  33.     if (SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETVERSION) != 0x1551)
  34.         MessageBox(NULL,"Error, Winamp 1.55 not found","Warning",MB_OK);
  35. */
  36.  
  37.  
  38. #define IPC_PLAYFILE 100
  39. /*
  40.     IPC_PLAYFILE is sent to the window for each char of a null terminated string of a file to ADD
  41.     to the playlist (it doesn't change the playing status). Note, if you pass a file with the extension
  42.     ".m3u" it will be treated as a playlist.
  43.     for example:
  44.         char *file = "C:\\download\\booga.mp3";
  45.         int x;
  46.         for (x = 0; x <= strlen(file); x ++)
  47.             PostMessage(hwnd_winamp,WM_WA_IPC,(LPARAM)file[x],IPC_PLAYFILE);
  48.     will add "C:\download\booga.mp3" to the end of the playlist
  49. */
  50.  
  51. #define IPC_DELETE 101
  52. /* 
  53.     IPC_DELETE deletes the internal Winamp playlist.
  54.         SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_DELETE);
  55. */
  56.  
  57. #define IPC_STARTPLAY 102
  58. /* 
  59.     IPC_STARTPLAY starts the playing.
  60.         SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_STARTPLAY);
  61. */
  62.  
  63. #define IPC_CHDIR 103
  64. /*
  65.     IPC_CHDIR is sent to the window for each char of a null terminated string of a directory to change to
  66.     for example:
  67.         char *dir = "C:\\Download";
  68.         int x;
  69.         for (x = 0; x <= strlen(file); x ++)
  70.             PostMessage(hwnd_winamp,WM_WA_IPC,(LPARAM)dir[x],IPC_PLAYFILE);
  71.     will change the winamp process to "C:\download" (useful for relative pathnames and loading playlists)
  72.  
  73. */
  74. #define IPC_ISPLAYING 104
  75. /*
  76.     IPC_ISPLAYING returns the status of playback.
  77.     If it returns 1, it is playing. if it returns 3, it is paused, if it returns 0, it is not playing.
  78.     If it returns something other than 1,3,or 0, something is screwed.
  79.     isplaying = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_ISPLAYING);
  80. */
  81.  
  82.  
  83. #define IPC_GETOUTPUTTIME 105
  84. /*
  85.     IPC_GETOUTPUTTIME returns the position in milliseconds of the 
  86.           current song (lParam = 0), or the song length, in seconds (lParam = 1).
  87.     Returns -1 if not playing or error.
  88.         
  89.     song_pos = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETOUTPUTTIME);
  90.     song_len = SendMessage(hwnd_winamp,WM_WA_IPC,1,IPC_GETOUTPUTTIME);
  91. */
  92.  
  93. #define IPC_JUMPTOTIME 106
  94. /*
  95.         *ONLY AVAILABLE IN v1.60+*
  96.     IPC_JUMPTOTIME sets the position in milliseconds of the current song (approximately)
  97.     Returns -1 if not playing, 1 on eof, or 0 if successful
  98.     SendMessage(hwnd_winamp,WM_WA_IPC,new_song_pos,IPC_JUMPTOTIME);
  99. */
  100. #define IPC_WRITEPLAYLIST 120
  101. /*
  102.         *ONLY AVAILABLE IN v1.666+*
  103.     IPC_WRITEPLAYLIST writes the current playlist to <winampdir>\\Winamp.pl
  104.     int cursong =  SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_WRITEPLAYLIST);
  105.     (cursong is the index of the current song in the playlist)
  106. */
  107.  
  108. // winamp 2.0+ (pre2 0902+)
  109. #define IPC_SETPLAYLISTPOS 121
  110. /* 2.0 + ... wParam == playlist position */
  111.  
  112. #define IPC_SETVOLUME 122
  113. /* 2.0 + ... wParam == volume 0-255 */
  114. #define IPC_SETPANNING 123
  115. /* 2.0 + ... wParam == pannign 0-255 */
  116. #define IPC_GETLISTLENGTH 124
  117. /* 2.0 + ... returns playlist lenght in tracks */
  118.  
  119.  
  120. // THESE MIGHT CHANGE in the future :)
  121. //Also, you can send standard WM_COMMAND messages to the Winamp window (for other controls), including
  122. // Send using SendMessage(hwnd_winamp,WM_COMMAND,WINAMP_OPTIONS_EQ/*orwhatever*/,0);
  123.  
  124. // toggles the EQ window
  125. #define WINAMP_OPTIONS_EQ               40036
  126. // toggles the playlist window
  127. #define WINAMP_OPTIONS_PLEDIT           40040
  128. // turns the volume up a little
  129. #define WINAMP_VOLUMEUP                 40058
  130. // turns the volume down a little
  131. #define WINAMP_VOLUMEDOWN               40059
  132. // fast forwards 5 seconds
  133. #define WINAMP_FFWD5S                   40060
  134. // rewinds 5 seconds
  135. #define WINAMP_REW5S                    40061
  136. // the following are the five main control buttons, with optionally shift or control pressed
  137. // (for the exact functions of each, just try it out)
  138. #define WINAMP_BUTTON1                  40044
  139. #define WINAMP_BUTTON2                  40045
  140. #define WINAMP_BUTTON3                  40046
  141. #define WINAMP_BUTTON4                  40047
  142. #define WINAMP_BUTTON5                  40048
  143. #define WINAMP_BUTTON1_SHIFT            40144
  144. #define WINAMP_BUTTON2_SHIFT            40145
  145. #define WINAMP_BUTTON3_SHIFT            40146
  146. #define WINAMP_BUTTON4_SHIFT            40147
  147. #define WINAMP_BUTTON5_SHIFT            40148
  148. #define WINAMP_BUTTON1_CTRL             40154
  149. #define WINAMP_BUTTON2_CTRL             40155
  150. #define WINAMP_BUTTON3_CTRL             40156
  151. #define WINAMP_BUTTON4_CTRL             40157
  152. #define WINAMP_BUTTON5_CTRL             40158
  153.  
  154. // always goes to the previous song (unlike button 1), 1.666+
  155. #define WINAMP_PREVSONG                    40198
  156.  
  157. // pops up the load file(s) box
  158. #define WINAMP_FILE_PLAY                40029
  159. // pops up the preferences
  160. #define WINAMP_OPTIONS_PREFS            40012
  161. // toggles always on top
  162. #define WINAMP_OPTIONS_AOT              40019
  163. // pops up the about box :)
  164. #define WINAMP_HELP_ABOUT               40041
  165.  
  166.