summaryrefslogtreecommitdiff
path: root/plugins/Bass_interface/Main.cpp
diff options
context:
space:
mode:
authorKirill Volinsky <mataes2007@gmail.com>2012-05-20 18:33:39 +0000
committerKirill Volinsky <mataes2007@gmail.com>2012-05-20 18:33:39 +0000
commit67c6f233d7e60ad59918e734fe565f5f5dfd28d5 (patch)
tree213ab09cf6250d2bee311dc20e0c580838681580 /plugins/Bass_interface/Main.cpp
parentc9bf0c30a59a922b96713db54e2293fdf7334adf (diff)
projects renames and fixes
git-svn-id: http://svn.miranda-ng.org/main/trunk@105 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/Bass_interface/Main.cpp')
-rw-r--r--plugins/Bass_interface/Main.cpp513
1 files changed, 0 insertions, 513 deletions
diff --git a/plugins/Bass_interface/Main.cpp b/plugins/Bass_interface/Main.cpp
deleted file mode 100644
index 3c9d5108a5..0000000000
--- a/plugins/Bass_interface/Main.cpp
+++ /dev/null
@@ -1,513 +0,0 @@
-/*
-Copyright (C) 2010, 2011 tico-tico
-*/
-
-#include "bass_interface.h"
-
-HINSTANCE hInst;
-PLUGINLINK *pluginLink;
-int hLangpack;
-
-PLUGININFOEX pluginInfo={
- sizeof(PLUGININFOEX),
- __PLUGIN_NAME,
- PLUGIN_MAKE_VERSION(__MAJOR_VERSION, __MINOR_VERSION, __RELEASE_NUM, __BUILD_NUM),
- __DESCRIPTION,
- __AUTHOR,
- __AUTHOREMAIL,
- __COPYRIGHT,
- __AUTHORWEB,
- UNICODE_AWARE,
- 0,
- MIID_BASSINT
-};
-
-struct MM_INTERFACE mmi;
-
-static HANDLE hHooks[5] = {0};
-static HANDLE hService;
-static HINSTANCE hBass = NULL;
-
-extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved)
-{
- hInst=hinstDLL;
- return TRUE;
-}
-
-extern "C" __declspec(dllexport) PLUGININFOEX* MirandaPluginInfoEx(DWORD mirandaVersion)
-{
- return &pluginInfo;
-}
-
-static const MUUID interfaces[] = {MIID_BASSINT, MIID_LAST};
-extern "C" __declspec(dllexport) const MUUID* MirandaPluginInterfaces(void)
-{
- return interfaces;
-}
-
-#define MAXCHAN 5
-static TCHAR CurrBassPath[MAX_PATH], tmp[MAX_PATH];
-static int sndNSnd = 0, sndLimSnd;
-static HSTREAM sndSSnd[MAXCHAN] = {0};
-
-static WORD TimeWrd1, TimeWrd2, StatMask;
-static BOOL QuietTime, Preview, EnPreview;
-static int Volume;
-static int device = -1;
-static int newBass = 0;
-static HWND ClistHWND;
-
-static int OnPlaySnd(WPARAM wParam, LPARAM lParam)
-{
- char * pszFile = (char *) lParam; SYSTEMTIME systime; WORD currtime, currstat; BOOL doPlay = TRUE;
-
- GetLocalTime(&systime);
- currtime = MAKEWORD(systime.wMinute, systime.wHour);
-
- currstat = 1;
- switch (CallService(MS_CLIST_GETSTATUSMODE, 0, 0))
- {
- case ID_STATUS_OUTTOLUNCH: currstat <<= 1;
- case ID_STATUS_ONTHEPHONE: currstat <<= 1;
- case ID_STATUS_INVISIBLE: currstat <<= 1;
- case ID_STATUS_FREECHAT: currstat <<= 1;
- case ID_STATUS_DND: currstat <<= 1;
- case ID_STATUS_OCCUPIED: currstat <<= 1;
- case ID_STATUS_NA: currstat <<= 1;
- case ID_STATUS_AWAY: currstat <<= 1;
- case ID_STATUS_ONLINE: currstat <<= 1;
- }
-
- if ( !DBGetContactSettingByte(NULL,"Skin","UseSound",0) ) doPlay = FALSE;
-
- if ( QuietTime )
- if (
- ((TimeWrd1 < TimeWrd2) && (TimeWrd1 <= currtime && currtime < TimeWrd2)) ||
- ((TimeWrd2 < TimeWrd1) && (TimeWrd1 <= currtime || currtime < TimeWrd2))
- ) doPlay = FALSE;
-
- if ( !(currstat & StatMask) ) doPlay = FALSE;
-
- if ( Preview || (int)wParam==1 ) doPlay = TRUE;
-
- if ( !pszFile ) doPlay = FALSE;
-
- if ( doPlay )
- {
- BASS_StreamFree(sndSSnd[sndNSnd]);
- sndSSnd[sndNSnd] = BASS_StreamCreateFile(FALSE, pszFile, 0, 0, BASS_STREAM_AUTOFREE);
- BASS_ChannelPlay(sndSSnd[sndNSnd], FALSE);
- sndNSnd = (sndNSnd+1)%sndLimSnd;
- }
-
- Preview = FALSE;
-
- return 0;
-}
-
-#define SLIDER_MIN 0
-#define SLIDER_MAX 100
-
-INT_PTR CALLBACK OptionsProc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)
-{
- switch(msg)
- {
- case WM_INITDIALOG:
- {
- int i; SYSTEMTIME systime = {0};
-
- TranslateDialogDefault(hwndDlg);
-
- SendDlgItemMessage(hwndDlg, IDC_MAXCHANNEL, CB_RESETCONTENT, 0, 0);
- for(i=1; i<=MAXCHAN; i++)
- SendDlgItemMessage(hwndDlg, IDC_MAXCHANNEL, CB_ADDSTRING, 0, (LPARAM)_itot(i, tmp, 10));
-
- SendDlgItemMessage(hwndDlg, IDC_MAXCHANNEL, CB_SETCURSEL, sndLimSnd - 1, 0);
-
- SendDlgItemMessage(hwndDlg, IDC_CURRPATH, WM_SETTEXT, 0, (LPARAM)CurrBassPath);
-
- SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETRANGE, FALSE, MAKELONG(SLIDER_MIN,SLIDER_MAX));
- SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETPOS, TRUE, Volume);
- SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_SETPAGESIZE, 0, 5);
-
- systime.wHour = HIBYTE(TimeWrd1);
- systime.wMinute = LOBYTE(TimeWrd1);
- systime.wYear = 2000;
- systime.wMonth = 1;
- systime.wDay = 1;
- SendDlgItemMessage(hwndDlg, IDC_TIME1, DTM_SETFORMAT, 0, (LPARAM)_T("HH:mm"));
- SendDlgItemMessage(hwndDlg, IDC_TIME1, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&systime);
- systime.wHour = HIBYTE(TimeWrd2);
- systime.wMinute = LOBYTE(TimeWrd2);
- SendDlgItemMessage(hwndDlg, IDC_TIME2, DTM_SETFORMAT, 0, (LPARAM)_T("HH:mm"));
- SendDlgItemMessage(hwndDlg, IDC_TIME2, DTM_SETSYSTEMTIME, GDT_VALID, (LPARAM)&systime);
-
- CheckDlgButton(hwndDlg, IDC_PREVIEW, EnPreview ? BST_CHECKED : BST_UNCHECKED);
-
- for(i = IDC_CHECKBOX1; i < IDC_CHECKBOX10+1; i++)
- {
- if (StatMask & (1 << (i-IDC_CHECKBOX1)))
- CheckDlgButton(hwndDlg, i, BST_CHECKED);
- }
-
- if (QuietTime)
- {
- EnableWindow(GetDlgItem(hwndDlg,IDC_TIME1), TRUE);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TIME2), TRUE);
- CheckDlgButton(hwndDlg, IDC_QUIETTIME, BST_CHECKED);
- }
- if (hBass == NULL)
- {
- EnableWindow(GetDlgItem(hwndDlg, IDC_VOLUME), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_MAXCHANNEL), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_OUTDEVICE), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_QUIETTIME), FALSE);
- EnableWindow(GetDlgItem(hwndDlg, IDC_PREVIEW), FALSE);
-
- for(i = IDC_CHECKBOX1; i < IDC_CHECKBOX10+1; i++)
- {
- EnableWindow(GetDlgItem(hwndDlg, i), FALSE);
- }
- }
- else
- {
- DBVARIANT dbv = {0}; BASS_DEVICEINFO info; DWORD bassver = BASS_GetVersion();
-
- mir_sntprintf(tmp, SIZEOF(tmp), TranslateT("un4seen's bass version: %d.%d.%d.%d"), bassver >> 24, (bassver >> 16) & 0xff, (bassver >> 8) & 0xff, bassver & 0xff);
- SendDlgItemMessage(hwndDlg, IDC_BASSVERSION, WM_SETTEXT, 0, (LPARAM)tmp);
-
- SendDlgItemMessage(hwndDlg, IDC_OUTDEVICE, CB_RESETCONTENT, 0, 0);
- SendDlgItemMessage(hwndDlg, IDC_OUTDEVICE, CB_ADDSTRING, 0, (LPARAM)TranslateT("--default device--"));
- SendDlgItemMessage(hwndDlg, IDC_OUTDEVICE, CB_SETCURSEL, 0, 0);
- DBGetContactSettingString(NULL, ModuleName, OPT_OUTDEVICE, &dbv);
- for (i=1; BASS_GetDeviceInfo(i+newBass, &info); i++)
- {
- SendDlgItemMessageA(hwndDlg, IDC_OUTDEVICE, CB_ADDSTRING, 0, (LPARAM)info.name);
- if (!lstrcmpA(dbv.pszVal, info.name))
- SendDlgItemMessage(hwndDlg, IDC_OUTDEVICE, CB_SETCURSEL, i, 0);
- }
- DBFreeVariant(&dbv);
- }
-
- return 1;
- }
-
- case WM_HSCROLL:
- if (hBass != NULL)
- if (LOWORD(wParam) == SB_ENDSCROLL || LOWORD(wParam) == SB_THUMBTRACK)
- {
- BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0) * 100);
- Preview = TRUE;
- if (EnPreview) SkinPlaySound("AlertMsg");
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- }
- break;
-
- case WM_NOTIFY:
- switch(((LPNMHDR)lParam)->code)
- {
- case PSN_APPLY:
- if (hBass != NULL)
- {
- int i; SYSTEMTIME systime;
-
- SendDlgItemMessageA(hwndDlg, IDC_OUTDEVICE, WM_GETTEXT, sizeof(tmp), (LPARAM)tmp);
- DBWriteContactSettingString(NULL, ModuleName, OPT_OUTDEVICE, (char *)tmp);
-
- Volume = (DWORD)SendDlgItemMessage(hwndDlg, IDC_VOLUME, TBM_GETPOS, 0, 0);
- DBWriteContactSettingByte(NULL, ModuleName, OPT_VOLUME, Volume);
-
- sndLimSnd = SendDlgItemMessage(hwndDlg, IDC_MAXCHANNEL, CB_GETCURSEL, 0, 0) + 1;
- if ( sndLimSnd > MAXCHAN ) sndLimSnd = MAXCHAN;
- DBWriteContactSettingByte(NULL, ModuleName, OPT_MAXCHAN, sndLimSnd);
-
- QuietTime = IsDlgButtonChecked(hwndDlg, IDC_QUIETTIME) == BST_CHECKED;
- DBWriteContactSettingByte(NULL, ModuleName, OPT_QUIETTIME, QuietTime);
-
- SendDlgItemMessage(hwndDlg, IDC_TIME1, DTM_GETSYSTEMTIME, 0, (LPARAM)&systime);
- TimeWrd1 = MAKEWORD(systime.wMinute, systime.wHour);
- DBWriteContactSettingWord(NULL, ModuleName, OPT_TIME1, TimeWrd1);
-
- SendDlgItemMessage(hwndDlg, IDC_TIME2, DTM_GETSYSTEMTIME, 0, (LPARAM)&systime);
- TimeWrd2 = MAKEWORD(systime.wMinute, systime.wHour);
- DBWriteContactSettingWord(NULL, ModuleName, OPT_TIME2, TimeWrd2);
-
- EnPreview = IsDlgButtonChecked(hwndDlg, IDC_PREVIEW) == BST_CHECKED;
- DBWriteContactSettingByte(NULL, ModuleName, OPT_PREVIEW, EnPreview);
-
- StatMask = 0;
- for(i = IDC_CHECKBOX10; i > IDC_CHECKBOX1-1; i--)
- {
- StatMask <<= 1;
- if(IsDlgButtonChecked(hwndDlg, i) == BST_CHECKED)
- StatMask |= 1;
- }
-
- DBWriteContactSettingWord(NULL, ModuleName, OPT_STATUS, StatMask);
-
- device = SendDlgItemMessage(hwndDlg, IDC_OUTDEVICE, CB_GETCURSEL, 0, 0);
- if (device == 0) device = -1;
- else device += newBass;
- if (CallService(MS_TB_GETBUTTONSTATEBYID, (WPARAM)"BASSSoundOnOff", 0)==TBST_RELEASED)
- {
- BASS_Free();
- BASS_Init(device, 44100, 0, ClistHWND, NULL);
- BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, Volume * 100 );
- }
- }
- return 1;
-
- case PSN_RESET:
- if (hBass != NULL)
- {
- BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, Volume * 100);
- }
- return 1;
-
- case DTN_DATETIMECHANGE:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- return 1;
- }
- break;
-
- case WM_COMMAND:
- switch(LOWORD(wParam))
- {
- case IDC_QUIETTIME:
- {
- BOOL b = IsDlgButtonChecked(hwndDlg, IDC_QUIETTIME) == BST_CHECKED;
- EnableWindow(GetDlgItem(hwndDlg,IDC_TIME1), b);
- EnableWindow(GetDlgItem(hwndDlg,IDC_TIME2), b);
- }
- case IDC_MAXCHANNEL:
- case IDC_OUTDEVICE:
- case IDC_CHECKBOX1:
- case IDC_CHECKBOX2:
- case IDC_CHECKBOX3:
- case IDC_CHECKBOX4:
- case IDC_CHECKBOX5:
- case IDC_CHECKBOX6:
- case IDC_CHECKBOX7:
- case IDC_CHECKBOX8:
- case IDC_CHECKBOX9:
- case IDC_CHECKBOX10:
- case IDC_PREVIEW:
- SendMessage(GetParent(hwndDlg), PSM_CHANGED, 0, 0);
- break;
- case IDC_GETBASS:
- CallService(MS_UTILS_OPENURL , 1, (LPARAM)"http://www.un4seen.com/");
- break;
- }
- break;
-
- //case WM_CLOSE:
- // EndDialog(hwndDlg, 0);
- }
- return 0;
-}
-
-struct
-{
- char* szDescr;
- char* szName;
- int defIconID;
-}
-static const iconList[] =
-{
- { "Audio device is opened", "BASSSoundOnOffUp", IDI_BASSSoundOnOffUp },
- { "Audio device is closed", "BASSSoundOnOffDown", IDI_BASSSoundOnOffDown }
-};
-
-static HANDLE hIconLibItem[SIZEOF(iconList)];
-
-void InitIcons(void)
-{
- int i; char szSettingName[100]; SKINICONDESC sid = {0}; TCHAR szFile[MAX_PATH];
-
- GetModuleFileName(hInst, szFile, SIZEOF(szFile));
-
- sid.cbSize = sizeof(SKINICONDESC);
- sid.ptszDefaultFile = szFile;
- sid.cx = sid.cy = 16;
- sid.pszName = szSettingName;
- sid.pszSection = ModuleName;
- sid.flags = SIDF_PATH_TCHAR;
-
- for (i = 0; i < SIZEOF(iconList); i++)
- {
- mir_snprintf(szSettingName, SIZEOF(szSettingName), "%s_%s", ModuleName, iconList[i].szName);
-
- sid.pszDescription = (char*)iconList[i].szDescr;
- sid.iDefaultIndex = -iconList[i].defIconID;
- hIconLibItem[i] = (HANDLE)CallService(MS_SKIN2_ADDICON, 0, (LPARAM)&sid);
- }
-}
-
-int OptionsInit(WPARAM wParam, LPARAM lParam)
-{
- OPTIONSDIALOGPAGE odp = {0};
-
- odp.cbSize = sizeof(odp);
- odp.position = 0;
- odp.hInstance = hInst;
- odp.pszTemplate = MAKEINTRESOURCEA(IDD_OPTIONS);
- odp.ptszTitle = _T(ModuleName);
- odp.pfnDlgProc = OptionsProc;
- odp.ptszGroup = _T("Customize");
- odp.flags = ODPF_BOLDGROUPS | ODPF_TCHAR;
-
- CallService(MS_OPT_ADDPAGE, wParam, (LPARAM)&odp);
- return 0;
-}
-
-INT_PTR BASSSoundOnOff(WPARAM wParam, LPARAM lParam)
-{
- if (hBass != NULL)
- {
- BOOL opened = CallService(MS_TB_GETBUTTONSTATEBYID, (WPARAM)"BASSSoundOnOff", 0) == TBST_RELEASED;
-
- if ( opened )
- {
- BASS_Free(); // Close Device
- }
- else
- {
- BASS_Init(device, 44100, 0, ClistHWND, NULL);
- BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, Volume * 100 );
- }
-
- CallService(MS_TB_SETBUTTONSTATEBYID, (WPARAM)"BASSSoundOnOff", opened ? TBST_PUSHED : TBST_RELEASED);
- DBWriteContactSettingByte(NULL, ModuleName, OPT_DEVOPEN, !opened);
- }
- return 0;
-}
-
-int OnToolbarLoaded(WPARAM wParam, LPARAM lParam)
-{
- TBButton tbb = {0};
- tbb.cbSize = sizeof(TBButton);
- tbb.pszButtonID = "BASSSoundOnOff";
- tbb.pszButtonName = Translate("Open/close audio device");
- tbb.pszServiceName = "BASSinterface/BASSSoundOnOff";
- tbb.pszTooltipUp = Translate("Audio device is opened");
- tbb.pszTooltipDn = Translate("Audio device is closed");
- tbb.hPrimaryIconHandle = hIconLibItem[0];
- tbb.hSecondaryIconHandle = hIconLibItem[1];
- tbb.tbbFlags = TBBF_SHOWTOOLTIP;
- tbb.defPos = 1000;
-
- CallService(MS_TB_ADDBUTTON, 0, (LPARAM)&tbb);
-
- return 0;
-}
-
-int OnModulesLoaded(WPARAM wParam, LPARAM lParam)
-{
- DBVARIANT dbv = {0};
-
- if (DBGetContactSettingTString(NULL, ModuleName, OPT_BASSPATH, &dbv))
- {
- DBWriteContactSettingTString(NULL, ModuleName, OPT_BASSPATH, _T("Plugins\\Bass\\Bass.dll"));
- lstrcpy(tmp, _T("Plugins\\Bass\\Bass.dll"));
- }
- else
- {
- lstrcpy(tmp, dbv.ptszVal);
- }
-
- DBFreeVariant(&dbv);
-
- CallService(MS_UTILS_PATHTOABSOLUTET, (WPARAM)tmp, (LPARAM)CurrBassPath);
- hBass = LoadLibrary(CurrBassPath);
-
- if (hBass != NULL)
- {
- if (LOADBASSFUNCTION(BASS_Init) != NULL && LOADBASSFUNCTION(BASS_SetConfig) != NULL &&
- LOADBASSFUNCTION(BASS_ChannelPlay) != NULL && LOADBASSFUNCTION(BASS_StreamCreateFile) != NULL &&
- LOADBASSFUNCTION(BASS_GetVersion) != NULL && LOADBASSFUNCTION(BASS_StreamFree) != NULL &&
- LOADBASSFUNCTION(BASS_GetDeviceInfo) != NULL && LOADBASSFUNCTION(BASS_Free))
- {
- int i; BASS_DEVICEINFO info;
-
- newBass = (BASS_SetConfig(BASS_CONFIG_DEV_DEFAULT, TRUE) != 0); // will use new "Default" device
-
- if (!DBGetContactSettingString(NULL, ModuleName, OPT_OUTDEVICE, &dbv))
- {
- for (i=1; BASS_GetDeviceInfo(i, &info); i++)
- if (!lstrcmpA(dbv.pszVal, info.name))
- device = i;
- }
- DBFreeVariant(&dbv);
-
- sndLimSnd = DBGetContactSettingByte(NULL, ModuleName, OPT_MAXCHAN, MAXCHAN);
- if ( sndLimSnd > MAXCHAN ) sndLimSnd = MAXCHAN;
- TimeWrd1 = DBGetContactSettingWord(NULL, ModuleName, OPT_TIME1, 0);
- TimeWrd2 = DBGetContactSettingWord(NULL, ModuleName, OPT_TIME2, 0);
- QuietTime = DBGetContactSettingByte(NULL, ModuleName, OPT_QUIETTIME, 0);
- EnPreview = DBGetContactSettingByte(NULL, ModuleName, OPT_PREVIEW, 0);
-
- StatMask = DBGetContactSettingWord(NULL, ModuleName, OPT_STATUS, 0x3ff);
-
- ClistHWND = (HWND)CallService("CLUI/GetHwnd", 0, 0);
- if (DBGetContactSettingByte(NULL, ModuleName, OPT_DEVOPEN, 1))
- BASS_Init(device, 44100, 0, ClistHWND, NULL);
- else
- CallService(MS_TB_SETBUTTONSTATEBYID, (WPARAM)"BASSSoundOnOff", TBST_PUSHED);
-
- Volume = DBGetContactSettingByte(NULL, ModuleName, OPT_VOLUME, 33);
- BASS_SetConfig(BASS_CONFIG_GVOL_STREAM, Volume * 100 );
- hHooks[3] = HookEvent(ME_SKIN_PLAYINGSOUND, OnPlaySnd);
- }
- else
- {
- FreeLibrary(hBass);
- hBass = NULL;
- }
- }
-
- hHooks[4] = HookEvent(ME_OPT_INITIALISE, OptionsInit);
-
- return 0;
-}
-
-int OnShutdown(WPARAM wParam, LPARAM lParam)
-{
- if(hBass != NULL)
- {
- BASS_Free();
- FreeLibrary(hBass);
- }
-
- return 0;
-}
-
-extern "C" int __declspec(dllexport) Load(PLUGINLINK *link)
-{
- pluginLink = link;
- mir_getLP(&pluginInfo);
- mir_getMMI(&mmi);
-
- hHooks[0] = HookEvent(ME_SYSTEM_MODULESLOADED, OnModulesLoaded);
- hHooks[1] = HookEvent(ME_SYSTEM_SHUTDOWN, OnShutdown);
- hHooks[2] = HookEvent(ME_TB_MODULELOADED, OnToolbarLoaded);
-
- hService = CreateServiceFunction("BASSinterface/BASSSoundOnOff", BASSSoundOnOff);
-
- InitIcons();
-
- return 0;
-}
-
-extern "C" int __declspec(dllexport) Unload(void)
-{
- int i;
- for (i = 0; i < SIZEOF(hHooks); i++)
- {
- if (hHooks[i])
- UnhookEvent(hHooks[i]);
- }
-
- DestroyServiceFunction(hService);
-
- return 0;
-} \ No newline at end of file