View Single Post
Old 10th August 2016, 17:02   #488
pbelkner
Senior Member
 
Join Date: Jun 2010
Posts: 405
Not So YASAPI Output Plug-in v1.0 Beta

Finally "DrO" has made it true and has published a YASAPI plagiat plug-in:

The fanboys of "DrO" are more then happy and post at his blog, e.g. someone who calls himself Pawel writes the following:

Quote:
Pawel | Tuesday, August 9, 2016 - 22:19:11

DrO,
Nice to have WASAPI based plugin for Winamp, but…
If I remember original author didn’t allow to use his sources. Am I right? (despite that in my opinion license allow to use it by anyone). Also he is very strange and posts strange texts on Winamp forum…
So, why did you decide to do anything with YASAPI plugin? It seems to be not nice (or not?)
Quote:
Also he is very strange and posts strange texts on Winamp forum…
Yes indeed, I call a thief a thief.

Pawel, are you this forum's mod? Is this your understanding of being a neutral moderator outing yourself as a fanboy of "DrO"?

And Pawel, I will request DJ Egg investigating whether you are the same person as the fanboy of "DrO"and if it turns out to be true that he fires you as this forum's mod.

Here is a quick "diff" (command diff -br --strip-trailing-cr ./out_notyasapi_v1_0_beta ./out_yasapi-1.7.25) between "DrO"s stolen "Not So YASAPI Output Plug-in v1.0 Beta" and the last official YASAPI. Look for yourself and find out how substantial the changes are are:
PHP Code:
Only in ./out_yasapi-1.7.25/libyarules.mak
Only in 
./out_yasapi-1.7.25/libyastr2wcscpy.c
Only in 
./out_yasapi-1.7.25/libyawc2cscpy.c
Only in 
./out_yasapi-1.7.25/libyawc2csdup.c
Only in 
./out_yasapi-1.7.25/libyawchar2char.c
Only in 
./out_yasapi-1.7.25/libyawcs2strcpy.c
Only in 
./out_yasapi-1.7.25/libyawcs2strdup.c
diff 
-br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya../out_yasapi-1.7.25/libya/ya.h
23d22
#include <strsafe.h>
26d24
#ifdef HAVE_STDINT_H
28,33d25
#else
#include <stddef.h>
//#include <pstdint.h>
#include <wasabi/bfc/platform/types.h>
#include <stdlib.h>
#endif
37d28

43c34
#define YA_EVENT_STACK
---
//#define YA_EVENT_STACK
48c39
//#define YA_DUMP
---
#define YA_DUMP
158a150,152
char *wcs2strdup(const wchar_t *wcsint codepage);
char *wcs2strcpy(char *str, const wchar_t *wcsint codepagesize_t size);
wchar_t *str2wcscpy(wchar_t *wcs, const char *strint codepagesize_t size);
303d296
#if defined (YA_DEBUG) // {
305,307d297
#else // } {
void TraceControlsInit(HWND hDlg);
#endif // }
485,486d474
void QueueUnlockWrite(Queue *pQueueResult *pResult);

502c490
<   UINT/*wchar_t **/help;
---
>   
wchar_t *help;
509c497
<   UINT/*wchar_t **/help;
---
>   
wchar_t *help;
519,520c507,508
<   UINT/*const wchar_t **/format;
<   
UINT/*wchar_t **/help;
---
>   const 
wchar_t *format;
>   
wchar_t *help;
524c512
<   UINT label;
---
>   const 
wchar_t *label;
532c520
<   UINT/*wchar_t **/help;
---
>   
wchar_t *help;
539,540c527,528
<   UINT/*const wchar_t **/format;
<   
UINT/*wchar_t **/help;
---
>   const 
wchar_t *format;
>   
wchar_t *help;
561,562c549,550
HWND ControlCreateToolTip(HWND hDlg/*, HINSTANCE hInstance*/);
void ControlAddToolTip(HWND hDlgHWND hWndint idcUINT idText/*PWSTR pszText*/);
---
HWND ControlCreateToolTip(HWND hDlgHINSTANCE hInstance);
void ControlAddToolTip(HWND hDlgHWND hWndint idcPWSTR pszText);
569c557
HWND ControlsInit(const Control *pControlHWND hDlg/*, HINSTANCE hInstance*/);
---
HWND ControlsInit(const Control *pControlHWND hDlgHINSTANCE hInstance);
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_control../out_yasapi-1.7.25/libya/ya_control.c
28c28
HWND ControlCreateToolTip(HWND hDlg/*, HINSTANCE hInstance*/)
---
HWND ControlCreateToolTip(HWND hDlgHINSTANCE hInstance)
30c30
<   HWND hwndTip CreateWindowExW(
---
>   return 
CreateWindowExW(
34c34
<     WS_POPUP|TTS_ALWAYSTIP/*|TTS_BALLOON*/,
---
>     
WS_POPUP|TTS_ALWAYSTIP|TTS_BALLOON,
42,43c42
<     // TODO do we need this?
<     NULL/*hInstance*/,          // _In_opt_ HINSTANCE hInstance,
---
>     
hInstance,          // _In_opt_ HINSTANCE hInstance,
46,48d44
<   // ensure that it can be seen
<   SetWindowPos(hwndTip,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE|SWP_NOACTIVATE);
<   return 
hwndTip;
51,52c47
extern LPWSTR GetLangString(UINT id);
void ControlAddToolTip(HWND hDlgHWND hWndint idcUINT idText/*PWSTR pszText*/)
---
void ControlAddToolTip(HWND hDlgHWND hWndint idcPWSTR pszText)
56c51
<   /*if (pszText&&*pszText)*/ {
---
>   if (
pszText&&*pszText) {
61c56
<     ti.lpszText=(wchar_t*)GetLangString(idText)/*pszText*/;
---
>     
ti.lpszText=pszText;
63,64d57
<     SendMessageW(hWnd,TTM_SETMAXTIPWIDTH,0,(LPARAM)450);
<     
SendMessageW(hWnd,TTM_SETWINDOWTHEME,0,(LPARAM)L"");
205c198
<     StringCchPrintf(buf,SIZE,GetLangString(config->format),x);
---
>     
swprintf(buf,SIZE,config->format,x);
276c269
<     SendMessageW(hWndCtl,CB_ADDSTRING,0,(LPARAM)GetLangString(list->label));
---
>     
SendMessageW(hWndCtl,CB_ADDSTRING,0,(LPARAM)list->label);
326c319
< static void SliderCascadeSetStatic(HWND hDlgint idcUINT/*const wchar_t **/format,
---
> static 
void SliderCascadeSetStatic(HWND hDlgint idc, const wchar_t *format,
334c327
<     StringCchPrintf(buf,SIZE,GetLangString(format),x);
---
>     
swprintf(buf,SIZE,format,x);
531c524
HWND ControlsInit(const Control *pControlHWND hDlg/*, HINSTANCE hInstance*/)
---
HWND ControlsInit(const Control *pControlHWND hDlgHINSTANCE hInstance)
535c528
<   if (NULL==(hWndTip=ControlCreateToolTip(hDlg/*,hInstance*/)))
---
>   if (
NULL==(hWndTip=ControlCreateToolTip(hDlg,hInstance)))
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_debug../out_yasapi-1.7.25/libya/ya_debug.c
34c34
<     MB_SYSTEMMODAL|MB_YESNO|MB_ICONERROR|MB_DEFBUTTON2
---
>     
MB_SYSTEMMODAL|MB_YESNO|MB_ICONERROR
71d70
#if defined (YA_DUMP) // {
74d72
#endif // }
81d78
#if defined (YA_DUMP) // {
87c84
#endif // }
---

103d99
#if defined (YA_DUMP) // {
106d101
#endif // }
113d107
#if defined (YA_DUMP) // {
119c113
#endif // }
---

diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_dump../out_yasapi-1.7.25/libya/ya_dump.c
53c53
<     StringCchPrintf(pp,
---
>     
swprintf(pp,
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_property../out_yasapi-1.7.25/libya/ya_property.c
45c45
<   StringCchPrintf(buf,YA_PROPERTY_SIZE,L"%d",n);
---
>   
swprintf(buf,YA_PROPERTY_SIZE,L"%d",n);
48c48
<     (group group L"default"),    // _In_  LPCTSTR lpAppName,
---
>     
group,    // _In_  LPCTSTR lpAppName,
58c58
<     (c->group c->group L"default"),         // _In_  LPCTSTR lpAppName,
---
>     
c->group,         // _In_  LPCTSTR lpAppName,
76c76
<   StringCchPrintf(buf,YA_PROPERTY_SIZE,L"%d",PROPERTY_INT(pProperty,c->pData));
---
>   
swprintf(buf,YA_PROPERTY_SIZE,L"%d",PROPERTY_INT(pProperty,c->pData));
79c79
<     (c->group c->group L"default"),         // _In_  LPCTSTR lpAppName,
---
>     
c->group,         // _In_  LPCTSTR lpAppName,
101c101
<   StringCchPrintf(set,YA_PROPERTY_SIZE,L"%f",PROPERTY_DOUBLE(pProperty,c->pDefault));
---
>   
swprintf(set,YA_PROPERTY_SIZE,L"%f",PROPERTY_DOUBLE(pProperty,c->pDefault));
104c104
<     (c->group c->group L"default"),         // _In_   LPCTSTR lpAppName,
---
>     
c->group,         // _In_   LPCTSTR lpAppName,
124c124
<   StringCchPrintf(buf,YA_PROPERTY_SIZE,L"%f",PROPERTY_DOUBLE(pProperty,c->pData));
---
>   
swprintf(buf,YA_PROPERTY_SIZE,L"%f",PROPERTY_DOUBLE(pProperty,c->pData));
127c127
<     (c->group c->group L"default"),         // _In_  LPCTSTR lpAppName,
---
>     
c->group,         // _In_  LPCTSTR lpAppName,
143c143
<     (c->group c->group L"default"),         // _In_   LPCTSTR lpAppName,
---
>     
c->group,         // _In_   LPCTSTR lpAppName,
163c163
<     (c->group c->group L"default"),         // _In_  LPCTSTR lpAppName,
---
>     
c->group,         // _In_  LPCTSTR lpAppName,
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_queue../out_yasapi-1.7.25/libya/ya_queue.c
153c153
<   //HANDLE *pHandles=aHandles;
---
>   
HANDLE *pHandles=aHandles;
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_store../out_yasapi-1.7.25/libya/ya_store.c
84c84
//  CloseHandle(pStore->hAvailable);
---
>   
CloseHandle(pStore->hAvailable);
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/libya/ya_trace../out_yasapi-1.7.25/libya/ya_trace.c
142c142
<     StringCchPrintf(pp,
---
>     
swprintf(pp,
373d372
#if defined (YA_DEBUG) // {
375,377d373
#else // } {
void TraceControlsInit(HWND hDlg)
#endif // }
411d406
#if defined (YA_DEBUG) // {
433d427
#endif // }
No newline at end of file
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapiout_notsoyasapi.c
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapiout_notsoyasapi.nsi
Only in 
./out_yasapi-1.7.25/out_yasapiout_yasapi.c
Only in 
./out_yasapi-1.7.25/out_yasapiout_yasapi.nsi
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/rcabout.bin
Only in 
./out_yasapi-1.7.25/out_yasapi/rcmanifest.xml
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/rcout_notsoyasapi.rc
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/rcresource.h
Only in 
./out_yasapi-1.7.25/out_yasapi/rcresources.h
Only in 
./out_yasapi-1.7.25/out_yasapi/rcresources.rc
Only in 
./out_yasapi-1.7.25/out_yasapiversion.mak
Only in 
/d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapiwasabi.cpp
diff 
-br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi../out_yasapi-1.7.25/out_yasapi/yasapi.h
25
,26d24
#include <strsafe.h>

31,32d28
extern Out_Module plugin;

34c30
//#define YASAPI_ABOUT
---
#define YASAPI_ABOUT
40c36
//#define YASAPI_EXECUTION_STATE
---
#define YASAPI_EXECUTION_STATE
56,57c52
<   #define YASAPI_VER            1.7.25
<   #define PLUGIN_VERSION        "1.0 Beta"
---
>   
#define YASAPI_VER            0.0.0
66c61
<   #define YASAPI_PREFIX         out_notsoyasapi
---
>   
#define YASAPI_PREFIX         out_yasapi
81c76
<   #define PI_VER                PI_VER2 //" (SSE2)"
---
>   
#define PI_VER                PI_VER2 " (SSE2)"
94c89
#define PI_LABEL                "Not So YASAPI Output " PI_VER
---
#define PI_LABEL                "Yet Another (WA)SAPI Output " PI_VER
143a139,141--strip-trailing-cr
__declspec(dllexportOut_Module *winampGetOutModule(void);

///////////////////////////////////////////////////////////////////////////////
307c305
void OptionsCommonSave(OptionsCommon *pOptionsint mode, const wchar_t *path);
---
void OptionsCommonSave(OptionsCommon *pOptions, const wchar_t *path);
473,475c471,473
<     //HINSTANCE hModule;
<     //wchar_t aszModuleName[MAX_PATH];
<     const wchar_t *pszFileName;
---
>     
HINSTANCE hModule;
>     
char aszModuleName[MAX_PATH];
>     const 
char *pszFileName;
614,615d611
void PlayerShutdown(Player *pPlayer);
void PlayerDisconnect(Player *pPlayer);
695c691
int ConfigDialog(Player *pPlayer/*, HINSTANCE hInstance*/HWND hWndParent);
---
int ConfigDialog(Player *pPlayerHINSTANCE hInstanceHWND hWndParent);
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_about../out_yasapi-1.7.25/out_yasapi/yasapi_about.c
21c21
#include <resource.h>
---
#include <resources.h>
54c54
<     SetWindowLongPtr(
---
>     
SetWindowLongW(
168,171c168,176
<     wchar_t message[4096] = {0};
<     
StringCchPrintf(message,ARRAYSIZE(message),(LPWSTR)GetTextResource(IDR_ABOUT_TEXT),
<         
TEXT(PLUGIN_VERSION), TEXT(YASAPI_VERSION),TEXT("Darren Owen aka DrO"), TEXT("2016"), TEXT(__DATE__));
<     
MessageBoxW(hWndParentmessage, (LPWSTR)GetLangString(IDS_ABOUT_TITLE), MB_OK);
---
>   
MessageBoxA(
>     
hWndParent,                 // _In_opt_  HWND hWnd,
>     PI_LABEL "."
>     "\n\nCopyright \xA9 2015-2016 Peter Belkner."
>     "\nFor further details cf. \"http://out-yasapi.sourceforge.net/\".",
>                                 
// _In_opt_  LPCTSTR lpText,
>     "About " PI_LABEL,          // _In_opt_  LPCTSTR lpCaption,
>     MB_OK|MB_ICONINFORMATION    // _In_      UINT uType
>   );
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_config../out_yasapi-1.7.25/out_yasapi/yasapi_config.c
20a21
#include <uxtheme.h>
24c25
#include <resource.h>
---
#include <resources.h>
66,67c67,68
<   UINT label;
<   
UINT idd;
---
>   
char *label;
>   
int idd;
76,78c77,79
<   { IDS_COMMON_OPTIONS,IDD_PAGE_COMMON,GetCommonVMT },
<   { 
IDS_DEVICE_OPTIONS,IDD_PAGE_DEVICE,GetDeviceVMT },
<   { 
IDS_BUFFER_OPTIONS,IDD_PAGE_BUFFERS,GetBuffersVMT }
---
>   { 
"Common Options",IDD_PAGE_COMMON,GetCommonVMT },
>   { 
"Device Options",IDD_PAGE_DEVICE,GetDeviceVMT },
>   { 
"Buffer Options",IDD_PAGE_BUFFERS,GetBuffersVMT }
91c92
<   //HMODULE hModule;
---
>   
HMODULE hModule;
557c558,559
<   Config *pConfig=(Config *)GetWindowLongPtrW(hDlg,GWLP_USERDATA);
---
>   
Config *pConfig=(Config *)GetWindowLongPtr(hDlg,GWLP_USERDATA);
>   
Player *pPlayer=pConfig?pConfig->pPlayer:NULL;
561c563
<     SetWindowLongPtrW(hDlg,GWLP_USERDATA,lParam);
---
>     
SetWindowLongPtr(hDlg,GWLP_USERDATA,lParam);
569d570
#if defined (YA_DEBUG) // {
571,574c572
#else // } {
<     TraceControlsInit(hDlg);
#endif // }
<     ControlsInit(gcaCommonControls,hDlg/*,pConfig->hModule*/);
---
>     
ControlsInit(gcaCommonControls,hDlg,pConfig->hModule);
703c701
<   Config *pConfig=(Config *)GetWindowLongPtrW(hDlg,GWLP_USERDATA);
---
>   
Config *pConfig=(Config *)GetWindowLongPtr(hDlg,GWLP_USERDATA);
708,709c706,707
<     SetWindowLongPtrW(hDlg,GWLP_USERDATA,lParam);
<     
ControlsInit(gcaDeviceControls,hDlg/*,pConfig->hModule*/);
---
>     
SetWindowLongPtr(hDlg,GWLP_USERDATA,lParam);
>     
ControlsInit(gcaDeviceControls,hDlg,pConfig->hModule);
796c794
<   Config *pConfig=(Config *)GetWindowLongPtrW(hDlg,GWLP_USERDATA);
---
>   
Config *pConfig=(Config *)GetWindowLongPtr(hDlg,GWLP_USERDATA);
801,802c799,800
<     SetWindowLongPtrW(hDlg,GWLP_USERDATA,lParam);
<     
ControlsInit(gcaBuffersControls,hDlg/*,pConfig->hModule*/);
---
>     
SetWindowLongPtr(hDlg,GWLP_USERDATA,lParam);
>     
ControlsInit(gcaBuffersControls,hDlg,pConfig->hModule);
850,851c848,849
<   int nCurPage=TabCtrl_GetCurSel(hWndTab);
<   
Page *pPage=pConfig->aPages+nCurPage;
---
>   
int nPage=TabCtrl_GetCurSel(hWndTab);
>   
Page *pPage=pConfig->aPages+nPage;
860,881c858
<   pConfig->options.common.nPage=nCurPage;
< }

< static 
int ResizeComboBoxDropDown(HWND hParentHWND hComboBox, const wchar_t *strint width)
< {
<     
SIZE size = {0};
<     
HDC hdc GetDC(hComboBox);

<     
// get and select parent dialog's font so that it'll calculate things correctly
<     HFONT font = (HFONT)SendMessage(hParentWM_GETFONT00),
<           
oldfont = (HFONT)SelectObject(hdcfont);

<     
GetTextExtentPoint32(hdcstrlstrlen(str) + 1, &size);

<     if (
size.cx width)
<     {
<         
SendMessageW(hComboBoxCB_SETDROPPEDWIDTHsize.cx0);
<     }

<     
SelectObject(hdcoldfont);
<     
ReleaseDC(hComboBoxhdc);
<     return 
size.cx;
---
>   
pConfig->options.common.nPage=nPage;
888c865,866
<   UINT uLen,cDevice,nDevice=0,labelLen,comboWidth=0;
---
>   
UINT uLen;
>   
int cDevice,nDevice;
891a870,871
>   nDevice=0;

904,907c884,885
<       lstrcpyn(pwszLabel,L"Default Device -- ",uLen);
<       
labelLen wcslen(pwszLabel);
<       
uLen-=labelLen;
<       
lstrcpyn(pwszLabel+labelLen,pConfigDevice->vName.pwszVal,uLen);
---
>       
wcscpy(pwszLabel,L"Default Device -- ");
>       
wcscpy(pwszLabel+wcslen(pwszLabel),pConfigDevice->vName.pwszVal);
913d890
<     comboWidth ResizeComboBoxDropDown(hDlg,hComboBox,pwszLabel,comboWidth);
938c915,916
<   TCITEM tie = {0};
---
>   
TCITEMA tie;
>   
LPCTSTR lpTemplateName;
942a921
>   memset(&tie,0,sizeof tie);
945,946c924,928
<   tie.pszText=(LPWSTR)GetLangString(pTemplate->label);
<   
SendMessage(hWndTab,TCM_INSERTITEM,nPage,(LPARAM)&tie);
---
>   
tie.pszText=pTemplate->label;
>   
SendMessageA(hWndTab,TCM_INSERTITEMA,nPage,(LPARAM)&tie);

>   
// Finding resource.
>   lpTemplateName=MAKEINTRESOURCEA(pTemplate->idd);
948,949c930,932
<   pPage->hDlg=(HWND)WACreateDialogParam(
<     
pTemplate->idd,   // _In_     LPCTSTR   lpTemplateName,
---
>   
pPage->hDlg=CreateDialogParamA(
>     
pConfig->hModule// _In_opt_ HINSTANCE hInstance,
>     lpTemplateName,   // _In_     LPCTSTR   lpTemplateName,
971,972c954,955
<   SetWindowPos(pPage->hDlg,hWndTab/*HWND_TOP*/,rc.left,rc.top,0,0,
<       
SWP_NOSIZE|SWP_HIDEWINDOW|SWP_NOACTIVATE);
---
>   
SetWindowPos(pPage->hDlg,HWND_TOP,rc.left,rc.top,0,0,
>       
SWP_NOSIZE|SWP_HIDEWINDOW);
974a958,960
lock:
load:
find:
982c968
<   int nPageCreate;
---
>   
int nPage;
993,994c979,980
<   for (nPageCreate=0;nPageCreate<NUM_PAGES;++nPageCreate) {
<     if (
ConfigInitPage(hDlg,hWndTab,pConfig,nPageCreate)<0) {
---
>   for (
nPage=0;nPage<NUM_PAGES;++nPage) {
>     if (
ConfigInitPage(hDlg,hWndTab,pConfig,nPage)<0) {
999c985,990
<     SendMessage(plugin.hMainWindow,WM_WA_IPC,(WPARAM)pConfig->aPages[nPageCreate].hDlg,IPC_USE_UXTHEME_FUNC);
---
#if 1 // {
>     EnableThemeDialogTexture(
>       
pConfig->aPages[nPage].hDlg,  // _In_ HWND  hwnd,
>       ETDT_ENABLETAB                // _In_ DWORD dwFlags
>     );
#endif // }
1002c993
<   SendMessage(hWndTab,TCM_SETCURSEL,pConfig->options.common.nPage,0);
---
>   
SendMessageA(hWndTab,TCM_SETCURSEL,pConfig->options.common.nPage,0);
1010c1001
< static INT_PTR ConfigOnInit(HWND hDlgWPARAM wParamConfig *pConfig)
---
> static 
INT_PTR ConfigOnInit(HWND hDlgConfig *pConfig)
1016a1008
>   SetWindowTextA(hDlg,PI_LABEL " Settings");
1050,1051c1042,1044
<   hWndTip=ControlsInit(gcaCoreDeviceControls,hDlg/*,pConfig->hModule*/);
<   
ControlAddToolTip(hDlg,hWndTip,IDC_COMBOBOX_DEVICE,IDS_DEVICE_FOR_OUTPUT);
---
>   
hWndTip=ControlsInit(gcaCoreDeviceControls,hDlg,pConfig->hModule);
>   
ControlAddToolTip(hDlg,hWndTip,IDC_COMBOBOX_DEVICE,
>       
L"The device where the audio should be routed.");
1055a1049

1068c1062
<   lstrcpyn(pConfig->options.common.szId,pstrId,nLen);
---
>   
wcsncpy(pConfig->options.common.szId,pstrId,nLen);
1073a1068,1073
>     SetWindowTextW(
>                     
// _In_     HWND    hWnd,
>       GetDlgItem(pPage->hDlg,IDC_STATIC_DEVICE_NAME),
>       
pwszLabel     // _In_opt_ LPCTSTR lpString
>     );

1113a1114
>   Config *pConfig=va_arg((pRequest)->ap,Config *);
1118,1128c1119
<   OptionsCommonSave(&pPlayer->options.common,0,pPlayer->options.path);
#if defined (YASAP_DEBUG) // {
<   TraceSwitch(&trace);
#endif // }

<   return 
0;
< }

< static 
int PlayerWriteConfigSpecific(Player *pPlayerRequest *pRequest)
< {
<   
OptionsCommonSave(&pPlayer->options.common,1,pPlayer->options.path);
---
>   
OptionsCommonSave(&pPlayer->options.common,pPlayer->options.path);
1151,1165d1141
void ConfigSaveSpecific(Config *pConfig)
< {
<   
Player *pPlayer=pConfig->pPlayer;
<   
/*HWND hComboBox=GetDlgItem(pConfig->hDlg,IDC_COMBOBOX_DEVICE);
<   DWORD cDevice=SendMessageW(hComboBox,CB_GETCURSEL,0,0);
<   ConfigDevice *pConfigDevice=(ConfigDevice *)SendMessageW(hComboBox,
<       CB_GETITEMDATA,cDevice,0);*/

<   
//if (pConfigDevice) {
<     // should be called before the lock in order to not dead-lock this window.
<     ConfigGet(pConfig);
<     
PLAYER_SEND(pPlayer,PlayerWriteConfigSpecific,pConfig,NULL/*pConfigDevice*/);
<   
//}
< }

1242c1218
<     ConfigOnInit(hDlg,wParam,pConfig);
---
>     
ConfigOnInit(hDlg,pConfig);
1251d1226
<       ConfigSaveSpecific(pConfig);
1319c1294
int ConfigDialog(Player *pPlayer/*, HINSTANCE hInstance*/HWND hWndParent)
---
int ConfigDialog(Player *pPlayerHINSTANCE hInstanceHWND hWndParent)
1321a1297
>   LPCWSTR lpTemplateName=MAKEINTRESOURCEW(IDD_CONFIG);
1326c1302
<   Config config = {0};
---
>   
Config config;
1342a1319
>   ZeroMemory(&config,sizeof config);
1344c1321
<   //config.hModule=hInstance;
---
>   
config.hModule=hInstance;
1388,1389c1365,1367
<   WADialogBoxParam(
<     
IDD_CONFIG,       // _In_      LPCTSTR lpTemplateName,
---
>   
DialogBoxParamW(
>     
hInstance,            // _In_opt_  HINSTANCE hInstance,
>     lpTemplateName,       // _In_      LPCTSTR lpTemplateName,
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_control_list../out_yasapi-1.7.25/out_yasapi/yasapi_control_list.c
21c21
#include <resource.h>
---
#include <resources.h>
26c26,28
<   { IDC_CHECKBOX_MONO2STEREO,offsetof(OptionsCommon,bMono2Stereo),0,1,IDS_MONO_TO_STEREO };
---
>   { 
IDC_CHECKBOX_MONO2STEREO,offsetof(OptionsCommon,bMono2Stereo),0,1,
>       
L"If playing mono, whether YASAPI should duplicate the one mono"
>       L" channel, i.e. convert mono to stereo." };
30c32,33
<   { IDC_CHECKBOX_VOLUME,offsetof(OptionsCommon,bVolume),0,1,IDS_USE_WINAMP_VOLUME };
---
>   { 
IDC_CHECKBOX_VOLUME,offsetof(OptionsCommon,bVolume),0,1,
>       
L"Whether YASAPI should apply Winamp's volume control." };
35c38,39
<   { IDC_CHECKBOX_GAPLESS,offsetof(OptionsCommon,bGapless),0,1,IDS_GAPLESS_PLAYBACK };
---
>   { 
IDC_CHECKBOX_GAPLESS,offsetof(OptionsCommon,bGapless),0,1,
>       
L"Whether playback shoud be in gapless mode." };
39c43,45
<   { IDC_CHECKBOX_DISCONNECT,offsetof(OptionsCommon,bDisconnect),0,1,IDS_DISCONNECT_WHEN_IDLE };
---
>   { 
IDC_CHECKBOX_DISCONNECT,offsetof(OptionsCommon,bDisconnect),0,1,
>       
L"In gapless mode, whether YASAPI should automatically disconnect"
>       L" the device when idle." };
62c68,71
<   { IDC_CHECKBOX_SORROUND,offsetof(OptionsCommon,bSorround),0,1,IDS_SURROUND_MODE };
---
>   { 
IDC_CHECKBOX_SORROUND,offsetof(OptionsCommon,bSorround),0,1,
>       
L"Whether 4, 6, or 8 channels should be interpreted as qadrophnic"
>       L" (3.1), 5.1, or 7.1 (disabled) or sorround (3.1 sorround)"
>       L", 5.1 sorround, or 7.1 sorround (enabled), respectively." };
67c76,79
<   { IDC_CHECKBOX_FORMAT_SUPPORTED,offsetof(OptionsCommon,bFormatSupported),0,1,IDS_TEST_FORMAT };
---
>   { 
IDC_CHECKBOX_FORMAT_SUPPORTED,
>       
offsetof(OptionsCommon,bFormatSupported),0,1,
>       
L"Whether YASAPI should call IAudioClient::IsFormatSupported before"
>       L" IAudioClient::Initialize." };
71,72c83,84
<   { IDS_WASAPI,},
<   { 
IDS_SYSTEM,},
---
>   { 
L"WASAPI",},
>   { 
L"System",},
77c89,92
<   { IDC_COMBOBOX_CLOCK,offsetof(OptionsCommon,bAudioClock),gcaAudioClockList,IDS_CLOCK_MODE };
---
>   { 
IDC_COMBOBOX_CLOCK,offsetof(OptionsCommon,bAudioClock),gcaAudioClockList,
>       
L"Whether Winamp visualization should be synchronized by means of"
>       L" the IAudioClock interface (WASAPI) or"
>       L" the GetTickCount function (System)." };
81c96,98
<   { IDC_CHECKBOX_VISUALIZATION,offsetof(OptionsCommon,bVisualization),0,1,IDS_VISUALISE_BUFFERS };
---
>   { 
IDC_CHECKBOX_VISUALIZATION,offsetof(OptionsCommon,bVisualization),0,1,
>       
L"Whether the configuration dialog should visualize the ring and"
>       L" the shared buffers." };
85,86c102,109
<   { IDC_RADIOBUTTON_TIME_POSITION,offsetof(OptionsCommon,eTimeTag),TIME_POSITION,IDS_TIME_POSITION },
<   { 
IDC_RADIOBUTTON_TIME_TIME,offsetof(OptionsCommon,eTimeTag),TIME_TIME,IDS_TIME_TIME },
---
>   { 
IDC_RADIOBUTTON_TIME_POSITION,offsetof(OptionsCommon,eTimeTag),
>       
TIME_POSITION,
>       
L"Whether time should be measured by an 64-bit integer"
>       L" representing the position." },
>   { 
IDC_RADIOBUTTON_TIME_TIME,offsetof(OptionsCommon,eTimeTag),
>       
TIME_TIME,
>       
L"Whether time should be measured by a floating point"
>       L" value representing the quotient of position and frequency." },
114,116c137,139
<   { IDS_SHARE,YASAPI_SHAREMODE_SHARE },
<   { 
IDS_EXCLUSIVE,YASAPI_SHAREMODE_EXCLUSIVE },
<   { 
IDS_AUTOMATIC,YASAPI_SHAREMODE_AUTOMATIC },
---
>   { 
L"Share",YASAPI_SHAREMODE_SHARE },
>   { 
L"Exclusive",YASAPI_SHAREMODE_EXCLUSIVE },
>   { 
L"Automatic",YASAPI_SHAREMODE_AUTOMATIC },
121c144,148
<   { IDC_COMBOBOX_SHAREMODE,offsetof(OptionsDevice,eShareMode),gcaShareModeList,IDS_SHAREMODE };
---
>   { 
IDC_COMBOBOX_SHAREMODE,offsetof(OptionsDevice,eShareMode),
>       
gcaShareModeList,
>       
L"Depending on the device, whether WASAPI should operate in share"
>       L" or in exclusive mode or whether it should automatically fall back"
>       L" from exclusive to share mode if needed." };
125c152,155
<   { IDC_CHECKBOX_AUTOCONVERT_PCM,offsetof(OptionsDevice,bAutoConvertPCM),FALSE,TRUE,IDS_AUTO_CONVERT_PCM };
---
>   { 
IDC_CHECKBOX_AUTOCONVERT_PCM,offsetof(OptionsDevice,bAutoConvertPCM),
>       
FALSE,TRUE,
>       
L"In share mode, wether WASAPI should auto-convert the samplerate"
>       L" to the system setting if needed." };
129c159,163
<   { IDC_CHECKBOX_SRC_DEFAULT_QUALITY,offsetof(OptionsDevice,bSRCDefaultQuality),FALSE,TRUE,IDS_SRC_DEFAULT_QUALITY };
---
>   { 
IDC_CHECKBOX_SRC_DEFAULT_QUALITY,
>       
offsetof(OptionsDevice,bSRCDefaultQuality),
>       
FALSE,TRUE,
>       
L"In share mode, whether WASAPI should use an improved algorithm"
>       L" for sample rate conversion (SRC). Not supported by all systems." };
133,134c167,168
<   { IDS_PUSH,FALSE },
<   { 
IDS_PULL,TRUE },
---
>   { 
L"Push",FALSE },
>   { 
L"Pull",TRUE },
139c173,176
<   { IDC_COMBOBOX_PULL,offsetof(OptionsDevice,bPull),gcaPullList,IDS_PUSH_OR_PULL };
---
>   { 
IDC_COMBOBOX_PULL,offsetof(OptionsDevice,bPull),
>       
gcaPullList,
>       
L"Depending on the abilities of the device, whether WASAPI should"
>       L" operate in push or pull mode." };
144,145c181,182
<   { IDS_NO,FALSE },
<   { 
IDS_YES,TRUE },
---
>   { 
L"No",FALSE },
>   { 
L"Yes",TRUE },
151c188,189
<       offsetof(OptionsDevice,bForce24Bit),FALSE,TRUE,IDS_16BIT_AS_24BIT };
---
>       
offsetof(OptionsDevice,bForce24Bit),FALSE,TRUE,
>       
L"Whether WASAPI should play 16 bit streams as 24 bit." };
195,196c233,234
<   { IDS_DEFAULT,YASAPI_DEVICE_PERIOD_DEFAULT },
<   { 
IDS_MINIMUM,YASAPI_DEVICE_PERIOD_MINIMUM },
---
>   { 
L"Default",YASAPI_DEVICE_PERIOD_DEFAULT },
>   { 
L"Minimum",YASAPI_DEVICE_PERIOD_MINIMUM },
201c239,242
<   { IDC_COMBOBOX_DEVICE_PERIOD,offsetof(OptionsDevice,eDevicePeriod),gcaDevicePeriodList,IDS_DEVICE_PERIOD };
---
>   { 
IDC_COMBOBOX_DEVICE_PERIOD,offsetof(OptionsDevice,eDevicePeriod),
>       
gcaDevicePeriodList,
>       
L"Whether the buffer size calculation should be based on the"
>       L" default or on the minimum device periode as proposed by WASAPI." };
207c248,250
<       IDC_STATIC_SHARE_SIZE,IDS_SLIDER_MINIMUM_DEFAULT,IDS_SHARE_SIZE };
---
>       
IDC_STATIC_SHARE_SIZE,L"%0.1f \xD7 minimum/default",
>       
L"A factor YASAPI should apply to the device period proposed"
>       L" by WASAPI." };
211c254,258
<       IDC_STATIC_RING_SIZE,IDS_SLIDER_SHARED_BUFFER,IDS_RING_SIZE },
---
>       
IDC_STATIC_RING_SIZE,L"Size: %0.2f \xD7 size of shared buffer",
>       
L"The number of samples YASAPI should be able to buffer between"
>       L" having received from Winamp and before sending to the device."
>       L" Must be at least as much being able to cache before starting"
>       L" to play." },
213c260,263
<       IDC_STATIC_RING_FILL,IDS_SLIDER_PREBUFFER,IDS_RING_FILL },
---
>       
IDC_STATIC_RING_FILL,L"Start Playing: %0.2f \xD7 size of shared buffer",
>       
L"The number of samples YASAPI should have received from Winamp before"
>       L" starting to play. Must be at least the size of the buffer YASAPI"
>       L" shares with the device." },
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_device../out_yasapi-1.7.25/out_yasapi/yasapi_device.c
66c66
<     lstrcpyn(pPlayerDevice->szId,pstrId,ARRAYSIZE(pPlayerDevice->szId));
---
>     
wcscpy(pPlayerDevice->szId,pstrId);
71c71
<     lstrcpyn(pPlayerDevice->szId,pcstrId,ARRAYSIZE(pPlayerDevice->szId));
---
>     
wcscpy(pPlayerDevice->szId,pcstrId);
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_kill../out_yasapi-1.7.25/out_yasapi/yasapi_kill.c
109c109
<   //HRESULT hr;
---
>   
HRESULT hr;
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_notify../out_yasapi-1.7.25/out_yasapi/yasapi_notify.c
94a95
>   Player *pPlayer=pNotify->pPlayer;
105c106

---
>   
Player *pPlayer=pNotify->pPlayer;
122a124,129
>   PlayerNotificationClient *pNotify=(PlayerNotificationClient *)This;
>   
Player *pPlayer=pNotify->pPlayer;
>   
int srate;
>   
int numchan;
>   
int bps;
>   
Ring ring;
125a133
>   PlayerDevice device;
157a166,168
>   PlayerNotificationClient *pNotify=(PlayerNotificationClient *)This;
>   
Player *pPlayer=pNotify->pPlayer;

167a179,181
>   PlayerNotificationClient *pNotify=(PlayerNotificationClient *)This;
>   
Player *pPlayer=pNotify->pPlayer;

238a253,255
>   PlayerNotificationClient *pNotify=(PlayerNotificationClient *)This;
>   
Player *pPlayer=pNotify->pPlayer;

diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_options_common../out_yasapi-1.7.25/out_yasapi/yasapi_options_common.c
48
,63c48,49
<   { YA_PROPERTY_CONFIGX,&gcIntType,offsetof(OptionsCommon,nPosX),},
<   { 
YA_PROPERTY_CONFIGY,&gcIntType,offsetof(OptionsCommon,nPosY),},
#endif // }
<   { NULL,NULL,0,}
< };

< static const 
Property gcaConfigProperties[]={
<   { 
YASAPI_PROPERTY_PAGE,&gcIntType,offsetof(OptionsCommon,nPage),},
#if defined (YASAPI_ABOUT) // {
<   { YA_PROPERTY_CONFIGX,&gcIntType,offsetof(OptionsCommon,nConfigX),},
<   { 
YA_PROPERTY_CONFIGY,&gcIntType,offsetof(OptionsCommon,nConfigY),},
<   { 
YA_PROPERTY_ABOUTX,&gcIntType,offsetof(OptionsCommon,nAboutX),},
<   { 
YA_PROPERTY_ABOUTY,&gcIntType,offsetof(OptionsCommon,nAboutY),},
#else // } {
<   { YA_PROPERTY_CONFIGX,&gcIntType,offsetof(OptionsCommon,nPosX),},
<   { 
YA_PROPERTY_CONFIGY,&gcIntType,offsetof(OptionsCommon,nPosY),},
---
>   { 
YASAPI_PROPERTY_POSX,&gcIntType,offsetof(OptionsCommon,nPosX),},
>   { 
YASAPI_PROPERTY_POSY,&gcIntType,offsetof(OptionsCommon,nPosY),},
88c74
void OptionsCommonSave(OptionsCommon *pOptionsint mode, const wchar_t *path)
---
void OptionsCommonSave(OptionsCommon *pOptions, const wchar_t *path)
95,97c81
<   // this change allows us to save only the config window
<   // state if we are not doing a full configuration save.
<   PropertiesSave((!mode gcaCommonProperties gcaConfigProperties),&c);
---
>   
PropertiesSave(gcaCommonProperties,&c);
108d91
<     options.bVolume=TRUE;
113c96
<     options.bGapless=TRUE;
---
>     
options.bGapless=FALSE;
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_player../out_yasapi-1.7.25/out_yasapi/yasapi_player.c
21c21
#include <resource.h>
---
#include <resources.h>
62d61
<   wchar_t aszModuleName[MAX_PATH] = {0};
88c87
<   nLen=GetModuleFileName(
---
>   
nLen=GetModuleFileNameA(
90,91c89,90
<     aszModuleName,            // _Out_    LPTSTR  lpFilename,
<     ARRAYSIZE(aszModuleName)  // _In_     DWORD   nSize
---
>     
pPlayer->base.aszModuleName,          // _Out_    LPTSTR  lpFilename,
>     sizeof pPlayer->base.aszModuleName    // _In_     DWORD   nSize
99c98
<   pPlayer->base.pszFileName=basenamew(aszModuleName);
---
>   
pPlayer->base.pszFileName=basenamea(pPlayer->base.aszModuleName);
101c100
<   //pPlayer->base.hModule=hModule;
---
>   
pPlayer->base.hModule=hModule;
265c264
<   AUDCLNT_SHAREMODE eShareMode AUDCLNT_SHAREMODE_SHARED;
---
>   
AUDCLNT_SHAREMODE eShareMode;
766a766,767
state:
>   return -
1;
1338c1339
<   dwFramesRead=RingReadEx(pRing,(LPSTR)pData,c.dwWriteSize,RING_COPY,&error);
---
>   
dwFramesRead=RingReadEx(pRing,pData,c.dwWriteSize,RING_COPY,&error);
1385c1386
<   RingReadEx(pRing,(LPSTR)pData,c.dwWriteSize,RING_COMMIT,&error);
---
>   
RingReadEx(pRing,pData,c.dwWriteSize,RING_COMMIT,&error);
1458a1460
//DPRINTF(0,"%s 1\n",__func__);
1462a1465
//DPRINTF(0,"%s 2\n",__func__);
1517a1521
>   WAVEFORMATEX *pwfx=&pPlayer->open.wfxx.Format;
1576a1581,1584
>   const PlayerState state=pPlayer->state;
>   
Connection *pConnect=&pPlayer->connect;
>   
IAudioClient *pClient=pConnect->pClient;
>   
HRESULT hr;
1730a1739
padding:
1738a1748
>   Connection *pConnect=&pPlayer->connect;
1904c1914
<   return (UINT32)-1;
---
>   return -
1;
2109a2120
>   Options *pOptions=&pPlayer->options;
2116a2128
>   const char *lwp;
2123,2124d2134
<   char *wp=Destination,*lwp=wp,*mp=wp+Length;
<   const 
char *rp=Source;
2125a2136,2137
>   char *wp,*mp;
>   const 
char *rp;
2128a2141,2143
>   wp=Destination;
>   
mp=wp+Length;
>   
rp=Source;
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_ring../out_yasapi-1.7.25/out_yasapi/yasapi_ring.c
20a21
#include <stdint.h>
82c83
<   return (DWORD)-1;
---
>   return -
1;
282c283
<   return (DWORD)-1;
---
>   return -
1;
301c302
<   return (DWORD)-1;
---
>   return -
1;
356c357
<   return (DWORD)-1;
---
>   return -
1;
452c453
<   return (DWORD)-1;
---
>   return -
1;
482c483
<   return (DWORD)-1;
---
>   return -
1;
553c554
<   return (DWORD)-1;
---
>   return -
1;
621c622
<   return (DWORD)-1;
---
>   return -
1;
771a773
size:
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_strategy../out_yasapi-1.7.25/out_yasapi/yasapi_strategy.c
101a102
>   HRESULT hr;
diff -br --strip-trailing-cr /d/MSys2/home/out_notyasapi_v1_0_beta/out_yasapi/yasapi_time../out_yasapi-1.7.25/out_yasapi/yasapi_time.c
217a218
>   TimeSegment difference;
323a325,329
>     if (!pTime->u64Frequency) {
>       
DMESSAGE("division by zero frequency\n");
>       goto 
frequency;
>     }

333a340
frequency
He doesn't touched any of the substantial problems inherent in YASAPI. He even know about them.As expected, all he did is (some) irrelevant GUI stuff.

The most substantial change of course (not reflected in the "diff") is fa new About dialog:



That's indeed the only reason for the plagiat , "DrO" wants to put his name on it.

Winamp v5.666 Build 3516 (x86) + in_ffsox + out_yasapi + gen_yas
pbelkner is offline   Reply With Quote