summary refs log tree commit diff stats
path: root/plugins/hextray/sdTray.h
blob: 68469fe08ceb84e2c52c68715456414b66f3b6b1 (plain) (blame)
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
/* X-Tray
 * Copyright (C) 2005 Michael Hotaling <Mike.Hotaling@SinisterDevelopments.com>
 *
 * X-Tray is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * X-Tray is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with X-Tray; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

#ifndef _H_SDTRAY_H
#define _H_SDTRAY_H

int				AddIcon		(HWND, UINT, HICON, char *, unsigned short, UINT);
int				ShowBalloon	(HWND, UINT, char *, char *, UINT, UINT);
int				BlinkIcon	(HWND, UINT, HICON, HICON, UINT, UINT);
int				SetTooltip	(HWND, UINT, char *);
int				SetIcon		(HWND, UINT, HICON);
void			StopBlink	(HWND, UINT, HICON);
int				RemoveIcon	(HWND, UINT);

typedef struct IBLINK
{
	HICON hBase;
	HICON hBlink;
	HWND hwnd;
	UINT id;
	UINT time;
	UINT num;
}iBlink;
#endif
n class="p">{ HWND hwndWinamp = FindWindowW(L"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]) { wchar_t wcurrent_play[2048]; char *current_play, *p; int len = GetWindowTextW(hwndWinamp, wcurrent_play, G_N_ELEMENTS(wcurrent_play)); current_play = g_utf16_to_utf8 (wcurrent_play, len, NULL, NULL, NULL); if (!current_play) { hexchat_print (ph, "Winamp: Error getting song information."); return HEXCHAT_EAT_ALL; } if (strchr(current_play, '-')) { /* Remove any trailing text and whitespace */ 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'; /* Ignore any leading track number */ p = strstr (current_play, ". "); if (p) p += 2; else p = current_play; if (*p != '\0') hexchat_commandf (ph, "me is now playing: %s", p); else hexchat_print (ph, "Winamp: No song information found."); g_free (current_play); } 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.6"; 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; }