Sync to Wine-20040914:

David Kredba <kredba@ibot.cas.cz>
- Added Czech resources.
Robert Reif <reif@earthlink.net>
- Remove wine specific DRV_QUERYDSOUNDGUID message and calculate it in
  dsound.dll (like in 2k/xp).
Dmitry Timoshkov <dmitry@codeweavers.com>
- Fix an obvious typo leading to a crash.
Alexandre Julliard
- Function parameters don't need WINE_UNUSED.
Eric Pouech <pouech-eric@wanadoo.fr>
- Implemented the mmTask* functions.

svn path=/trunk/; revision=10912
This commit is contained in:
Gé van Geldorp 2004-09-19 11:07:39 +00:00
parent 976020b12d
commit 601c767280
8 changed files with 191 additions and 37 deletions

View file

@ -510,12 +510,9 @@ UINT MMDRV_PhysicalFeatures(LPWINE_MLD mld, UINT uMsg, DWORD dwParam1,
case DRV_QUERYDEVICEINTERFACESIZE:
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
#ifdef __WINESRC__
case DRV_QUERYDSOUNDIFACE: /* Wine-specific: Retrieve DirectSound interface */
case DRV_QUERYDSOUNDDESC: /* Wine-specific: Retrieve DirectSound driver description*/
case DRV_QUERYDSOUNDGUID: /* Wine-specific: Retrieve DirectSound driver GUID */
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
#endif
default:
WARN("Unknown call %04x\n", uMsg);

View file

@ -1514,7 +1514,8 @@ static DWORD MCI_SysInfo(UINT uDevID, DWORD dwFlags, LPMCI_SYSINFO_PARMSA lpParm
}
if (!s) {
if (GetPrivateProfileStringA("mci", 0, "", buf, sizeof(buf), "system.ini")) {
for(p = buf; *p; p += strlen(s) + 1, cnt++) {
for(p = buf; *p; p += strlen(p) + 1, cnt++) {
TRACE("%ld: %s\n", cnt, p);
if (cnt == lpParms->dwNumber - 1) {
s = p;
break;

View file

@ -1839,7 +1839,7 @@ void mmTaskEntryPoint16(LPSTR cmdLine, WORD di, WORD si)
/**************************************************************************
* mmTaskBlock [MMSYSTEM.902]
*/
void WINAPI mmTaskBlock16(HINSTANCE16 WINE_UNUSED hInst)
void WINAPI mmTaskBlock16(HINSTANCE16 hInst)
{
MSG msg;

View file

@ -1,24 +1,11 @@
Index: lolvldrv.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/lolvldrv.c,v
retrieving revision 1.58
diff -u -r1.58 lolvldrv.c
--- lolvldrv.c 1 Jun 2004 19:40:48 -0000 1.58
+++ lolvldrv.c 14 Aug 2004 20:50:50 -0000
@@ -510,10 +510,12 @@
case DRV_QUERYDEVICEINTERFACESIZE:
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
+#ifdef __WINESRC__
case DRV_QUERYDSOUNDIFACE: /* Wine-specific: Retrieve DirectSound interface */
case DRV_QUERYDSOUNDDESC: /* Wine-specific: Retrieve DirectSound driver description*/
case DRV_QUERYDSOUNDGUID: /* Wine-specific: Retrieve DirectSound driver GUID */
return MMDRV_Message(mld, uMsg, dwParam1, dwParam2, TRUE);
+#endif
default:
WARN("Unknown call %04x\n", uMsg);
@@ -759,11 +761,18 @@
retrieving revision 1.59
diff -u -r1.59 lolvldrv.c
--- lolvldrv.c 20 Aug 2004 20:01:31 -0000 1.59
+++ lolvldrv.c 19 Sep 2004 11:16:24 -0000
@@ -758,11 +758,18 @@
{
TRACE("()\n");
/* first load hardware drivers */
@ -45,7 +32,7 @@ RCS file: /home/wine/wine/dlls/winmm/time.c,v
retrieving revision 1.26
diff -u -r1.26 time.c
--- time.c 12 Jan 2004 21:03:10 -0000 1.26
+++ time.c 14 Aug 2004 20:50:50 -0000
+++ time.c 19 Sep 2004 11:16:24 -0000
@@ -175,14 +175,19 @@
volatile HANDLE *pActive = (volatile HANDLE *)&TIME_hMMTimer;
DWORD last_time, cur_time;
@ -69,10 +56,10 @@ diff -u -r1.26 time.c
Index: winmm.c
===================================================================
RCS file: /home/wine/wine/dlls/winmm/winmm.c,v
retrieving revision 1.41
diff -u -r1.41 winmm.c
--- winmm.c 9 Aug 2004 18:45:05 -0000 1.41
+++ winmm.c 14 Aug 2004 20:50:51 -0000
retrieving revision 1.42
diff -u -r1.42 winmm.c
--- winmm.c 16 Aug 2004 23:19:17 -0000 1.42
+++ winmm.c 19 Sep 2004 11:16:25 -0000
@@ -126,10 +126,12 @@
loaded = -1;
if (h)
@ -89,11 +76,11 @@ diff -u -r1.41 winmm.c
Index: winmm_res.rc
===================================================================
RCS file: /home/wine/wine/dlls/winmm/winmm_res.rc,v
retrieving revision 1.16
diff -u -r1.16 winmm_res.rc
--- winmm_res.rc 29 Jul 2004 02:40:15 -0000 1.16
+++ winmm_res.rc 14 Aug 2004 20:50:51 -0000
@@ -33,7 +33,7 @@
retrieving revision 1.17
diff -u -r1.17 winmm_res.rc
--- winmm_res.rc 16 Aug 2004 20:02:09 -0000 1.17
+++ winmm_res.rc 19 Sep 2004 11:16:26 -0000
@@ -34,7 +34,7 @@
#include "winmm_Es.rc"
#include "winmm_Fr.rc"
#include "winmm_It.rc"

View file

@ -83,9 +83,7 @@ static BOOL WINMM_CreateIData(HINSTANCE hInstDLL)
return FALSE;
WINMM_IData->hWinMM32Instance = hInstDLL;
InitializeCriticalSection(&WINMM_IData->cs);
/* FIXME crashes in ReactOS
WINMM_IData->cs.DebugInfo->Spare[1] = (DWORD)"WINMM_IData";
*/
WINMM_IData->psStopEvent = CreateEventA(NULL, TRUE, FALSE, NULL);
WINMM_IData->psLastEvent = CreateEventA(NULL, TRUE, FALSE, NULL);
TRACE("Created IData (%p)\n", WINMM_IData);
@ -3237,7 +3235,7 @@ struct mm_starter
HANDLE event;
};
DWORD WINAPI mmTaskRun(void* pmt)
static DWORD WINAPI mmTaskRun(void* pmt)
{
struct mm_starter mms;
@ -3248,6 +3246,9 @@ DWORD WINAPI mmTaskRun(void* pmt)
return 0;
}
/******************************************************************
* mmTaskCreate (WINMM.@)
*/
MMRESULT WINAPI mmTaskCreate(LPTASKCALLBACK cb, HANDLE* ph, DWORD client)
{
HANDLE hThread;
@ -3255,7 +3256,7 @@ MMRESULT WINAPI mmTaskCreate(LPTASKCALLBACK cb, HANDLE* ph, DWORD client)
struct mm_starter *mms;
mms = HeapAlloc(GetProcessHeap(), 0, sizeof(struct mm_starter));
if (mms == NULL) { return TASKERR_OUTOFMEMORY; }
if (mms == NULL) return TASKERR_OUTOFMEMORY;
mms->cb = cb;
mms->client = client;
@ -3272,3 +3273,38 @@ MMRESULT WINAPI mmTaskCreate(LPTASKCALLBACK cb, HANDLE* ph, DWORD client)
CloseHandle(hThread);
return 0;
}
/******************************************************************
* mmTaskBlock (WINMM.@)
*/
void WINAPI mmTaskBlock(HANDLE tid)
{
MSG msg;
do
{
GetMessageA(&msg, 0, 0, 0);
if (msg.hwnd) DispatchMessageA(&msg);
} while (msg.message != WM_USER);
}
/******************************************************************
* mmTaskSignal (WINMM.@)
*/
BOOL WINAPI mmTaskSignal(HANDLE tid)
{
return PostThreadMessageW((DWORD)tid, WM_USER, 0, 0);
}
/******************************************************************
* mmTaskYield (WINMM.@)
*/
void WINAPI mmTaskYield(void) {}
/******************************************************************
* mmGetCurrentTask (WINMM.@)
*/
HANDLE WINAPI mmGetCurrentTask(void)
{
return (HANDLE)GetCurrentThreadId();
}

View file

@ -112,6 +112,7 @@
@ stdcall mixerMessage(long long long long)
@ stdcall mixerOpen(ptr long long long long)
@ stdcall mixerSetControlDetails(long ptr long)
@ stdcall mmGetCurrentTask()
@ stdcall mmioAdvance(long ptr long)
@ stdcall mmioAscend(long ptr long)
@ stdcall mmioClose(long long)
@ -135,7 +136,10 @@
@ stdcall mmioStringToFOURCCW(wstr long)
@ stdcall mmioWrite(long ptr long)
@ stdcall mmsystemGetVersion()
@ stdcall mmTaskBlock(long)
@ stdcall mmTaskCreate(ptr ptr long)
@ stdcall mmTaskSignal(long)
@ stdcall mmTaskYield()
@ stdcall sndPlaySoundA(ptr long)
@ stdcall sndPlaySoundW(ptr long)
@ stdcall timeBeginPeriod(long)

View file

@ -0,0 +1,128 @@
/*
* Czech resources for winmm
* Copyright 1999 Eric Pouech
* Copyright 2004 David Kredba
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library 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
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
STRINGTABLE LANGUAGE LANG_CZECH, SUBLANG_NEUTRAL
BEGIN
/* MMSYS errors */
MMSYSERR_NOERROR, "Určený příkaz byl proveden."
MMSYSERR_ERROR, "Nedefinovaná vnější chyba."
MMSYSERR_BADDEVICEID, "Použité ID zařízení je mimo možnosti systému."
MMSYSERR_NOTENABLED, "Ovladač nebyl povolen."
MMSYSERR_ALLOCATED, "Zařízení je dosud používáno. Vyčkejte na jeho uvolnění a zkuste to znovu."
MMSYSERR_INVALHANDLE, "Ukazatel na zařízení je neplatný."
MMSYSERR_NODRIVER, "V systému není nainstalován žádný ovladač !\n"
MMSYSERR_NOMEM, "Není dost paměti pro tuto úlohu. Ukončete jednu nebo víc aplikací k získání více volné paměti a zkuste to znovu."
MMSYSERR_NOTSUPPORTED, "Tato funkce není podporována. Použijte funkci Capabilities k určení, jaké funkce a zprávy ovladač podporuje."
MMSYSERR_BADERRNUM, "Uvedené číslo chyby není v systému definováno."
MMSYSERR_INVALFLAG, "Systémové funkci byl předán neplatný příznak."
MMSYSERR_INVALPARAM, "Systémové funkci byl předán neplatný parametr."
/* WAVE errors */
WAVERR_BADFORMAT, "Tento formát není podporován nebo nemůže být přeložen. Použijte funkci Capabilities k určení podporovaného formátu."
WAVERR_STILLPLAYING, "Nemohu provést tuto operaci dokud jsou data přehrávána. Zresetujte multimediální zařízení nebo vyčkejte na konec přehrávání."
WAVERR_UNPREPARED, "Wave hlavička nebyla připravena. Použijte funkci Prepare k její konstrukci a pak to zkuste znovu."
WAVERR_SYNC, "Nemohu otevřít zařízení bez použití příznaku WAVE_ALLOWSYNC. Použijte ho a zkuste to znovu."
/* MIDI errors */
MIDIERR_UNPREPARED, "MIDI hlavička nebyla připravena. Použijte funkci Prepare k její konstrukci a pak to zkuste znovu."
MIDIERR_STILLPLAYING, "Nemohu provést tuto operaci dokud jsou data přehrávána. Zresetujte multimediální zařízení nebo vyčkejte na konec přehrávání."
MIDIERR_NOMAP, "MIDI map nebyla nalezena. To může ukazovat na problém s ovladačem nebo je soubor MIDIMAP.CFG poškozen či chybí."
MIDIERR_NOTREADY, "Port přenáší data na zařízení. Počkejte na dokončení přenosu a zkuste to znovu."
MIDIERR_NODEVICE, "Současné nastavení MIDI mapperu se odkazuje na MIDI zařízení nepřítomné v systému. Upravte nastavení MIDI mapperu."
MIDIERR_INVALIDSETUP, "Současné nastavení MIDI je poškozené. Přepište soubor MIDIMAP.CFG ve Windows složce SYSTEM originálem a zkuste to znovu."
/* MCI errors */
MCIERR_INVALID_DEVICE_ID, "Neplatný identifikátor MCI zařízení. Použijte identifikátor vrácený při otevření MCI zařízení."
MCIERR_UNRECOGNIZED_KEYWORD, "Ovladač nepřipouští použitý parametr příkazu."
MCIERR_UNRECOGNIZED_COMMAND, "Ovladač nepřipouští použitý příkaz."
MCIERR_HARDWARE, "S multimediálním zařízením něco není v pořádku. Ujistěte se, že pracuje jak má, případně oslovte jeho výrobce."
MCIERR_INVALID_DEVICE_NAME, "Uvedené zařízení není použitelné nebo není podporované MCI."
MCIERR_OUT_OF_MEMORY, "Není dost paměti na provedení této úlohy. \nUkončete jednu nebo víc aplikací a zkuste to znovu."
MCIERR_DEVICE_OPEN, "Jméno zařízení už je použito jako alias touto aplikací. Použijte unikátní alias."
MCIERR_CANNOT_LOAD_DRIVER, "Vyskytl se nerozpoznatelný problém při zavádění uvedeného ovladače."
MCIERR_MISSING_COMMAND_STRING, "Nebyl zadán žádný příkaz."
MCIERR_PARAM_OVERFLOW, "Výstupní řetězec se nevejde do výstupního zásobníku. Zvětšete velikost zásobníku."
MCIERR_MISSING_STRING_ARGUMENT, "Tento příkaz vyžaduje textový parametr. Zadejte jeden."
MCIERR_BAD_INTEGER, "Toto číslo je neplatné pro tento příkaz."
MCIERR_PARSER_INTERNAL, "Ovladač zařízení vrátil neplatný návratový typ. Zeptejte se dodavatele zařízení na nový ovladač."
MCIERR_DRIVER_INTERNAL, "Byl rozpoznán problém s ovladačem. Získejte od výrobce nový ovladač."
MCIERR_MISSING_PARAMETER, "Tento příkaz vyžaduje parametr. Zadejte ho."
MCIERR_UNSUPPORTED_FUNCTION, "Vámi použité MCI zařízení nepodporuje uvedený příkaz."
MCIERR_FILE_NOT_FOUND, "Soubor nebyl nalezen. Ujistěte se, že cesta k souboru a jeho jméno jsou platné."
MCIERR_DEVICE_NOT_READY, "Ovladač zařízení není připraven."
MCIERR_INTERNAL, "Při inicialiazaci MCI došlo k problémům. Zkuste zrestartovat Windows."
MCIERR_DRIVER, "Ovladač má problémy a ukončil svou činnost. Ovladač nevrátil popis chyby."
MCIERR_CANNOT_USE_ALL, "Nemohu použít 'all' jako jméno zařízení při provádění tohoto příkazu."
MCIERR_MULTIPLE, "Vyskytly se chyby na více zařízeních. Zadejte příkazy zvlášť pro každé jedno zařízeníify, aby bylo zjištěno, které zařízení chybuje."
MCIERR_EXTENSION_NOT_FOUND, "Nedokáži přiřadit soubor s touto příponou vhodnému zařízení."
MCIERR_OUTOFRANGE, "Uvedený parametr je mimo meze uvedeného příkazu."
MCIERR_FLAGS_NOT_COMPATIBLE, "Tyto parametry nemohou být požity spolu."
MCIERR_FILE_NOT_SAVED, "Nemohu uložit soubor. Ujistěte se, že je dost místa na disku nebo je-li Vaše síťové připojení průchozí."
MCIERR_DEVICE_TYPE_REQUIRED, "Nemohu najít požadované zařízení. Ujistěte se, že je nainstalováno, nebo že jste jeho název uvedli přesně."
MCIERR_DEVICE_LOCKED, "Toto zařízení je právě uzavíráno. Vyčkejte několik sekund a zkuste to znovu."
MCIERR_DUPLICATE_ALIAS, "Tento alias je už používán v této aplikaci. Použijte jiné jméno."
MCIERR_BAD_CONSTANT, "Uvedený parametr je neplatný pro tento příkaz."
MCIERR_MUST_USE_SHAREABLE, "Uvedené zařízení je už používáno. Chcete-li ho sdílet, použijte 'shareable' parametr s každým příkazem 'open'."
MCIERR_MISSING_DEVICE_NAME, "Tento příkaz vyžaduje alias, soubor, ovladač nebo název zařízení. Uveďte jeden prosím."
MCIERR_BAD_TIME_FORMAT, "Použitý formát času je neplatný. Nahlédněte do MCI dokumentace a zjistěte si platné formáty."
MCIERR_NO_CLOSING_QUOTE, "Hodnota parametru není uzavřena uvozovkami. Doplňte je."
MCIERR_DUPLICATE_FLAGS, "Parametr nebo hodnota byla zadána dvakrát. Zadejte jen jeden/jednu."
MCIERR_INVALID_FILE, "Tento soubor nemůže být přehrán na tomto MCI zařízení. Soubor může být poškozen nebo nemá správný formát."
MCIERR_NULL_PARAMETER_BLOCK, "MCI byl předán prázdný blok parametrů."
MCIERR_UNNAMED_RESOURCE, "Nemohu uložit soubor bez názvu. Zadejte název."
MCIERR_NEW_REQUIRES_ALIAS, "Při použití parametru 'new' musíte zadat alias."
MCIERR_NOTIFY_ON_AUTO_OPEN, "Nelze použít parametr 'notify' s automaticky otevřeným zařízením."
MCIERR_NO_ELEMENT_ALLOWED, "Nelze použít soubor s tímto zařízením."
MCIERR_NONAPPLICABLE_FUNCTION, "Nelze dokončit skupinu příkazů v tomto pořadí. Opravte pořadí příkazů a zkuste to znovu."
MCIERR_ILLEGAL_FOR_AUTO_OPEN, "Tento příkaz nelze dokončit na automaticky otevřeném zařízení. Vyčkejte na zavření zařízení a zkuste to znovu."
MCIERR_FILENAME_REQUIRED, "Název souboru je neplatný. Ujistěte se, že název souboru má 8 znaků následovaných tečkou a příponou."
MCIERR_EXTRA_CHARACTERS, "Nelze zadat znaky za řetězec uzavřený uvozovkami."
MCIERR_DEVICE_NOT_INSTALLED, "Toto zařízení není v systému nainstalováno. Nainstalujte ho v Ovládacím panelu, na záložce Ovladače."
MCIERR_GET_CD, "Nemohu přistoupit k uvedenému souboru nebo MCI zařízení. Změňte adresář nebo restartujte Váš počítač."
MCIERR_SET_CD, "Nemohu přistoupit k uvedenému souboru nebo MCI zařízení, protože aplikace nemůže změnit adresář."
MCIERR_SET_DRIVE, "Nemohu přistoupit k uvedenému souboru nebo MCI zařízení, protože aplikace nemůže změnit jednotku disku."
MCIERR_DEVICE_LENGTH, "Určete zařízení nebo ovladač jehož název je kratší než 79 znaků."
MCIERR_DEVICE_ORD_LENGTH, "Určete zařízení nebo ovladač jehož název je kratší než 69 znaků."
MCIERR_NO_INTEGER, "Tento příkaz vyžaduje celočíselný parametr. Použijte ho prosím."
MCIERR_WAVE_OUTPUTSINUSE, "Všechna wave zařízení, která by mohla přehrát soubory s tímto formátem jsou používána. Vyčkejte na uvolnění zařízení a zkuste to znovu."
MCIERR_WAVE_SETOUTPUTINUSE, "Nemohu nastavit toto wave zařízení na playback, jelikož je používáno. Vyčkejte na uvolnění zařízení a zkuste to znovu."
MCIERR_WAVE_INPUTSINUSE, "Všechna wave zařízení, která by mohla nahrávat oubory s tímto formátem jsou používána. Vyčkejte na uvolnění zařízení a zkuste to znovu."
MCIERR_WAVE_SETINPUTINUSE, "Nemohu nastavit toto wave zařízení na nahrávání, jelikož je používáno. Vyčkejte na uvolnění zařízení a zkuste to znovu."
MCIERR_WAVE_OUTPUTUNSPECIFIED, "Jakékoliv waveform kompatibilní přehrávací zařízení může být použito."
MCIERR_WAVE_INPUTUNSPECIFIED, "Jakékoliv waveform kompatibilní nahrávací zařízení může být použito."
MCIERR_WAVE_OUTPUTSUNSUITABLE, "Není nainstalováno žádné wave zařízení, které by bylo schopno přehrát soubory v tomto formátu. Použijte záložku Ovladače k instalaci wave zařízení."
MCIERR_WAVE_SETOUTPUTUNSUITABLE,"Přehrávací zařízení nedokázalo rozpoznat formát souboru."
MCIERR_WAVE_INPUTSUNSUITABLE, "Není nainstalováno žádné wave zařízení, které by bylo schopno nahrát soubory v tomto formátu. Použijte záložku Ovladače k instalaci wave zařízení."
MCIERR_WAVE_SETINPUTUNSUITABLE, "Zařízení, ze kterého zkoušíte nahrávat, nedokáže rozpoznat formát výstupního souboru."
MCIERR_NO_WINDOW, "Okno display chybí."
MCIERR_CREATEWINDOW, "Nemohu vytvořit nebo použít okno."
MCIERR_FILE_READ, "Nemohu přečíst zadaný soubor. Ujistěte se, že soubor stále existuje a zkontrolujte svůj disk nebo síťovou konektivitu."
MCIERR_FILE_WRITE, "Nemohu zapisovat do zadaného souboru. Ujistěte se, že máte dost místa na disku nebo zda jste připojeni k síti."
MCIERR_SEQ_DIV_INCOMPATIBLE, "Formáty času ""song pointer"" a SMPTE jsou vzájemně výlučné. Nemůžete je použít současně."
MCIERR_SEQ_NOMIDIPRESENT, "V systému nejsou nainstalovány MIDI zařízení. Nainstalujte je ze záložky Ovladač v Ovládacím panelu."
MCIERR_SEQ_PORT_INUSE, "Tento MIDI port je používán. Vyčkejte na jeho uvolnění; pak to zkuste znovu."
MCIERR_SEQ_PORT_MAPNODEVICE, "Nastavení MIDI mapperu odkazuje na MIDI zařízení, které není v systému nainstalováno. Nainstalujte ho pomocí záložky MIDI Mapper v Ovládacím panelu."
MCIERR_SEQ_PORT_MISCERROR, "Nastala chyba při práci s tímto portem."
MCIERR_SEQ_PORT_NONEXISTENT, "Toto MIDI zařízení není nainstalováno v systému. Nainstalujte ho v Ovládacím panelu na záložce Driver."
MCIERR_SEQ_PORTUNSPECIFIED, "Systém nezná tento MIDI port."
MCIERR_SEQ_TIMER, "Všechny časovače multimédií jsou používány aplikacemi. Ukončete jednu z těchto aplikací a zkuste to znovu."
END

View file

@ -28,6 +28,7 @@
#include "winnls.h"
/* Add your language specific defines here */
#include "winmm_Cs.rc"
#include "winmm_De.rc"
#include "winmm_En.rc"
#include "winmm_Es.rc"