This commit is contained in:
34
cpp/JavaWinampApi/Makefile.win
Normal file
34
cpp/JavaWinampApi/Makefile.win
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# Project: wpcom
|
||||||
|
# Makefile created by Dev-C++ 4.9.9.2
|
||||||
|
|
||||||
|
CPP = g++.exe
|
||||||
|
CC = gcc.exe
|
||||||
|
WINDRES = windres.exe
|
||||||
|
RES =
|
||||||
|
OBJ = WinampController.o $(RES)
|
||||||
|
LINKOBJ = WinampController.o $(RES)
|
||||||
|
LIBS = -L"E:/java/Dev-Cpp/lib" --no-export-all-symbols --add-stdcall-alias
|
||||||
|
INCS = -I"E:/java/Dev-Cpp/include" -I"E:/Program Files/Java/jdk1.6.0_11/include" -I"E:/Program Files/Java/jdk1.6.0_11/include/win32"
|
||||||
|
CXXINCS = -I"E:/java/Dev-Cpp/lib/gcc/mingw32/3.4.2/include" -I"E:/java/Dev-Cpp/include/c++/3.4.2/backward" -I"E:/java/Dev-Cpp/include/c++/3.4.2/mingw32" -I"E:/java/Dev-Cpp/include/c++/3.4.2" -I"E:/java/Dev-Cpp/include" -I"E:/Program Files/Java/jdk1.6.0_11/include" -I"E:/Program Files/Java/jdk1.6.0_11/include/win32"
|
||||||
|
BIN = ../../wpcom.dll
|
||||||
|
CXXFLAGS = $(CXXINCS) -DBUILDING_DLL=1
|
||||||
|
CFLAGS = $(INCS) -DBUILDING_DLL=1
|
||||||
|
RM = rm -f
|
||||||
|
|
||||||
|
.PHONY: all all-before all-after clean clean-custom
|
||||||
|
|
||||||
|
all: all-before ../../wpcom.dll all-after
|
||||||
|
|
||||||
|
|
||||||
|
clean: clean-custom
|
||||||
|
${RM} $(OBJ) $(BIN)
|
||||||
|
|
||||||
|
DLLWRAP=dllwrap.exe
|
||||||
|
DEFFILE=../../libwpcom.def
|
||||||
|
STATICLIB=../../libwpcom.a
|
||||||
|
|
||||||
|
$(BIN): $(LINKOBJ)
|
||||||
|
$(DLLWRAP) --output-def $(DEFFILE) --implib $(STATICLIB) $(LINKOBJ) $(LIBS) -o $(BIN)
|
||||||
|
|
||||||
|
WinampController.o: WinampController.c
|
||||||
|
$(CC) -c WinampController.c -o WinampController.o $(CFLAGS)
|
||||||
62
cpp/JavaWinampApi/WINAMPCMD.H
Normal file
62
cpp/JavaWinampApi/WINAMPCMD.H
Normal file
@@ -0,0 +1,62 @@
|
|||||||
|
#define WINAMP_FILE_QUIT 40001
|
||||||
|
#define WINAMP_OPTIONS_PREFS 40012
|
||||||
|
#define WINAMP_OPTIONS_AOT 40019
|
||||||
|
#define WINAMP_FILE_REPEAT 40022
|
||||||
|
#define WINAMP_FILE_SHUFFLE 40023
|
||||||
|
#define WINAMP_HIGH_PRIORITY 40025
|
||||||
|
#define WINAMP_FILE_PLAY 40029
|
||||||
|
#define WINAMP_OPTIONS_EQ 40036
|
||||||
|
#define WINAMP_OPTIONS_ELAPSED 40037
|
||||||
|
#define WINAMP_OPTIONS_REMAINING 40038
|
||||||
|
#define WINAMP_OPTIONS_PLEDIT 40040
|
||||||
|
#define WINAMP_HELP_ABOUT 40041
|
||||||
|
#define WINAMP_MAINMENU 40043
|
||||||
|
#define WINAMP_BUTTON1 40044
|
||||||
|
#define WINAMP_BUTTON2 40045
|
||||||
|
#define WINAMP_BUTTON3 40046
|
||||||
|
#define WINAMP_BUTTON4 40047
|
||||||
|
#define WINAMP_BUTTON5 40048
|
||||||
|
#define WINAMP_VOLUMEUP 40058
|
||||||
|
#define WINAMP_VOLUMEDOWN 40059
|
||||||
|
#define WINAMP_FFWD5S 40060
|
||||||
|
#define WINAMP_REW5S 40061
|
||||||
|
#define WINAMP_NEXT_WINDOW 40063
|
||||||
|
#define WINAMP_OPTIONS_WINDOWSHADE 40064
|
||||||
|
#define WINAMP_BUTTON1_SHIFT 40144
|
||||||
|
#define WINAMP_BUTTON2_SHIFT 40145
|
||||||
|
#define WINAMP_BUTTON3_SHIFT 40146
|
||||||
|
#define WINAMP_BUTTON4_SHIFT 40147
|
||||||
|
#define WINAMP_BUTTON5_SHIFT 40148
|
||||||
|
#define WINAMP_BUTTON1_CTRL 40154
|
||||||
|
#define WINAMP_BUTTON2_CTRL 40155
|
||||||
|
#define WINAMP_BUTTON3_CTRL 40156
|
||||||
|
#define WINAMP_BUTTON4_CTRL 40157
|
||||||
|
#define WINAMP_BUTTON5_CTRL 40158
|
||||||
|
#define WINAMP_OPTIONS_DSIZE 40165
|
||||||
|
#define IDC_SORT_FILENAME 40166
|
||||||
|
#define IDC_SORT_FILETITLE 40167
|
||||||
|
#define IDC_SORT_ENTIREFILENAME 40168
|
||||||
|
#define IDC_SELECTALL 40169
|
||||||
|
#define IDC_SELECTNONE 40170
|
||||||
|
#define IDC_SELECTINV 40171
|
||||||
|
#define IDM_EQ_LOADPRE 40172
|
||||||
|
#define IDM_EQ_LOADMP3 40173
|
||||||
|
#define IDM_EQ_LOADDEFAULT 40174
|
||||||
|
#define IDM_EQ_SAVEPRE 40175
|
||||||
|
#define IDM_EQ_SAVEMP3 40176
|
||||||
|
#define IDM_EQ_SAVEDEFAULT 40177
|
||||||
|
#define IDM_EQ_DELPRE 40178
|
||||||
|
#define IDM_EQ_DELMP3 40180
|
||||||
|
#define IDC_PLAYLIST_PLAY 40184
|
||||||
|
#define WINAMP_FILE_LOC 40185
|
||||||
|
#define WINAMP_OPTIONS_EASYMOVE 40186
|
||||||
|
#define WINAMP_FILE_DIR 40187
|
||||||
|
#define WINAMP_EDIT_ID3 40188
|
||||||
|
#define WINAMP_TOGGLE_AUTOSCROLL 40189
|
||||||
|
#define WINAMP_VISSETUP 40190
|
||||||
|
#define WINAMP_PLGSETUP 40191
|
||||||
|
#define WINAMP_VISPLUGIN 40192
|
||||||
|
#define WINAMP_JUMP 40193
|
||||||
|
#define WINAMP_JUMPFILE 40194
|
||||||
|
#define WINAMP_JUMP10FWD 40195
|
||||||
|
#define WINAMP_JUMP10BACK 40197
|
||||||
587
cpp/JavaWinampApi/WinampController.c
Normal file
587
cpp/JavaWinampApi/WinampController.c
Normal file
@@ -0,0 +1,587 @@
|
|||||||
|
/* meu .h */
|
||||||
|
#include "WinampController.h"
|
||||||
|
|
||||||
|
/* mingw */
|
||||||
|
#include <windows.h>
|
||||||
|
#include <w32api.h>
|
||||||
|
#include <winuser.h>
|
||||||
|
|
||||||
|
/* winamp sdk */
|
||||||
|
#include "wa_ipc.h"
|
||||||
|
#include "WINAMPCMD.H"
|
||||||
|
|
||||||
|
const int WA_CLOSE = 40001 ;
|
||||||
|
const int WA_PLAY = WINAMP_BUTTON2;
|
||||||
|
const int WA_STOP = WINAMP_BUTTON4;
|
||||||
|
const int WA_PAUSE = WINAMP_BUTTON3;
|
||||||
|
const int WA_PREVTRACK = WINAMP_BUTTON1;
|
||||||
|
const int WA_NEXTTRACK = WINAMP_BUTTON5;
|
||||||
|
const int WA_FWD5SECS = WINAMP_FFWD5S;
|
||||||
|
const int WA_REW5SECS = WINAMP_REW5S;
|
||||||
|
|
||||||
|
const int WA_PLAYLISTLEN = IPC_GETLISTLENGTH;
|
||||||
|
const int WA_SETVOLUME = IPC_SETVOLUME;
|
||||||
|
const int WA_SETPLAYLISTPOS = IPC_SETPLAYLISTPOS;
|
||||||
|
const int WA_WRITEPLAYLIST = IPC_WRITEPLAYLIST;
|
||||||
|
const int WA_ENQUEUEFILE = IPC_ENQUEUEFILE;
|
||||||
|
|
||||||
|
const int WA_VOLUMEUP = WINAMP_VOLUMEUP;
|
||||||
|
const int WA_VOLUMEDOWN = WINAMP_VOLUMEDOWN;
|
||||||
|
|
||||||
|
const int WA_CLEARPLAYLIST = IPC_DELETE;
|
||||||
|
const int WA_NOTHING = 0;
|
||||||
|
const int WA_TRACK_LENGTH = 1;
|
||||||
|
|
||||||
|
const int WA_RESTART = IPC_RESTARTWINAMP;
|
||||||
|
const int WA_REFRESHPLCACHE = IPC_REFRESHPLCACHE;
|
||||||
|
const int WA_GETSHUFFLESTATUS = IPC_GET_SHUFFLE;
|
||||||
|
const int WA_GETREPEATSTATUS = IPC_GET_REPEAT;
|
||||||
|
const int WA_SETSHUFFLESTATUS = IPC_SET_SHUFFLE;
|
||||||
|
const int WA_SETREPEATSTATUS = IPC_SET_REPEAT;
|
||||||
|
|
||||||
|
const int WA_GETSTATUS = IPC_ISPLAYING;
|
||||||
|
|
||||||
|
const int WA_GETLISTPOS = IPC_GETLISTPOS;
|
||||||
|
const int WA_GETTITLE = IPC_GETPLAYLISTTITLE;
|
||||||
|
|
||||||
|
const int WA_VERSION = IPC_GETVERSION;
|
||||||
|
const int WA_FILENAMEINLIST = IPC_GETPLAYLISTFILE;
|
||||||
|
const int WA_GETFILEINFO = IPC_GET_EXTENDED_FILE_INFO;
|
||||||
|
|
||||||
|
HWND hwnd_winamp = NULL;
|
||||||
|
INT position = 0;
|
||||||
|
STARTUPINFO si;
|
||||||
|
PROCESS_INFORMATION pi;
|
||||||
|
char messageReturn[255];
|
||||||
|
wchar_t* wMessageReturn;
|
||||||
|
|
||||||
|
LPDWORD temp;
|
||||||
|
|
||||||
|
void initWinampHandle() {
|
||||||
|
hwnd_winamp = NULL;
|
||||||
|
if (hwnd_winamp == NULL) {
|
||||||
|
hwnd_winamp = FindWindow("Winamp v1.x", NULL);
|
||||||
|
}
|
||||||
|
if (hwnd_winamp == NULL) {
|
||||||
|
hwnd_winamp = FindWindow("Winamp v2.x", NULL);
|
||||||
|
}
|
||||||
|
if (hwnd_winamp == NULL) {
|
||||||
|
hwnd_winamp = FindWindow("Winamp v3.x", NULL);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
jboolean runWinamp(unsigned char* pathWinamp) {
|
||||||
|
|
||||||
|
/* STARTUPINFO si;
|
||||||
|
PROCESS_INFORMATION pi;*/
|
||||||
|
|
||||||
|
ZeroMemory( &si, sizeof(si) );
|
||||||
|
si.cb = sizeof(si);
|
||||||
|
ZeroMemory( &pi, sizeof(pi) );
|
||||||
|
|
||||||
|
|
||||||
|
// Start the child process.
|
||||||
|
if(!CreateProcess(pathWinamp,
|
||||||
|
NULL,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
FALSE,
|
||||||
|
CREATE_NEW_CONSOLE,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
&si,
|
||||||
|
&pi))
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
DWORD dwResult = WaitForInputIdle(pi.hProcess,INFINITE);
|
||||||
|
if (dwResult != 0) return FALSE;
|
||||||
|
|
||||||
|
CloseHandle(pi.hProcess);
|
||||||
|
CloseHandle(pi.hThread);
|
||||||
|
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int getListPos() {
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
return SendMessage(hwnd_winamp,WM_USER,WA_NOTHING,WA_GETLISTPOS);
|
||||||
|
|
||||||
|
}
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
void getPluginMessage(int param, int sendMessage)
|
||||||
|
{
|
||||||
|
|
||||||
|
LPCVOID message = (LPCVOID)SendMessageW(hwnd_winamp, WM_USER, param, sendMessage);
|
||||||
|
ZeroMemory( &pi, sizeof(pi));
|
||||||
|
GetWindowThreadProcessId(hwnd_winamp, &pi.dwThreadId);
|
||||||
|
pi.hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,pi.dwThreadId);
|
||||||
|
ReadProcessMemory(pi.hProcess, message, messageReturn,2056,temp);
|
||||||
|
free(temp);
|
||||||
|
CloseHandle(pi.hProcess);
|
||||||
|
CloseHandle(pi.hThread);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_run
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
|
||||||
|
if ( hwnd_winamp == NULL ) {
|
||||||
|
|
||||||
|
unsigned char path[MAX_PATH]="";
|
||||||
|
DWORD size = MAX_PATH;
|
||||||
|
|
||||||
|
HKEY key;
|
||||||
|
DWORD tipo;
|
||||||
|
|
||||||
|
if (!RegOpenKey(HKEY_LOCAL_MACHINE,"Software\\Clients\\Media\\Winamp\\shell\\open\\command",&key)==ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
|
||||||
|
printf("0");
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!(RegQueryValueEx(key,"",NULL,&tipo,path,&size))==ERROR_SUCCESS)
|
||||||
|
{
|
||||||
|
|
||||||
|
RegCloseKey(key);
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!runWinamp(path))
|
||||||
|
{
|
||||||
|
|
||||||
|
RegCloseKey(key);
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
int version = SendMessage(hwnd_winamp,WM_WA_IPC,0,IPC_GETVERSION);
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_exit
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_CLOSE, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_play
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_PLAY, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_stop
|
||||||
|
(JNIEnv *env, jobject obj)
|
||||||
|
{
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_STOP, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_resume
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_PAUSE, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_pause
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_PAUSE, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_previousTrack
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_PREVTRACK, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_nextTrack
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_NEXTTRACK, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_fwd5Secs
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_FWD5SECS, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_rew5Secs
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_REW5SECS, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_increaseVolume
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_VOLUMEUP, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_decreaseVolume
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_VOLUMEDOWN, WA_NOTHING);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_increaseVolumePercent
|
||||||
|
(JNIEnv *env, jobject obj, jint percent) {
|
||||||
|
initWinampHandle();
|
||||||
|
int i = 0;
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
for(i=0;i<percent;i++) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_VOLUMEUP, WA_NOTHING);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_decreaseVolumePercent
|
||||||
|
(JNIEnv *env, jobject obj, jint percent) {
|
||||||
|
initWinampHandle();
|
||||||
|
int i = 0;
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
for(i=0;i<percent;i++) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_COMMAND, WA_VOLUMEDOWN, WA_NOTHING);
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setVolume
|
||||||
|
(JNIEnv *env, jobject obj, jint pos) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, pos, WA_SETVOLUME);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getVolume
|
||||||
|
(JNIEnv *env, jobject obj, jint pos) {
|
||||||
|
jint curVolume = -1;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
curVolume = (jint)SendMessageA(hwnd_winamp, WM_USER, -666, WA_SETVOLUME);
|
||||||
|
}
|
||||||
|
|
||||||
|
return curVolume;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_restart
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_RESTART);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setPlaylistPosition
|
||||||
|
(JNIEnv *env, jobject obj, jint pos) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, pos, WA_SETPLAYLISTPOS);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_clearPlayList
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_CLEARPLAYLIST);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_refreshPlayListCache
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_REFRESHPLCACHE);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getPlayListLength
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
jint length = -1;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
length = (jint)SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_PLAYLISTLEN);
|
||||||
|
}
|
||||||
|
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_writePlayListToFile
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
jint length = -1;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
length = SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_WRITEPLAYLIST);
|
||||||
|
}
|
||||||
|
return length;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_isShuffleStatusOn
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
jint status = 0;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
status = (jint)SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_GETSHUFFLESTATUS);
|
||||||
|
} else
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return status>0?1:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_isRepeatStatusOn
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
jint status = 0;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
status = (jint)SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_GETREPEATSTATUS);
|
||||||
|
} else
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return status>0?1:0;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setRepeatStatusOn
|
||||||
|
(JNIEnv *env, jobject obj, jboolean status) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, status, WA_SETREPEATSTATUS);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setShuffleStatusOn
|
||||||
|
(JNIEnv *env, jobject obj, jboolean status) {
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
SendMessageA(hwnd_winamp, WM_USER, status, WA_SETSHUFFLESTATUS);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_appendToPlayList
|
||||||
|
(JNIEnv *env, jobject obj, jstring mp3filename) {
|
||||||
|
initWinampHandle();
|
||||||
|
jboolean iscopy;
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
wMessageReturn = (wchar_t*)(*env)->GetStringChars(env, mp3filename, &iscopy);
|
||||||
|
int length = wcslen(wMessageReturn);
|
||||||
|
COPYDATASTRUCT cds;
|
||||||
|
cds.dwData = IPC_PLAYFILEW;
|
||||||
|
cds.lpData = (void*)wMessageReturn;
|
||||||
|
cds.cbData = length * 2 + 2 ; // it sums white space
|
||||||
|
|
||||||
|
SendMessageW(hwnd_winamp, WM_COPYDATA, WA_NOTHING, (LPARAM)&cds);
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getStatus
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
jint status = -1;
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
status = SendMessageA(hwnd_winamp, WM_USER, WA_NOTHING, WA_GETSTATUS);
|
||||||
|
}
|
||||||
|
|
||||||
|
return status;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getListPos
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
|
||||||
|
return getListPos();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getTitle
|
||||||
|
(JNIEnv *env, jobject obj) {
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
char title[500] = "";
|
||||||
|
GetWindowText(hwnd_winamp,title,500);
|
||||||
|
return (*env)->NewStringUTF(env,title);
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getTime
|
||||||
|
(JNIEnv *env, jobject obj, jint mode) {
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
return SendMessage(hwnd_winamp,WM_USER,mode,IPC_GETOUTPUTTIME);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return -2;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getFileNameInList
|
||||||
|
(JNIEnv *env, jobject obj, jint index)
|
||||||
|
{
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
getPluginMessage(index, WA_FILENAMEINLIST);
|
||||||
|
char* filePath = messageReturn;
|
||||||
|
jstring strReturn = (*env)->NewStringUTF(env,filePath);
|
||||||
|
return strReturn;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getFileNamePlaying
|
||||||
|
(JNIEnv *env, jobject obj)
|
||||||
|
{
|
||||||
|
|
||||||
|
initWinampHandle();
|
||||||
|
|
||||||
|
if (hwnd_winamp != NULL) {
|
||||||
|
|
||||||
|
getPluginMessage(WA_NOTHING, IPC_GET_PLAYING_FILENAME);
|
||||||
|
wchar_t* fileName = (wchar_t*)messageReturn;
|
||||||
|
int length = wcslen(fileName);
|
||||||
|
jstring strReturn = (*env)->NewString(env,fileName,length);
|
||||||
|
return strReturn;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
}
|
||||||
285
cpp/JavaWinampApi/WinampController.h
Normal file
285
cpp/JavaWinampApi/WinampController.h
Normal file
@@ -0,0 +1,285 @@
|
|||||||
|
/* DO NOT EDIT THIS FILE - it is machine generated */
|
||||||
|
#include <jni.h>
|
||||||
|
/* Header for class WinampController */
|
||||||
|
|
||||||
|
|
||||||
|
#ifndef _Included_WinampController
|
||||||
|
#define _Included_WinampController
|
||||||
|
#ifdef __cplusplus
|
||||||
|
extern "C" {
|
||||||
|
#endif
|
||||||
|
|
||||||
|
void initWinampHandle();
|
||||||
|
|
||||||
|
jboolean runWinamp(unsigned char* pathWinamp);
|
||||||
|
|
||||||
|
int getListPos();
|
||||||
|
|
||||||
|
void getPluginMessage(int param, int sendMessage);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: run
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_run
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: exit
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_exit
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: play
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_play
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: stop
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_stop
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: resume
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_resume
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: pause
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_pause
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: previousTrack
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_previousTrack
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: nextTrack
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_nextTrack
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: fwd5Secs
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_fwd5Secs
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: fwd5Secs
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_rew5Secs
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: increaseVolume
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_increaseVolume
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: decreaseVolume
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_decreaseVolume
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: increaseVolumePercent
|
||||||
|
* Signature: (I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_increaseVolumePercent
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: decreaseVolumePercent
|
||||||
|
* Signature: (I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_decreaseVolumePercent
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: setVolume
|
||||||
|
* Signature: (I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setVolume
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: setVolume
|
||||||
|
* Signature: (I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getVolume
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: restart
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_restart
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: setPlaylistPosition
|
||||||
|
* Signature: (I)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setPlaylistPosition
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: clearPlayList
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_clearPlayList
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: refreshPlayListCache
|
||||||
|
* Signature: ()V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_refreshPlayListCache
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getPlayListLength
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getPlayListLength
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: writePlayListToFile
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_writePlayListToFile
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: isShuffleStatusOn
|
||||||
|
* Signature: ()Z
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_isShuffleStatusOn
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: isRepeatStatusOn
|
||||||
|
* Signature: ()Z
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_isRepeatStatusOn
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: setRepeatStatusOn
|
||||||
|
* Signature: (Z)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setRepeatStatusOn
|
||||||
|
(JNIEnv *, jclass, jboolean);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: setShuffleStatusOn
|
||||||
|
* Signature: (Z)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_setShuffleStatusOn
|
||||||
|
(JNIEnv *, jclass, jboolean);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: appendToPlayList
|
||||||
|
* Signature: (Ljava/lang/String;)V
|
||||||
|
*/
|
||||||
|
JNIEXPORT jboolean JNICALL Java_com_qotsa_jni_controller_JNIWinamp_appendToPlayList
|
||||||
|
(JNIEnv *, jclass, jstring);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getStatus
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getStatus
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getListPos
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getListPos
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getTitle
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getTitle
|
||||||
|
(JNIEnv *, jclass);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getTime
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jint JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getTime
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getFileNameInList
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getFileNameInList
|
||||||
|
(JNIEnv *, jclass, jint);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Class: WinampController
|
||||||
|
* Method: getFileNamePlaying
|
||||||
|
* Signature: ()I
|
||||||
|
*/
|
||||||
|
JNIEXPORT jstring JNICALL Java_com_qotsa_jni_controller_JNIWinamp_getFileNamePlaying
|
||||||
|
(JNIEnv *, jobject);
|
||||||
|
|
||||||
|
#ifdef __cplusplus
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
1
cpp/JavaWinampApi/cpy.bat
Normal file
1
cpp/JavaWinampApi/cpy.bat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
copy /y wpcom.dll c:\winnt\system32\
|
||||||
58
cpp/JavaWinampApi/libwpcom.def
Normal file
58
cpp/JavaWinampApi/libwpcom.def
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
; dlltool --base-file C:\DOCUME~1\FRANCI~1\CONFIG~1\Temp/cca03628.base --output-exp wpcom.exp --dllname wpcom.dll --output-def libwpcom.def --no-export-all-symbols --add-stdcall-alias --exclude-symbol=DllMainCRTStartup@12 --def C:\DOCUME~1\FRANCI~1\CONFIG~1\Temp/cca03628.def --output-lib libwpcom.a
|
||||||
|
EXPORTS
|
||||||
|
Java_controller_JNIWinampController_appendToPlayList = Java_controller_JNIWinampController_appendToPlayList@12 @ 1
|
||||||
|
Java_controller_JNIWinampController_appendToPlayList@12 @ 2
|
||||||
|
Java_controller_JNIWinampController_clearPlayList = Java_controller_JNIWinampController_clearPlayList@8 @ 3
|
||||||
|
Java_controller_JNIWinampController_clearPlayList@8 @ 4
|
||||||
|
Java_controller_JNIWinampController_clearPlayListCache = Java_controller_JNIWinampController_clearPlayListCache@8 @ 5
|
||||||
|
Java_controller_JNIWinampController_clearPlayListCache@8 @ 6
|
||||||
|
Java_controller_JNIWinampController_decreaseVolume = Java_controller_JNIWinampController_decreaseVolume@8 @ 7
|
||||||
|
Java_controller_JNIWinampController_decreaseVolume@8 @ 8
|
||||||
|
Java_controller_JNIWinampController_decreaseVolumePercent = Java_controller_JNIWinampController_decreaseVolumePercent@12 @ 9
|
||||||
|
Java_controller_JNIWinampController_decreaseVolumePercent@12 @ 10
|
||||||
|
Java_controller_JNIWinampController_exit = Java_controller_JNIWinampController_exit@8 @ 11
|
||||||
|
Java_controller_JNIWinampController_exit@8 @ 12
|
||||||
|
Java_controller_JNIWinampController_getListPos = Java_controller_JNIWinampController_getListPos@8 @ 13
|
||||||
|
Java_controller_JNIWinampController_getListPos@8 @ 14
|
||||||
|
Java_controller_JNIWinampController_getPlayListLength = Java_controller_JNIWinampController_getPlayListLength@8 @ 15
|
||||||
|
Java_controller_JNIWinampController_getPlayListLength@8 @ 16
|
||||||
|
Java_controller_JNIWinampController_getSeconds = Java_controller_JNIWinampController_getSeconds@8 @ 17
|
||||||
|
Java_controller_JNIWinampController_getSeconds@8 @ 18
|
||||||
|
Java_controller_JNIWinampController_getStatus = Java_controller_JNIWinampController_getStatus@8 @ 19
|
||||||
|
Java_controller_JNIWinampController_getStatus@8 @ 20
|
||||||
|
Java_controller_JNIWinampController_getTitle = Java_controller_JNIWinampController_getTitle@8 @ 21
|
||||||
|
Java_controller_JNIWinampController_getTitle@8 @ 22
|
||||||
|
Java_controller_JNIWinampController_increaseVolume = Java_controller_JNIWinampController_increaseVolume@8 @ 23
|
||||||
|
Java_controller_JNIWinampController_increaseVolume@8 @ 24
|
||||||
|
Java_controller_JNIWinampController_increaseVolumePercent = Java_controller_JNIWinampController_increaseVolumePercent@12 @ 25
|
||||||
|
Java_controller_JNIWinampController_increaseVolumePercent@12 @ 26
|
||||||
|
Java_controller_JNIWinampController_isRepeatStatusOn = Java_controller_JNIWinampController_isRepeatStatusOn@8 @ 27
|
||||||
|
Java_controller_JNIWinampController_isRepeatStatusOn@8 @ 28
|
||||||
|
Java_controller_JNIWinampController_isShuffleStatusOn = Java_controller_JNIWinampController_isShuffleStatusOn@8 @ 29
|
||||||
|
Java_controller_JNIWinampController_isShuffleStatusOn@8 @ 30
|
||||||
|
Java_controller_JNIWinampController_nextTrack = Java_controller_JNIWinampController_nextTrack@8 @ 31
|
||||||
|
Java_controller_JNIWinampController_nextTrack@8 @ 32
|
||||||
|
Java_controller_JNIWinampController_pause = Java_controller_JNIWinampController_pause@8 @ 33
|
||||||
|
Java_controller_JNIWinampController_pause@8 @ 34
|
||||||
|
Java_controller_JNIWinampController_play = Java_controller_JNIWinampController_play@8 @ 35
|
||||||
|
Java_controller_JNIWinampController_play@8 @ 36
|
||||||
|
Java_controller_JNIWinampController_previousTrack = Java_controller_JNIWinampController_previousTrack@8 @ 37
|
||||||
|
Java_controller_JNIWinampController_previousTrack@8 @ 38
|
||||||
|
Java_controller_JNIWinampController_restart = Java_controller_JNIWinampController_restart@8 @ 39
|
||||||
|
Java_controller_JNIWinampController_restart@8 @ 40
|
||||||
|
Java_controller_JNIWinampController_resume = Java_controller_JNIWinampController_resume@8 @ 41
|
||||||
|
Java_controller_JNIWinampController_resume@8 @ 42
|
||||||
|
Java_controller_JNIWinampController_run = Java_controller_JNIWinampController_run@8 @ 43
|
||||||
|
Java_controller_JNIWinampController_run@8 @ 44
|
||||||
|
Java_controller_JNIWinampController_setPlaylistPosition = Java_controller_JNIWinampController_setPlaylistPosition@12 @ 45
|
||||||
|
Java_controller_JNIWinampController_setPlaylistPosition@12 @ 46
|
||||||
|
Java_controller_JNIWinampController_setRepeatStatusOn = Java_controller_JNIWinampController_setRepeatStatusOn@12 @ 47
|
||||||
|
Java_controller_JNIWinampController_setRepeatStatusOn@12 @ 48
|
||||||
|
Java_controller_JNIWinampController_setShuffleStatusOn = Java_controller_JNIWinampController_setShuffleStatusOn@12 @ 49
|
||||||
|
Java_controller_JNIWinampController_setShuffleStatusOn@12 @ 50
|
||||||
|
Java_controller_JNIWinampController_setVolume = Java_controller_JNIWinampController_setVolume@12 @ 51
|
||||||
|
Java_controller_JNIWinampController_setVolume@12 @ 52
|
||||||
|
Java_controller_JNIWinampController_stop = Java_controller_JNIWinampController_stop@8 @ 53
|
||||||
|
Java_controller_JNIWinampController_stop@8 @ 54
|
||||||
|
Java_controller_JNIWinampController_writePlayListToFile = Java_controller_JNIWinampController_writePlayListToFile@8 @ 55
|
||||||
|
Java_controller_JNIWinampController_writePlayListToFile@8 @ 56
|
||||||
1620
cpp/JavaWinampApi/wa_ipc.h
Normal file
1620
cpp/JavaWinampApi/wa_ipc.h
Normal file
File diff suppressed because it is too large
Load Diff
69
cpp/JavaWinampApi/wpcom.dev
Normal file
69
cpp/JavaWinampApi/wpcom.dev
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
[Project]
|
||||||
|
FileName=wpcom.dev
|
||||||
|
Name=wpcom
|
||||||
|
UnitCount=2
|
||||||
|
Type=3
|
||||||
|
Ver=1
|
||||||
|
ObjFiles=
|
||||||
|
Includes="E:\Program Files\Java\jdk1.6.0_11\include";"E:\Program Files\Java\jdk1.6.0_11\include\win32"
|
||||||
|
Libs=
|
||||||
|
PrivateResource=
|
||||||
|
ResourceIncludes=
|
||||||
|
MakeIncludes=
|
||||||
|
Compiler=-DBUILDING_DLL=1_@@_
|
||||||
|
CppCompiler=-DBUILDING_DLL=1_@@_
|
||||||
|
Linker=--no-export-all-symbols --add-stdcall-alias_@@_
|
||||||
|
IsCpp=0
|
||||||
|
Icon=
|
||||||
|
ExeOutput=..\..\..\JavaWinampAPI
|
||||||
|
ObjectOutput=
|
||||||
|
OverrideOutput=1
|
||||||
|
OverrideOutputName=wpcom.dll
|
||||||
|
HostApplication=
|
||||||
|
Folders=
|
||||||
|
CommandLine=
|
||||||
|
UseCustomMakefile=0
|
||||||
|
CustomMakefile=
|
||||||
|
IncludeVersionInfo=0
|
||||||
|
SupportXPThemes=0
|
||||||
|
CompilerSet=0
|
||||||
|
CompilerSettings=0000000000000000000000
|
||||||
|
|
||||||
|
[Unit1]
|
||||||
|
FileName=WinampController.c
|
||||||
|
CompileCpp=0
|
||||||
|
Folder=wacon
|
||||||
|
Compile=1
|
||||||
|
Link=1
|
||||||
|
Priority=1000
|
||||||
|
OverrideBuildCmd=0
|
||||||
|
BuildCmd=$(CC) -c WinampController.c -o WinampController.o $(CFLAGS)
|
||||||
|
|
||||||
|
[VersionInfo]
|
||||||
|
Major=0
|
||||||
|
Minor=1
|
||||||
|
Release=1
|
||||||
|
Build=1
|
||||||
|
LanguageID=1033
|
||||||
|
CharsetID=1252
|
||||||
|
CompanyName=
|
||||||
|
FileVersion=
|
||||||
|
FileDescription=Developed using the Dev-C++ IDE
|
||||||
|
InternalName=
|
||||||
|
LegalCopyright=
|
||||||
|
LegalTrademarks=
|
||||||
|
OriginalFilename=
|
||||||
|
ProductName=
|
||||||
|
ProductVersion=
|
||||||
|
AutoIncBuildNr=0
|
||||||
|
|
||||||
|
[Unit2]
|
||||||
|
FileName=WinampController.h
|
||||||
|
CompileCpp=0
|
||||||
|
Folder=wacon
|
||||||
|
Compile=1
|
||||||
|
Link=1
|
||||||
|
Priority=1000
|
||||||
|
OverrideBuildCmd=0
|
||||||
|
BuildCmd=
|
||||||
|
|
||||||
17
cpp/JavaWinampApi/wpcom.layout
Normal file
17
cpp/JavaWinampApi/wpcom.layout
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
[Editor_0]
|
||||||
|
CursorCol=32
|
||||||
|
CursorRow=359
|
||||||
|
TopLine=338
|
||||||
|
LeftChar=1
|
||||||
|
Open=1
|
||||||
|
Top=1
|
||||||
|
[Editors]
|
||||||
|
Focused=0
|
||||||
|
Order=1,0
|
||||||
|
[Editor_1]
|
||||||
|
Open=1
|
||||||
|
Top=0
|
||||||
|
CursorCol=73
|
||||||
|
CursorRow=143
|
||||||
|
TopLine=127
|
||||||
|
LeftChar=1
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user