mirror of
				https://github.com/chibicitiberiu/rainmeter-studio.git
				synced 2024-02-24 04:33:31 +00:00 
			
		
		
		
	NowPlaying.dll: Fixed that SHUFFLE, REPEAT, and VOLUME were not reset on player shutdown
This commit is contained in:
		| @@ -194,7 +194,7 @@ unsigned __stdcall CPlayer::LyricsThreadProc(void* pParam) | |||||||
| ** Clear track information. | ** Clear track information. | ||||||
| ** | ** | ||||||
| */ | */ | ||||||
| void CPlayer::ClearData() | void CPlayer::ClearData(bool all) | ||||||
| { | { | ||||||
| 	m_State = STATE_STOPPED; | 	m_State = STATE_STOPPED; | ||||||
| 	m_Artist.clear(); | 	m_Artist.clear(); | ||||||
| @@ -208,4 +208,11 @@ void CPlayer::ClearData() | |||||||
| 	m_Rating = 0; | 	m_Rating = 0; | ||||||
| 	m_Number = 0; | 	m_Number = 0; | ||||||
| 	m_Year = 0; | 	m_Year = 0; | ||||||
|  |  | ||||||
|  | 	if (all) | ||||||
|  | 	{ | ||||||
|  | 		m_Volume = 0; | ||||||
|  | 		m_Shuffle = false; | ||||||
|  | 		m_Repeat = false; | ||||||
|  | 	} | ||||||
| } | } | ||||||
|   | |||||||
| @@ -105,7 +105,7 @@ public: | |||||||
| 	bool GetRepeat() const { return m_Repeat; } | 	bool GetRepeat() const { return m_Repeat; } | ||||||
|  |  | ||||||
| protected: | protected: | ||||||
| 	void ClearData(); | 	void ClearData(bool all = true); | ||||||
|  |  | ||||||
| 	bool m_Initialized; | 	bool m_Initialized; | ||||||
| 	UINT m_InstanceCount; | 	UINT m_InstanceCount; | ||||||
|   | |||||||
| @@ -121,15 +121,16 @@ void CPlayerAIMP::UpdateData() | |||||||
| 		if (!IsWindow(m_Window)) | 		if (!IsWindow(m_Window)) | ||||||
| 		{ | 		{ | ||||||
| 			m_Initialized = false; | 			m_Initialized = false; | ||||||
|  | 			ClearData(); | ||||||
|  |  | ||||||
| 			if (m_FileMap) UnmapViewOfFile(m_FileMap); | 			if (m_FileMap) UnmapViewOfFile(m_FileMap); | ||||||
| 			if (m_FileMapHandle) CloseHandle(m_FileMapHandle); | 			if (m_FileMapHandle) CloseHandle(m_FileMapHandle); | ||||||
| 		} | 		} | ||||||
|  | 		else if (m_State != STATE_STOPPED) | ||||||
| 		if (m_LastTitleSize != 0) |  | ||||||
| 		{ | 		{ | ||||||
|  | 			ClearData(false); | ||||||
| 			m_LastFileSize = 0; | 			m_LastFileSize = 0; | ||||||
| 			m_LastTitleSize = 0; | 			m_LastTitleSize = 0; | ||||||
| 			ClearData(); |  | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
| 		// Don't continue if AIMP has quit or is stopped | 		// Don't continue if AIMP has quit or is stopped | ||||||
|   | |||||||
| @@ -228,7 +228,7 @@ LRESULT CALLBACK CPlayerCAD::WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM | |||||||
| 				player->m_State = (StateType)wParam; | 				player->m_State = (StateType)wParam; | ||||||
| 				if (player->m_State == STATE_STOPPED) | 				if (player->m_State == STATE_STOPPED) | ||||||
| 				{ | 				{ | ||||||
| 					player->ClearData(); | 					player->ClearData(false); | ||||||
| 				} | 				} | ||||||
| 				break; | 				break; | ||||||
| 			} | 			} | ||||||
|   | |||||||
| @@ -455,7 +455,7 @@ void CPlayerITunes::OnTrackChange() | |||||||
| 	} | 	} | ||||||
| 	else | 	else | ||||||
| 	{ | 	{ | ||||||
| 		ClearData(); | 		ClearData(false); | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
|   | |||||||
| @@ -139,7 +139,7 @@ LRESULT CALLBACK CPlayerWLM::WndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM | |||||||
| 			} | 			} | ||||||
| 			else | 			else | ||||||
| 			{ | 			{ | ||||||
| 				player->ClearData(); | 				player->ClearData(false); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			return 0; | 			return 0; | ||||||
|   | |||||||
| @@ -93,7 +93,7 @@ void CPlayerWMP::CRemoteHost::PlayStateChange(long NewState) | |||||||
| 	{ | 	{ | ||||||
| 	case wmppsStopped: | 	case wmppsStopped: | ||||||
| 	case wmppsMediaEnded: | 	case wmppsMediaEnded: | ||||||
| 		m_Player->ClearData(); | 		m_Player->ClearData(false); | ||||||
| 		break; | 		break; | ||||||
|  |  | ||||||
| 	case wmppsPaused: | 	case wmppsPaused: | ||||||
|   | |||||||
| @@ -112,12 +112,13 @@ void CPlayerWinamp::UpdateData() | |||||||
| 			if (!IsWindow(m_Window)) | 			if (!IsWindow(m_Window)) | ||||||
| 			{ | 			{ | ||||||
| 				m_Initialized = false; | 				m_Initialized = false; | ||||||
|  | 				ClearData(); | ||||||
|  |  | ||||||
| 				if (m_WinampHandle) CloseHandle(m_WinampHandle); | 				if (m_WinampHandle) CloseHandle(m_WinampHandle); | ||||||
| 			} | 			} | ||||||
|  | 			else if (m_State != STATE_STOPPED) | ||||||
| 			if (m_State != STATE_STOPPED) |  | ||||||
| 			{ | 			{ | ||||||
| 				ClearData(); | 				ClearData(false); | ||||||
| 			} | 			} | ||||||
|  |  | ||||||
| 			// Don't continue if Winamp has quit or is stopped | 			// Don't continue if Winamp has quit or is stopped | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Birunthan Mohanathas
					Birunthan Mohanathas