diff options
| author | Kirill Volinsky <mataes2007@gmail.com> | 2013-01-04 14:55:01 +0000 | 
|---|---|---|
| committer | Kirill Volinsky <mataes2007@gmail.com> | 2013-01-04 14:55:01 +0000 | 
| commit | e80e19734c3d9e70b5b95a24a8b142fce4a419f5 (patch) | |
| tree | 634cab9f4f4bf49a75750bd8c198395fadaed7a1 /plugins/SplashScreen/src | |
| parent | 0bc7bd1b53ff6ca8cc32787fe7a4f16f6b0e1813 (diff) | |
changed sounds playing (fixed crash with different filters)
code cleanup
git-svn-id: http://svn.miranda-ng.org/main/trunk@2960 1316c22d-e87f-b044-9b9b-93d7a3e3ba9c
Diffstat (limited to 'plugins/SplashScreen/src')
| -rw-r--r-- | plugins/SplashScreen/src/bitmap_funcs.cpp | 20 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/headers.h | 17 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/main.cpp | 22 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/options.cpp | 10 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/services.cpp | 8 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/splash.cpp | 81 | ||||
| -rw-r--r-- | plugins/SplashScreen/src/version.h | 10 | 
7 files changed, 60 insertions, 108 deletions
diff --git a/plugins/SplashScreen/src/bitmap_funcs.cpp b/plugins/SplashScreen/src/bitmap_funcs.cpp index 3f69e77ca5..f6f2ce5f4b 100644 --- a/plugins/SplashScreen/src/bitmap_funcs.cpp +++ b/plugins/SplashScreen/src/bitmap_funcs.cpp @@ -1,5 +1,23 @@ +/*
 +Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
 +(c) 2004-2007 nullbie, (c) 2005-2007 Thief
 +
 +This program is free software; you can redistribute it and/or modify
 +it under the terms of the GNU General Public License as published by
 +the Free Software Foundation; either version 2 of the License, or
 +(at your option) any later version.
 +
 +This program is distributed in the hope that it will be useful,
 +but WITHOUT ANY WARRANTY; without even the implied warranty of
 +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 +GNU General Public License for more details.
 +
 +You should have received a copy of the GNU General Public License
 +along with this program; if not, write to the Free Software
 +Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 +*/
 +
  #include "headers.h"
 -#include "bitmap_funcs.h"
  BOOL (WINAPI *_mempng2dib) (BYTE*, DWORD, BITMAPINFOHEADER**);
 diff --git a/plugins/SplashScreen/src/headers.h b/plugins/SplashScreen/src/headers.h index 5c0a4f0713..8942202679 100644 --- a/plugins/SplashScreen/src/headers.h +++ b/plugins/SplashScreen/src/headers.h @@ -1,5 +1,5 @@  /*
 -   Splash Screen Plugin for Miranda-IM (www.miranda-im.org)
 +   Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
     (c) 2004-2007 nullbie, (c) 2005-2007 Thief
     This program is free software; you can redistribute it and/or modify
 @@ -15,18 +15,11 @@     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -   File name      : $URL: http://svn.miranda.im/mainrepo/splashscreen/trunk/src/headers.h $
 -   Revision       : $Rev: 1587 $
 -   Last change on : $Date: 2010-04-09 14:01:30 +0400 (Пт, 09 апр 2010) $
 -   Last change by : $Author: Thief $
  */
  #ifndef HEADERS_H
  #define HEADERS_H
 -#define MIRANDA_VER    0x0A00
 -
  #define _WIN32_WINNT 0x0500
  #define WINVER 0x0400
  #define AC_SRC_ALPHA  0x01
 @@ -34,20 +27,18 @@  #define _CRT_SECURE_NO_DEPRECATE
  #include <windows.h>
 -#include <stdio.h>
 -#include <commctrl.h>
 +#include <tchar.h>
  #include <time.h>
 -#include <mmsystem.h>
 +#include <dshow.h>
  // Miranda API headers
  #include <win2k.h>
  #include <newpluginapi.h>
  #include <m_database.h>
  #include <m_options.h>
 -#include <m_utils.h>
  #include <m_langpack.h>
 -#include <m_system.h>
  #include <m_png.h>
 +
  #include "m_splash.h"
  // Common headers
 diff --git a/plugins/SplashScreen/src/main.cpp b/plugins/SplashScreen/src/main.cpp index 0b3f842812..4a18a103c1 100644 --- a/plugins/SplashScreen/src/main.cpp +++ b/plugins/SplashScreen/src/main.cpp @@ -1,5 +1,5 @@  /*
 -   Splash Screen Plugin for Miranda-IM (www.miranda-im.org)
 +   Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
     (c) 2004-2007 nullbie, (c) 2005-2007 Thief
     This program is free software; you can redistribute it and/or modify
 @@ -15,12 +15,6 @@     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -   File name      : $URL: http://svn.miranda.im/mainrepo/splashscreen/trunk/src/main.cpp $
 -   Revision       : $Rev: 1586 $
 -   Last change on : $Date: 2010-04-09 13:34:01 +0400 (Пт, 09 апр 2010) $
 -   Last change by : $Author: Thief $
 -
  */
  #include "headers.h"
 @@ -64,10 +58,11 @@ PLUGININFOEX pluginInfo={  	__COPYRIGHT,
  	__AUTHORWEB,
  	UNICODE_AWARE,
 -	MIID_SPLASHSCREEN
 +	// C64CC8E0-CF03-474A-8B11-8BD4565CCF04
 +	{0xc64cc8e0, 0xcf03, 0x474a, {0x8b, 0x11, 0x8b, 0xd4, 0x56, 0x5c, 0xcf, 0x04}}
  };
 -extern "C" BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
 +BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
  {
  	hInst = hinstDLL;
  	return TRUE;
 @@ -83,7 +78,7 @@ void SplashMain()  		CallService(MS_SYSTEM_GETVERSIONTEXT, MAX_PATH, (LPARAM)szVersion);
  		#ifdef _DEBUG
 -			mir_sntprintf(szLogFile, SIZEOF(szLogFile), _T("%s\\%s.log"), szMirDir, _T(__INTERNAL_NAME));
 +			mir_sntprintf(szLogFile, SIZEOF(szLogFile), _T("%s\\%s.log"), szMirDir, _T(__PLUGIN_NAME));
  			initLog();
  			TCHAR* mirandaVerString = mir_a2t(szVersion);
  			logMessage(_T("Miranda version"), mirandaVerString);
 @@ -125,8 +120,8 @@ void SplashMain()  				{
  					FreeLibrary(hAdvaimg); hAdvaimg = NULL;
  					MessageBox(NULL,
 -					_T("Your advaimg.dll is either obsolete or damaged. Get latest from Miranda alpha builds."),
 -					_T("Error"),
 +					TranslateT("Your advaimg.dll is either obsolete or damaged. Get latest from Miranda alpha builds."),
 +					TranslateT("Error"),
  					MB_OK | MB_ICONSTOP);
  				}
  				#ifdef _DEBUG
 @@ -137,7 +132,6 @@ void SplashMain()  		}
  		//for 9x "alfa" testing
 -		//MyUpdateLayeredWindow = 0;
  		DBVARIANT dbv = {0};
  		DBGetContactSettingTString(NULL, MODNAME, "VersionPrefix", &dbv);
  		if (lstrcmp(dbv.ptszVal, NULL) == 0)
 @@ -344,7 +338,7 @@ int ModulesLoaded(WPARAM wParam, LPARAM lParam)  		mi.hIcon = LoadSkinnedIcon(SKINICON_OTHER_MIRANDA);
  		mi.hotKey = 0;
  		mi.position = -0x7FFFFFFF;
 -		mi.ptszName = _T("Call Splash Service");
 +		mi.ptszName = LPGENT("Call Splash Service");
  		mi.pszService = "Splash/Test";
  		Menu_AddMainMenuItem(&mi);
  	#endif
 diff --git a/plugins/SplashScreen/src/options.cpp b/plugins/SplashScreen/src/options.cpp index cf70b8558f..6d5cf7c553 100644 --- a/plugins/SplashScreen/src/options.cpp +++ b/plugins/SplashScreen/src/options.cpp @@ -1,5 +1,5 @@  /*
 -Splash Screen Plugin for Miranda-IM (www.miranda-im.org)
 +Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
  (c) 2004-2007 nullbie, (c) 2005-2007 Thief
  This program is free software; you can redistribute it and/or modify
 @@ -15,14 +15,6 @@ GNU General Public License for more details.  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -File name      : $URL: http://svn.miranda.im/mainrepo/splashscreen/trunk/src/options.cpp $
 -Revision       : $Rev: 951 $
 -Last change on : $Date: 2007-10-16 18:46:53 +0400 (Вт, 16 окт 2007) $
 -Last change by : $Author: Thief $
 -
 -DESCRIPTION: Options dialog handling code
 -
  */
  #include "headers.h"
 diff --git a/plugins/SplashScreen/src/services.cpp b/plugins/SplashScreen/src/services.cpp index d9981d7f2e..f38c8eeb8f 100644 --- a/plugins/SplashScreen/src/services.cpp +++ b/plugins/SplashScreen/src/services.cpp @@ -1,5 +1,5 @@  /*
 -   Splash Screen Plugin for Miranda-IM (www.miranda-im.org)
 +   Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
     (c) 2004-2007 nullbie, (c) 2005-2007 Thief
     This program is free software; you can redistribute it and/or modify
 @@ -15,12 +15,6 @@     You should have received a copy of the GNU General Public License
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -   File name      : $URL: http://svn.miranda.im/mainrepo/splashscreen/trunk/src/services.cpp $
 -   Revision       : $Rev: 951 $
 -   Last change on : $Date: 2007-10-16 18:46:53 +0400 (Вт, 16 окт 2007) $
 -   Last change by : $Author: Thief $
 -
  */
  #include "headers.h"
 diff --git a/plugins/SplashScreen/src/splash.cpp b/plugins/SplashScreen/src/splash.cpp index 05df53d142..196c4adedd 100644 --- a/plugins/SplashScreen/src/splash.cpp +++ b/plugins/SplashScreen/src/splash.cpp @@ -1,5 +1,5 @@  /*
 -Splash Screen Plugin for Miranda-IM (www.miranda-im.org)
 +Splash Screen Plugin for Miranda NG (www.miranda-ng.org)
  (c) 2004-2007 nullbie, (c) 2005-2007 Thief
  This program is free software; you can redistribute it and/or modify
 @@ -15,12 +15,6 @@ GNU General Public License for more details.  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 -
 -File name      : $URL: http://svn.miranda.im/mainrepo/splashscreen/trunk/src/splash.cpp $
 -Revision       : $Rev: 1585 $
 -Last change on : $Date: 2010-04-09 13:13:29 +0400 (Пт, 09 апр 2010) $
 -Last change by : $Author: ghazan $
 -
  */
  #include "headers.h"
 @@ -144,24 +138,9 @@ LRESULT CALLBACK SplashWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM  			break;
  		}
 -		case WM_PAINT:
 -		{
 -			if (!MyUpdateLayeredWindow) // Win 9x
 -			{
 -				#ifdef _DEBUG
 -					logMessage(_T("WM_PAINT"), _T("painting.."));
 -				#endif
 -				PAINTSTRUCT ps;
 -				BeginPaint(hwndSplash, &ps);
 -				BitBlt(ps.hdc, 0, 0, SplashBmp->getWidth(), SplashBmp->getHeight(), tmpBmp->getDC(), 0, 0, SRCCOPY);
 -				EndPaint(hwndSplash, &ps);
 -			}
 -			break;
 -		}
 -
 -	ShowWindow(hwndSplash, SW_HIDE);
 -	DestroyWindow(hwndSplash);
 -	break;
 +		ShowWindow(hwndSplash, SW_HIDE);
 +		DestroyWindow(hwndSplash);
 +		break;
  	}
  	return DefWindowProc(hwnd, message, wParam, lParam);
 @@ -169,14 +148,25 @@ LRESULT CALLBACK SplashWindowProc(HWND hwnd, UINT message, WPARAM wParam, LPARAM  int SplashThread(void *arg)
  {
 -	// Old code, doesn't support mp3 files
 -	//if (options.playsnd) PlaySound(szSoundFile, NULL, SND_ASYNC | SND_FILENAME | SND_NOWAIT);
 +    IGraphBuilder *pGraph = NULL;
 +    IMediaControl *pControl = NULL;
 +
  	if (options.playsnd)
  	{
 -		TCHAR cmd[MAX_PATH];
 -		mir_sntprintf(cmd, SIZEOF(cmd), _T("open \"%s\" type mpegvideo alias song1"), szSoundFile);
 -		mciSendString(cmd, NULL, 0, 0);
 -		mciSendString(_T("play song1"), NULL, 0, 0);
 +		// Initialize the COM library.
 +		CoInitialize(NULL);
 +
 +		// Create the filter graph manager and query for interfaces.
 +		CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER, IID_IGraphBuilder, (void **)&pGraph);
 +
 +		// Get MediaControl Interface
 +		pGraph->QueryInterface(IID_IMediaControl, (void **)&pControl);
 +
 +		// Build the graph. IMPORTANT: Change this string to a file on your system.
 +		pGraph->RenderFile(szSoundFile, NULL);
 +
 +		// Run the graph.
 +		pControl->Run();
  	}
  	WNDCLASSEX wcl;
 @@ -306,30 +296,7 @@ int SplashThread(void *arg)  		MyUpdateLayeredWindow(hwndSplash, NULL, &ptDst, &sz, SplashBmp->getDC(), &ptSrc, 0xffffffff, &blend, LWA_ALPHA);
  		ShowWindow(hwndSplash, SW_SHOWNORMAL);
 -	}
 -	else // Win 9x
 -	{
 -		tmpBmp = new MyBitmap(SplashBmp->getWidth(),SplashBmp->getHeight());
 -		HDC dtDC = GetDC(GetDesktopWindow());
 -
 -		BitBlt(tmpBmp->getDC(),
 -			0,
 -			0,
 -			SplashBmp->getWidth(),
 -			SplashBmp->getHeight(),
 -			dtDC,
 -			(DesktopRect.left + DesktopRect.right - SplashBmp->getWidth()) / 2,
 -			(DesktopRect.top + DesktopRect.bottom - SplashBmp->getHeight()) / 2,
 -			SRCCOPY);
 -
 -		ReleaseDC(GetDesktopWindow(), dtDC);
 -		tmpBmp->Blend(SplashBmp, (splashWithMarkers?-1:0), (splashWithMarkers?-1:0), SplashBmp->getWidth(), SplashBmp->getHeight());   
 -
 -	}
 -
 -	if (MyUpdateLayeredWindow) // Win 2000+
 -	{
  		if (options.fadein)
  		{
  			// Fade in
 @@ -374,7 +341,11 @@ int SplashThread(void *arg)  	}
  	if (options.playsnd)
 -		mciSendString(_T("close song1"), NULL, 0, 0);
 +	{
 +		pControl->Release();
 +		pGraph->Release();
 +		CoUninitialize();
 +	}
  	ExitThread(0);
  	return 1;
 diff --git a/plugins/SplashScreen/src/version.h b/plugins/SplashScreen/src/version.h index 1b04eed57f..1431bbe216 100644 --- a/plugins/SplashScreen/src/version.h +++ b/plugins/SplashScreen/src/version.h @@ -4,19 +4,11 @@  #define __BUILD_NUM					3
  #define __FILEVERSION_STRING		__MAJOR_VERSION,__MINOR_VERSION,__RELEASE_NUM,__BUILD_NUM
 -#define __FILEVERSION_DOTS			__MAJOR_VERSION.__MINOR_VERSION.__RELEASE_NUM.__BUILD_NUM
 -
 -#define __STRINGIFY_IMPL(x)			#x
 -#define __STRINGIFY(x)				__STRINGIFY_IMPL(x)
 -#define __VERSION_STRING			__STRINGIFY(__FILEVERSION_DOTS)
  #define __PLUGIN_NAME				"Splash Screen"
 -#define __INTERNAL_NAME				"AdvSplashScreen"
 -#define __FILENAME					"AdvSplashScreen.dll"
 +#define __FILENAME					"SplashScreen.dll"
  #define __DESCRIPTION 				"Shows a splash at Miranda startup."
  #define __AUTHOR					"nullbie, Thief"
  #define __AUTHOREMAIL				"thief@miranda.im"
  #define __AUTHORWEB					"http://miranda-ng.org/"
  #define __COPYRIGHT					"© 2004-2007 Victor Pavlychko, 2005-2011 Alexander Turyak"
 -/* C64CC8E0-CF03-474A-8B11-8BD4565CCF04 */
 -#define MIID_SPLASHSCREEN {0xc64cc8e0, 0xcf03, 0x474a, {0x8b, 0x11, 0x8b, 0xd4, 0x56, 0x5c, 0xcf, 0x04}}
  | 
