home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 June B / Pcwk6b98.iso / Mpeg3 / NAD / plugin.txt < prev    next >
Text File  |  1998-01-03  |  3KB  |  71 lines

  1. How to make plugins work nicely under nad and winamp
  2. -----------------------------------------------------
  3.  
  4. Write a plugin that 'attaches' itself to the calling app window, or
  5. just simply want to change the text the window displays so people
  6. using the plugin think more of it??
  7.  
  8. Well these simple instructions will help you do just that. Or at the
  9. least it will let you bring up a dialog that says 'nad stinks' or
  10. something :P
  11.  
  12.  
  13. The code you need to know
  14. -------------------------
  15.  
  16. When nad is about to call your module Init() code, it sets the userdata
  17. of the window which you can use to detect its running.
  18.  
  19. 1> its sets its own window UserData to the hex value 0x004e4144,
  20.     (this is the ascii hex value for 'nad'(with a leading null).
  21.  
  22. so in your plugin you can call
  23.  
  24.     if(GetWindowLong(TheModule->hwndParent, GWL_USERDATA) == 0x004e4144)
  25.         IsNad = TRUE;
  26.  
  27. that should work and you can use different code somewhere to
  28. do whatever it takes to make your plugin work with nad!
  29.  
  30. Nad Extensions to the Winamp Plugin Format
  31. ------------------------------------------
  32.  
  33. all messages are sent to the Parent window from the winampvismodule structure...
  34.  
  35.     #define WM_PLUGIN_ATTACHWINDOW        WM_APP + 0x0400
  36.     /* lParam points to your window. Sending this message means your plugin will receive messages
  37.     to the window you specify (see below for the messages you will receive*/
  38.  
  39.     // for the following messages use SendMessage and get the return value
  40.     #define WM_PLUGIN_GETCURRENTTIME    WM_APP + 0x0402        // time in seconds
  41.     #define WM_PLUGIN_GETBITRATE        WM_APP + 0x0403
  42.     #define WM_PLUGIN_GETSAMPLEFREQ        WM_APP + 0x0404
  43.     #define WM_PLUGIN_GETSYNCSTATUS        WM_APP + 0x0405        // see below for possible return values
  44.     #define WM_PLUGIN_GETPLAYSTATUS        WM_APP + 0x0406        // ''   ''   ''   ''       ''     ''
  45.     #define WM_PLUGIN_GETUPDATERATE        WM_APP + 0x0407        // number of FPS 
  46.  
  47.     #define WM_PLUGIN_INWINDOWACTIVE    WM_APP + 0x0408
  48.     /* Makes nad turn off display into the big boxso your plugin can draw into this window..
  49.     the dimensions are 147x42 at an offset of */
  50.  
  51.     #define WM_PLUGIN_WINDOW_MESSAGE    WM_APP + 0x0409
  52.     /* lParam points to NULL terminated message.. This message allows you to put a message in the
  53.     main nad window song display for 3seconds or so..*/
  54.  
  55. If you use the WM_PLUGIN_ATTACHWINDOW message your plugin window will receive the following messages
  56.  
  57.     #define WM_TIME            WM_APP + 0x0201
  58.     #define WM_PLAYING        WM_APP + 0x0205
  59.     #define WM_STOPPED        WM_APP + 0x0206
  60.     #define WM_SYNC_STATUS        WM_APP + 0x0207
  61.  
  62. these are the values from WM_PLUGIN_GETPLAYSTATUS
  63.     #define PLAYING            0
  64.     #define PAUSED            1
  65.     #define STOPPED            2
  66.  
  67. these are the values from WM_PLUGIN_GETSYNCSTATUS and WM_SYNC_STATUS
  68.     #define SYNC_GOOD        0
  69.     #define SYNC_BAD        1
  70.     #define SYNC_SKIPWAV        2
  71.