summary refs log tree commit diff stats
path: root/plugins/winamp/winamp.c
AgeCommit message (Expand)Author
2013-04-14Relocate plugin iconsBerke Viktor
2012-10-30Now some final cleanup (I hope)Berke Viktor
2012-10-30Rebranding for the rest of plugin*Berke Viktor
2012-10-30Rebranding for XCHAT_EAT_*Berke Viktor
2012-10-30Rebranding for XCHAT_PRI_*Berke Viktor
2012-10-24A lot more rebrandingBerke Viktor
2012-07-13Update plugin descriptions and names, tooBerke Viktor
2011-02-28add wdk changes to named branchberkeviktor@aol.com
2011-02-24nuke the repoberkeviktor@aol.com
2011-01-26fix menu item deletion upon unloadberkeviktor@aol.com
2011-01-10some capitalization consistency for the menuberkeviktor@aol.com
2010-10-21even more cosmeticsberkeviktor@aol.com
2010-10-21some cosmeticsberkeviktor@aol.com
2010-10-20fix escape characterberkeviktor@aol.com
2010-10-21bump winamp plugin versionberkeviktor@aol.com
2010-10-21menu entry and icon for winam pluginberkeviktor@aol.com
2010-10-09change winamp command nameberkeviktor@aol.com
2010-10-09replace easywinampcontrol with winampberkeviktor@aol.com
orxchat.git/blame/plugins/winamp/winamp.c?h=feature/tor-i2p-dcc&id=ad7ea4b77e059880ef8f7cb05fe2aa2cdcc217fb'>^
e681eafa ^
d03d6e60 ^




e681eafa ^
d03d6e60 ^





e681eafa ^
d03d6e60 ^





e681eafa ^
d03d6e60 ^





e681eafa ^
d03d6e60 ^





































e681eafa ^
d03d6e60 ^

e681eafa ^
d03d6e60 ^

e681eafa ^
d03d6e60 ^




e681eafa ^
d03d6e60 ^
45d4fa58 ^
d03d6e60 ^


e681eafa ^
d03d6e60 ^




507af191 ^
d03d6e60 ^


fe3df241 ^
d03d6e60 ^

e681eafa ^
bed00e52 ^
d03d6e60 ^
e681eafa ^
d03d6e60 ^




e681eafa ^
d03d6e60 ^
e681eafa ^

d03d6e60 ^

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189















                                                                       
                           



                 
                                                













































                                                                                       
                                                                             
                                   
                                                            





                                                                             
                                                                     




                                                                               
                                                                       





                                                                               
                                                                                   





                                                                               
                                                                                       





                                                                               
                                                                              





































                                                                                                      
                                                                   

                                 
                                                                                        

                         
                                                                                         




            
                                                
         
                               


   
                                                  




                                            
                                                                       


                                
                                                   

                                
                                                                                                                                                                               
                                                                                                                
 
                                                     




                                                  
                           
 

                                                                                  

                 
/********************* Winamp Plugin 0.3******************************
 *
 *   Distribution: GPL
 *
 *   Originally written by: Leo - leo.nard@free.fr
 *   Modified by: SilvereX - SilvereX@karklas.mif.vu.lt
 *   Modified again by: Derek Buitenhuis - daemon404@gmail.com
 *   Modified yet again by: Berke Viktor - berkeviktor@aol.com
 *********************************************************************/

#include "windows.h"

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "hexchat-plugin.h"

#define PLAYING 1
#define PAUSED 3

static hexchat_plugin *ph;   /* plugin handle */

BOOL winamp_found = FALSE;

int status = 0;

/* Slightly modified from X-Chat's log_escape_strcpy */
static char *
song_strcpy (char *dest, char *src)
{
	while (*src)
	{
		*dest = *src;
		dest++;
		src++;

		if (*src == '%')
		{
			dest[0] = '%';
			dest++;
		}
	}

	dest[0] = 0;
	return dest - 1;
}

static int
winamp(char *word[], char *word_eol[], void *userdata)
{

char current_play[2048], *p;
char p_esc[2048];
char cur_esc[2048];
char truc[2048];
HWND hwndWinamp = FindWindow("Winamp v1.x",NULL);

    if (hwndWinamp)
	{
	    {
	        if (!stricmp("PAUSE", word[2]))
			{
			   if (SendMessage(hwndWinamp,WM_USER, 0, 104))
				{
			   	   SendMessage(hwndWinamp, WM_COMMAND, 40046, 0);
			
			       if (SendMessage(hwndWinamp, WM_USER, 0, 104) == PLAYING)
			   	       hexchat_printf(ph, "Winamp: playing");
			       else
                       hexchat_printf(ph, "Winamp: paused");
				}
            }
			else
		        if (!stricmp("STOP", word[2]))
			    {
			       SendMessage(hwndWinamp, WM_COMMAND, 40047, 0);
			       hexchat_printf(ph, "Winamp: stopped");
			    }
			else
			    if (!stricmp("PLAY", word[2]))
			    {
			         SendMessage(hwndWinamp, WM_COMMAND, 40045, 0);
			         hexchat_printf(ph, "Winamp: playing");
			    }
        	else

			    if (!stricmp("NEXT", word[2]))
			    {
			         SendMessage(hwndWinamp, WM_COMMAND, 40048, 0);
			         hexchat_printf(ph, "Winamp: next playlist entry");
			    }
			else

                if (!stricmp("PREV", word[2]))
			    {
			         SendMessage(hwndWinamp, WM_COMMAND, 40044, 0);
			         hexchat_printf(ph, "Winamp: previous playlist entry");
			    }
		    else

                if (!stricmp("START", word[2]))
			    {
			         SendMessage(hwndWinamp, WM_COMMAND, 40154, 0);
			         hexchat_printf(ph, "Winamp: playlist start");
			    }

		    else

                if (!word_eol[2][0])
			    {
					GetWindowText(hwndWinamp, current_play, sizeof(current_play));

					if (strchr(current_play, '-'))
					{
	
					p = current_play + strlen(current_play) - 8;
					while (p >= current_play)
					{
						if (!strnicmp(p, "- Winamp", 8)) break;
							p--;
					}

					if (p >= current_play) p--;
	
					while (p >= current_play && *p == ' ') p--;
						*++p=0;
	
	
					p = strchr(current_play, '.') + 1;

 					song_strcpy(p_esc, p);
 					song_strcpy(cur_esc, current_play);
	
					if (p)
					{
						sprintf(truc, "me is now playing:%s", p_esc);
					}
					else
					{
						sprintf(truc, "me is now playing:%s", cur_esc);
					}
	
	   				hexchat_commandf(ph, truc);
	
				}
				else hexchat_print(ph, "Winamp: Nothing being played.");
			}
		    else
                hexchat_printf(ph, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START]\n");
         }

	}
	else
	{
       hexchat_print(ph, "Winamp not found.\n");
	}
	return HEXCHAT_EAT_ALL;
}

int
hexchat_plugin_init(hexchat_plugin *plugin_handle,
                      char **plugin_name,
                      char **plugin_desc,
                      char **plugin_version,
                      char *arg)
{
	/* we need to save this for use with any hexchat_* functions */
	ph = plugin_handle;

	*plugin_name = "Winamp";
	*plugin_desc = "Winamp plugin for HexChat";
	*plugin_version = "0.5";

	hexchat_hook_command (ph, "WINAMP", HEXCHAT_PRI_NORM, winamp, "Usage: /WINAMP [PAUSE|PLAY|STOP|NEXT|PREV|START] - control Winamp or show what's currently playing", 0);
   	hexchat_command (ph, "MENU -ishare\\music.png ADD \"Window/Display Current Song (Winamp)\" \"WINAMP\"");

	hexchat_print (ph, "Winamp plugin loaded\n");

	return 1;       /* return 1 for success */
}

int
hexchat_plugin_deinit(void)
{
	hexchat_command (ph, "MENU DEL \"Window/Display Current Song (Winamp)\"");
	hexchat_print (ph, "Winamp plugin unloaded\n");
	return 1;
}