свържете с Winamp държа

S

sameerr11

Guest
Здравейте приятели
Аз правя проект за Winamp controller.in, че аз трябва да се направи една хан включете в Winamp страна сега, аз съм от електроника страна.аз съм имат добри познания на VC . така че аз да ф код ми по-долу.и ако искаш заглавния файл, отколкото аз ще предостави ф. и този файл е в. CPP и аз искам да го превръщам инча DLL.oor някой знае как този файл се свържете с държа на компютъра.?Мисля, че за скрито в него. DLL, защото в папката на Winamp plugiin всички Plug хан са инча DLL формиат.така че, моля да ми помогне.и моля, ако някой може да го скрито инча DLL, отколкото е наред.или някой се таксува за тази моя проект, отколкото аз също е готова да ги плати.код :::::remote_plugin.cpp# включват "stdafx.h"
# включват "windows.h"
# включват "wa_ipc.h"
# включват "gen.h"
# включват "winamp.h"
# включват <process.h>
# включват <iostream># включват "COMPORT.H"
# включват <string.h>
# включват <sys/timeb.h>
# включват <time.h>

# определят SampleRate 0
# 1 определят BITRATE
# определят Channels 2
# определят секунди 1
# определят MSECONDS 0

Int първоначален ();
нищожен довереник ();
нищожен напусна ();
статичен невалидни Reader (невалидни *);
Int игра (Void);
нищожен volumeUp (Void);
нищожен volumeDown (Void);
нищожен спиране (Void);
нищожен пауза (нищожен);
Int getStatus (Void);
Int getInfo (INT);
нищожен nextTrack (Void);
нищожен prevTrack (Void);
нищожен fforward (Void);
нищожен назад (Void);
Int stringSize (Чар *);
Int getVersion (Void);
Int getPlayTime (Void);
Int getPlaylistIndex (Void);
Int getPlaylistLength (Void);
Чар getPlaylist * (Void);
Чар * remove_nulls (Чар [], INT);

/************************************************* ****************/
/************ Winamp неща плъгин ********************************** /
/************************************************* ****************/

winampGeneralPurposePlugin плъгин =
(
GPPHDR_VER,
"Winamp Remote v1.0",
първоначален,
довереник,
напусна,
);
/ / функция изисква
Int първоначален ()
(
/ / потенциален източник на нови конец за обслужване на основната функция
_beginthread (Reader, 0, NULL);
връщане 0;
)
/ / функция изисква
нищожен довереник ()
(
)
/ / функция изисква
нищожен напусна ()
(
)

ученик "С" __declspec (dllexport) winampGeneralPurposePlugin * winampGetGeneralPurposePlugin ()
(
връщане &plugin;
)

/************************************************* ****************/
/************ края Winamp неща плъгин ******************************/
/************************************************* ****************// / функция, която Rx, Tx и комуникира с Winamp
статичен невалидни Reader (невалидни *)
(
HWND mainwinampwin = plugin.hwndParent;
Int статус;
Чар избор;
Int версия;
Чар Adata = 'ч';
двойно х = часовник ();
CString trackFilename;
struct _timeb timebuffer;
Чар * времевата;
Чар * заглавие;
Int поз;
Int current_pos = 0, song_pos;
Чар буфер [10];
Чар plbuffer [100];
Int I;
Чар clear_flag = 0;

/************************************************* * /
/****** настройка на COM порт ******************************/
/************************************************* * /
Държа Aport ( "COM1"); / / COM1
aPort.setBitRate (държа:: br9600); / / 9600bps
aPort.setParity (държа:: няма); / / не паритет
aPort.setDataBits (държа:: db8); / / 8 бита данни
aPort.setStopBits (държа:: SB1); / / 1 спрете малко
aPort.setxONxOFF (FALSE); / / не xOnxOff
aPort.setHandshaking (FALSE); / / не договаряне
/************************************************* ** /
/****** края настройка на COM порт ***************************/
/************************************************* ** /

Чар * изход;

докато (1)
(
/ / блок до отдалечени изпраща един байт данни
избор = aPort.read ();

/ / всички данни, които се предават завършва с вертикална раздела '\ V "
/ / Мисля, това не е използвана по всякакъв текст, така че прави добър терминатор
Switch (избор)
(
/ / текущото време
случай '0 ':
//********************************
/ / Имате време
_ftime (& timebuffer);
Timeline = ctime (& (timebuffer.time));
aPort.write (Timeline, stringSize (Timeline));
aPort.write ( "\ V", stringSize ( "\ V"));
//**************************************
прекъсване;
/ / игра
случай '1 ':
играят ();
прекъсване;
/ / стоп
случай "2":
Stop ();
прекъсване;
/ / пауза
случай '3 ':
пауза ();
прекъсване;
/ / увеличи обема на
случай "4":
volumeUp ();
прекъсване;
/ / намаляване на звука
случай '5 ':
volumeDown ();
прекъсване;
/ / нищо
случай "6":
прекъсване;
/ / получите положение: играя, пауза, стоп
случай "7":
състояние = getStatus ();
ако (статут == 0)
aPort.write ( "спре \ V", stringSize ( "спре \ V"));
иначе, ако (статут == 1)
aPort.write ( "играя \ V", stringSize ( "играя \ V"));
иначе, ако (статут == 3)
aPort.write ( "Пауза \ V", stringSize ( "Пауза \ V"));
в противен случай
aPort.write ( "неизвестно \ V", stringSize ( "неизвестно \ V"));
прекъсване;
/ / SampleRate
случай "8":
/ / формат на продукцията
sprintf (буфер, "% г \ V", getInfo (SampleRate));
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / битрейт
случай "9":
/ / формат на продукцията
sprintf (буфер, "% г \ V", getInfo (BITRATE));
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / брой канали
случай "а":
/ / формат на продукцията
sprintf (буфер, "% г \ V", getInfo (канали));
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / отивам към следващата песен
случай "б":
nextTrack ();
прекъсване;
/ / отивам към предишна песен
случай "C":
prevTrack ();
прекъсване;
/ / бързо напред
случай "D":
fforward ();
прекъсване;
/ / назад
случай "е":
назад ();
прекъсване;
/ / получите версия на Winamp
случай "F":
Version = getVersion ();
/ / формат на продукцията
sprintf (буфер "WinAmp V% x. 02x% \ V", version/4096, версия & 0xFFF);
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / получите текущата времето за игра
случай "G":
/ / формат на продукцията
sprintf (буфер, "% 02d:% 02d \ V", getPlayTime () / 1000/60, (getPlayTime () / 1000)% 60);
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / получите заглавието на текущата игра песен
случай "з":
заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, getPlaylistIndex (), IPC_GETPLAYLISTTITLE);
/ / формат на продукцията
sprintf (буфер, "% S \ V", заглавие);
aPort.write (буфер, stringSize (буфер));
прекъсване;
/ / получите цялата плейлиста
случай "аз":
sprintf (plbuffer ,"");
Поз = 1;
докато (POS <getPlaylistLength ())
(
заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, POS, IPC_GETPLAYLISTTITLE);
/ / формат на продукцията
/ / сложи \ R между песните в плейлиста
sprintf (plbuffer, "% S% S \ R", plbuffer, заглавие);
Поз ;
)
/ / добавяне на вертикални раздела като края на данни характер
sprintf (plbuffer, "% S \ V", plbuffer);
aPort.write (plbuffer, stringSize (plbuffer));
прекъсване;
/ / получите само две песни да се показват в плейлиста (увеличаване)
случай "J":
IF (current_pos 1 <getPlaylistLength ())
(
current_pos ;
)

заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, current_pos-1, IPC_GETPLAYLISTTITLE);

/ / попълнете първите 16 символа на буфер с първата песен
/ / добавяне на пространство в началото
plbuffer [0] = '';
за (I = 1; I <16; I )
(
plbuffer = заглавие [I-1];
)

/ / премахване на нула за прекратяване характер и се добавя празно пространство
/ / след нула се намери, да го замени, а всички останали с интервали
за (I = 1; I <16; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';
)
)
clear_flag = 0;

/ / получите втора песен да изпратите
IF (current_pos <getPlaylistLength ())
(
заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, current_pos, IPC_GETPLAYLISTTITLE);
/ / попълнете първите 16 символа на буфер с втора песен
/ / добавяне на звездата, за да започват да означава избран текущата песен в плейлиста
plbuffer [16 ]='*';
за (I = 1; I <16; I )
(
plbuffer [I 16] = заглавие [I-1];
)
)

/ / премахване на нула за прекратяване характер и се добавя празно пространство
/ / след нула се намери, да го замени, а всички останали с интервали
за (I = 17; I <32; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';
)
)
clear_flag = 0;

/ / добавяне на вертикален и раздела нула го прекрати
plbuffer [32] = '\ V ";
plbuffer [33] = 0;

/ / пишете на UART
aPort.write (plbuffer, stringSize (plbuffer));
прекъсване;
/ / получите само две песни да се показват в плейлиста (намаляващи)
случай "к":
IF (current_pos-1> = 0)
(
current_pos -;
)

заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, current_pos, IPC_GETPLAYLISTTITLE);

/ / попълнете първите 16 символа на буфер с първата песен
/ / добавяне на звездата, за да означава началото на текущата селекция плейлиста
plbuffer [0 ]='*';
за (I = 1; I <16; I )
(
plbuffer = заглавие [I-1];
)

/ / премахване на нула за прекратяване характер и се добавя празно пространство
/ / след нула се намери, да го замени, а всички останали с интервали
за (I = 0; I <16; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';
)
)
clear_flag = 0;

заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, current_pos 1, IPC_GETPLAYLISTTITLE);

/ / попълнете първите 16 символа на буфер с втора песен
/ / добавяне на пространство в началото
plbuffer [16] = '';
за (I = 1; I <16; I )
(
plbuffer [I 16] = заглавие [I-1];
)

/ / премахване на нула за прекратяване характер и се добавя празно пространство
/ / след нула се намери, да го замени, а всички останали с интервали
за (I = 17; I <32; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';

)

)
clear_flag = 0;

/ / добавяне на вертикален и раздела нула го прекрати
plbuffer [32] = '\ V ";
plbuffer [33] = 0;
aPort.write (plbuffer, stringSize (plbuffer));
прекъсване;
/ / получите текущата две песни в плейлиста
случай "л":

IF (current_pos == 0)
(
song_pos = current_pos 1;
)
иначе song_pos = current_pos;
заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, song_pos-1, IPC_GETPLAYLISTTITLE);

/ / звезда в началото на песента да означава текущата селекция плейлиста
IF (song_pos-1 == current_pos)
(
plbuffer [0 ]='*';
)
/ / добавяне на пространство в началото на песента
иначе plbuffer [0] = '';

/ / попълнете буфер с първите 16 символа на първата песен
за (I = 1; I <16; I )
(
plbuffer = заглавие [I-1];
)

/ / премахване на всички нула символа и да попълните с останалите помещения
за (I = 1; I <16; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';

)

)
clear_flag = 0;IF (song_pos <getPlaylistLength ())
(
заглавие = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, song_pos, IPC_GETPLAYLISTTITLE);
IF (song_pos == current_pos)
(
plbuffer [16 ]='*';
)
иначе plbuffer [16] = '';
за (I = 1; I <16; I )
(
plbuffer [I 16] = заглавие [I-1];
)
)

/ / напълни с първите 16 символа на втората песен
за (I = 17; I <32; I )
(
IF (plbuffer == 0)
(
plbuffer = '';
clear_flag = 1;
)
иначе, ако (clear_flag == 1)
(
plbuffer = '';
)
)
clear_flag = 0;
/ / добавяне на вертикален и раздела нула Чар
plbuffer [32] = '\ V ";
plbuffer [33] = 0;
aPort.write (plbuffer, stringSize (plbuffer));
прекъсване;
/ / играят текущата селекция плейлиста
случай "М":
/ / задаване на плейлиста позиция
SendMessage (plugin.hwndParent, WM_WA_IPC, current_pos, IPC_SETPLAYLISTPOS);
играят ();
прекъсване;

)

)
)

/************************************************* ***************/
/************** основните функции за контрол ***************************/
/************************************************* ***************/
нищожен volumeUp (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_VOLUMEUP, 0);
)

нищожен volumeDown (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_VOLUMEDOWN, 0);
)

Int игра (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_PLAY, 0);
връщане 0;
)

нищожен спиране (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_STOP, 0);
)нищожен пауза (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_PAUSE, 0);
)

нищожен nextTrack (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_NEXT, 0);
)

нищожен prevTrack (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_PREV, 0);
)

нищожен fforward (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_FF, 0);
)

нищожен назад (Void)
(
SendMessage (plugin.hwndParent, WM_COMMAND, WINAMP_REW, 0);
)
/************************************************* ***************/
/************** края основните функции за контрол ***********************/
/************************************************* ***************/

/ / получи статут игра: играя, пауза, стоп
Int getStatus (Void)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, 0, IPC_ISPLAYING);
)

/ / получите основна информация: битрейт, samplrate, канали
Int getInfo (INT режим)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, готовност, IPC_GETINFO);
)

/ / получите версия Winamp
Int getVersion (Void)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, 0, IPC_GETVERSION);
)

/ / текущото изминалото време на песента
/ / време в секунди не работи.Използвайте MSECONDS.
Int getPlayTime (Void)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, MSECONDS, IPC_GETOUTPUTTIME);
)

/ / връща индекса на песен в плейлиста, който в момента се разиграва
Int getPlaylistIndex (Void)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, 0, IPC_GETLISTPOS);
)

/ / връща указател към цялата плейлиста
Чар getPlaylist * (Void)
(
Чар * песен;
Int Pos = 0;
Чар * буфер = "";
докато (POS <getPlaylistLength ())
(
песен = (Чар *) SendMessage (plugin.hwndParent, WM_WA_IPC, getPlaylistIndex (), IPC_GETPLAYLISTTITLE);
sprintf (буфер, "% S \ R \ N% S \ R \ N", буфер, песен);
Поз ;
)
връщане буфер;

)

/ / връща броя на песните в плейлиста
Int getPlaylistLength (Void)
(
връщане SendMessage (plugin.hwndParent, WM_WA_IPC, 0, IPC_GETLISTLENGTH);
)

/ / изчисляване на размера низ така че не трябва да
Int stringSize (Char * inString)
(
Int х = 0;
докато (inString [X]! = 0)
(
X ;
)
връщане X;

 

Welcome to EDABoard.com

Sponsor

Back
Top