From 4702f3b3f943c643dc5e55dfdd126afdedcf4f3c Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sat, 19 Jul 2014 07:44:42 +0000 Subject: [PATCH] Initial import git-svn-id: http://moon:8086/svn/software/trunk/libsrc/avwavio@1 b431acfa-c32f-4a4a-93f1-934dc6c82436 --- avwaveio.c | 211 +++++++++++++++++++++++++++++++++++++++++++++++++++ avwaveio.dsp | 96 +++++++++++++++++++++++ avwaveio.dsw | 29 +++++++ avwaveio.ncb | Bin 0 -> 41984 bytes avwaveio.opt | Bin 0 -> 48640 bytes avwaveio.plg | 27 +++++++ 6 files changed, 363 insertions(+) create mode 100755 avwaveio.c create mode 100755 avwaveio.dsp create mode 100755 avwaveio.dsw create mode 100755 avwaveio.ncb create mode 100755 avwaveio.opt create mode 100755 avwaveio.plg diff --git a/avwaveio.c b/avwaveio.c new file mode 100755 index 0000000..8ca58ad --- /dev/null +++ b/avwaveio.c @@ -0,0 +1,211 @@ +/* + *------------------------------------------------------------------------- + * file_io.cpp Wav/Raw I/O methods + * $Id: file_io.cpp 1.2 2000/07/18 09:45:41Z JA Exp $ + *------------------------------------------------------------------------- + * + * Copyright (C) 1999-2000 Algo Vision Systems GmbH + * + * This file is part of the Algo Vision platform independent software + * library. + * All rights reserved. Copying, compilation, modification, distribution + * or any other use whatsoever of this material is strictly prohibited + * except in accordance with a Software License Agreement with + * Algo Vision. + * + *------------------------------------------------------------------------- + */ +#include "stdio.h" +#include "stdlib.h" +#include "string.h" +#include "avwaveio.h" + +/******************************************************************************/ +/* C definitions +/******************************************************************************/ +void WavInit(struct _sWAV *pObj, UINT32 nSamplesPerSec, UINT16 nBits, UINT16 nChannels, UINT16 format) +{ + WavSetFormat(pObj, nSamplesPerSec, nBits, nChannels, format); + pObj->m_FileType = FILETYPE_RAW; + pObj->m_FileSize = 0; + pObj->m_HeaderSize = 0; + pObj->m_DataSize = 0; + pObj->pHndWavFile = 0; + pObj->m_numSamples = 0; +} + +/******************************************************************************/ +UINT32 WavSetFormat(struct _sWAV *pObj, UINT32 nSamplesPerSec, UINT16 nBits, UINT16 nChannels, UINT16 format) +{ + pObj->m_Format.wFormatTag = format; + pObj->m_Format.nChannels = nChannels; + pObj->m_Format.wBitsPerSample = nBits; + pObj->m_Format.nBlockAlign = (nChannels * nBits)/ 8; + pObj->m_Format.nSamplesPerSec = nSamplesPerSec; + pObj->m_Format.nAvgBytesPerSec = (UINT32)pObj->m_Format.nBlockAlign * nSamplesPerSec; + pObj->m_Format.cbSize = 0; + + return 0; +} + +/******************************************************************************/ +UINT32 WavOpen (struct _sWAV *pObj, char* FileName) +{ + UINT32 stat; + + //Wav-File öffnen + strcpy(pObj->m_Name, FileName); + + pObj->pHndWavFile = fopen (pObj->m_Name,"rb"); + if (pObj->pHndWavFile == 0) + return -1; + + stat=ReadHeader(pObj); + if (stat != 0) + { + pObj->m_FileType = FILETYPE_RAW; + fseek(pObj->pHndWavFile, 0L, SEEK_END); + pObj->m_DataSize = ftell(pObj->pHndWavFile); + pObj->m_FileSize = pObj->m_DataSize; + pObj->m_numSamples = pObj->m_DataSize/pObj->m_Format.nBlockAlign; + fseek(pObj->pHndWavFile, 0L, SEEK_SET); + pObj->WREAD = 1; + return 0; + } + + pObj->m_numSamples = pObj->m_DataSize /pObj->m_Format.nBlockAlign; + pObj->m_FileType = FILETYPE_WAV; + pObj->WREAD = 1; + +return 0; +} +/******************************************************************************/ +UINT32 WavClose(struct _sWAV *pObj) +{ + if (!pObj->WREAD && (pObj->m_FileType == FILETYPE_WAV)) + WriteHeader(pObj); + + fclose(pObj->pHndWavFile); + return 0; +} + +/******************************************************************************/ +UINT32 WavCreate (struct _sWAV *pObj, char *fileName, UINT32 fileType) +{ + pObj->m_FileType = fileType; + + strcpy(pObj->m_Name, fileName); + + //Wav-File öffnen + pObj->pHndWavFile = fopen (pObj->m_Name,"wb"); + if (pObj->pHndWavFile == 0) + return -1; + + pObj->WREAD = 0; + if (pObj->m_FileType == FILETYPE_WAV) + WriteHeader(pObj); + return 0; +} + +/******************************************************************************/ +UINT32 WavRead(struct _sWAV *pObj, char *data, UINT32 nSamples) +{ + UINT32 count; + count = fread(data, sizeof(char), nSamples*pObj->m_Format.nBlockAlign, pObj->pHndWavFile); + + return count /pObj->m_Format.nBlockAlign; +} + +/******************************************************************************/ +UINT32 WavWrite(struct _sWAV *pObj, char *data, UINT32 nSamples) +{ + + UINT32 count; + + fseek(pObj->pHndWavFile, 0L, SEEK_END); + count = fwrite(data, sizeof(char), nSamples*pObj->m_Format.nBlockAlign, pObj->pHndWavFile); + + pObj->m_DataSize = pObj->m_DataSize + count; + pObj->m_numSamples = pObj->m_DataSize /pObj->m_Format.nBlockAlign; + pObj->m_FileSize = pObj->m_DataSize; + + if (pObj->m_FileType == FILETYPE_WAV) + pObj->m_FileSize += pObj->m_HeaderSize + 20; + + return count/pObj->m_Format.nBlockAlign; +} + +/******************************************************************************/ +UINT32 ReadHeader (struct _sWAV *pObj) +{ + char buf[80]; + + // 1. 'RIFF' abprüfen + fread(buf, sizeof(char), 4,pObj->pHndWavFile); + buf[4]=0; + if (strcmp (buf,"RIFF")) + return -1; + + // 2. FILESIZE ermitteln + fread(&pObj->m_FileSize, sizeof(UINT32), 1,pObj->pHndWavFile); + + // 3. 'WAVEfmt' abprüfen + fread(buf, sizeof(char), 8,pObj->pHndWavFile); + buf[8]=0; + if (strcmp (buf,"WAVEfmt ")) + return -1; + + // 3. HeaderSize ermitteln + fread(&pObj->m_HeaderSize, sizeof(pObj->m_HeaderSize), 1,pObj->pHndWavFile); + + // 4. Den ganzen Infoblock einlesen + fread(&pObj->m_Format, pObj->m_HeaderSize, 1,pObj->pHndWavFile); + + // 5. 'data' abprüfen + fseek(pObj->pHndWavFile,(INT32)(pObj->m_HeaderSize+20), SEEK_SET); + fread(buf, sizeof(char), 4, pObj->pHndWavFile); + buf[4]=0; + if (strcmp (buf,"data")) + return -1; + + // 6. Datenlänge ermitteln + fread(&pObj->m_DataSize, sizeof(pObj->m_DataSize), 1,pObj->pHndWavFile); + + return 0; +} + +/******************************************************************************/ +UINT32 WriteHeader (struct _sWAV *pObj) +{ + + pObj->m_HeaderSize = bs; + pObj->m_FileSize = pObj->m_HeaderSize + pObj->m_DataSize + 20; + + fseek(pObj->pHndWavFile,0L, SEEK_SET); + + // 1. 'RIFF' schreiben + fwrite("RIFF",sizeof(char), 4, pObj->pHndWavFile); + + // 2. FILESIZE schreiben + fwrite(&pObj->m_FileSize, sizeof(pObj->m_FileSize), 1, pObj->pHndWavFile); + + // 3. 'WAVEfmt ' schreiben + fwrite("WAVEfmt ", sizeof(char), 8, pObj->pHndWavFile); + + // 3. HeaderSize schreiben + fwrite(&pObj->m_HeaderSize, sizeof(pObj->m_HeaderSize), 1, pObj->pHndWavFile); + + // 4. Infoblock schreiben + fwrite(&pObj->m_Format, pObj->m_HeaderSize, 1, pObj->pHndWavFile); + + // 5. 'data' schreiben + fseek(pObj->pHndWavFile, (INT32)(pObj->m_HeaderSize+20), SEEK_SET); + fwrite("data",sizeof(char), 4, pObj->pHndWavFile); + + // 6. Datenlänge schreiben + fwrite(&pObj->m_DataSize, sizeof(pObj->m_DataSize), 1, pObj->pHndWavFile); + +return 0; +} + +/******************************************************************************/ diff --git a/avwaveio.dsp b/avwaveio.dsp new file mode 100755 index 0000000..eb8a230 --- /dev/null +++ b/avwaveio.dsp @@ -0,0 +1,96 @@ +# Microsoft Developer Studio Project File - Name="waveio" - Package Owner=<4> +# Microsoft Developer Studio Generated Build File, Format Version 6.00 +# ** NICHT BEARBEITEN ** + +# TARGTYPE "Win32 (x86) Static Library" 0x0104 + +CFG=waveio - Win32 Debug +!MESSAGE Dies ist kein gültiges Makefile. Zum Erstellen dieses Projekts mit NMAKE +!MESSAGE verwenden Sie den Befehl "Makefile exportieren" und führen Sie den Befehl +!MESSAGE +!MESSAGE NMAKE /f "avwaveio.mak". +!MESSAGE +!MESSAGE Sie können beim Ausführen von NMAKE eine Konfiguration angeben +!MESSAGE durch Definieren des Makros CFG in der Befehlszeile. Zum Beispiel: +!MESSAGE +!MESSAGE NMAKE /f "avwaveio.mak" CFG="waveio - Win32 Debug" +!MESSAGE +!MESSAGE Für die Konfiguration stehen zur Auswahl: +!MESSAGE +!MESSAGE "waveio - Win32 Release" (basierend auf "Win32 (x86) Static Library") +!MESSAGE "waveio - Win32 Debug" (basierend auf "Win32 (x86) Static Library") +!MESSAGE + +# Begin Project +# PROP AllowPerConfigDependencies 0 +# PROP Scc_ProjName "" +# PROP Scc_LocalPath "" +CPP=cl.exe +RSC=rc.exe + +!IF "$(CFG)" == "waveio - Win32 Release" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 0 +# PROP BASE Output_Dir "Release" +# PROP BASE Intermediate_Dir "Release" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 0 +# PROP Output_Dir "Release" +# PROP Intermediate_Dir "Release" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD CPP /nologo /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c +# ADD BASE RSC /l 0x407 /d "NDEBUG" +# ADD RSC /l 0x407 /d "NDEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\lib\Release\avwaveio.lib" + +!ELSEIF "$(CFG)" == "waveio - Win32 Debug" + +# PROP BASE Use_MFC 0 +# PROP BASE Use_Debug_Libraries 1 +# PROP BASE Output_Dir "Debug" +# PROP BASE Intermediate_Dir "Debug" +# PROP BASE Target_Dir "" +# PROP Use_MFC 0 +# PROP Use_Debug_Libraries 1 +# PROP Output_Dir "Debug" +# PROP Intermediate_Dir "Debug" +# PROP Target_Dir "" +# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD CPP /nologo /W3 /Gm /GX /ZI /Od /I "../include" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c +# ADD BASE RSC /l 0x407 /d "_DEBUG" +# ADD RSC /l 0x407 /d "_DEBUG" +BSC32=bscmake.exe +# ADD BASE BSC32 /nologo +# ADD BSC32 /nologo +LIB32=link.exe -lib +# ADD BASE LIB32 /nologo +# ADD LIB32 /nologo /out:"..\..\lib\Debug\avwaveio.lib" + +!ENDIF + +# Begin Target + +# Name "waveio - Win32 Release" +# Name "waveio - Win32 Debug" +# Begin Group "Quellcodedateien" + +# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat" +# Begin Source File + +SOURCE=.\avwaveio.c +# End Source File +# End Group +# Begin Group "Header-Dateien" + +# PROP Default_Filter "h;hpp;hxx;hm;inl" +# End Group +# End Target +# End Project diff --git a/avwaveio.dsw b/avwaveio.dsw new file mode 100755 index 0000000..fb88a6f --- /dev/null +++ b/avwaveio.dsw @@ -0,0 +1,29 @@ +Microsoft Developer Studio Workspace File, Format Version 6.00 +# WARNUNG: DIESE ARBEITSBEREICHSDATEI DARF NICHT BEARBEITET ODER GELÖSCHT WERDEN! + +############################################################################### + +Project: "waveio"=.\avwaveio.dsp - Package Owner=<4> + +Package=<5> +{{{ +}}} + +Package=<4> +{{{ +}}} + +############################################################################### + +Global: + +Package=<5> +{{{ +}}} + +Package=<3> +{{{ +}}} + +############################################################################### + diff --git a/avwaveio.ncb b/avwaveio.ncb new file mode 100755 index 0000000000000000000000000000000000000000..3d83cdff84a0bbb0676d1c65ea7775dd16a8e90f GIT binary patch literal 41984 zcmeI5U2GLa6vxjkg_e)fv5`nfr3GF2mYA9!z|dphce~KJke01rwt$K44Ej>fdJu|a2 zv$MbM?8lt5L$jOqy}Z{ISoJman>Ja!zSr&BS*z0y><&BcSan-!Yb$0gJ9I!qN<|W~ zK|VtC=G?N9YG@5gKnYA{0yA#b+}EH4lzNt4KnW-TC7=Y9fD%vwNNt4KnW-TC7=Y9fD%vwN+H)o57PO-^J7WZ&Ek>Q9|SI3QU=)$DTjOxnGIpU8Yl7&WEP|m!uroaW(=noDx)lMCn37{Z#@Jk3a>wbPmGxeD>np?OinkXRb)k{4%4zc)hIT!ZeZV z&>Skak^dPBEGR3ff|?I~6Z$OjJ5m2UG>6K?P+Mq^L#h^fy)2M*V##V*DQjefJTI%{ z1>tpI5|4izn+7E?SqYrOn4O1V%>FOMzuibL6bw>?MfkUp=}aNL0OPkhwtXQ=*2U75 zQYq(f)j$^Nm&gY)DAi0~WV%#Z<)r+Ajfonj%OxeJV>E*bV)QVF~uaYzJzVsK=2BfsJLSK$M}oLr~QKQ z8^^wqWzaP1&qi-)uAdG~v;Hh-mMMXzZL$=a9A-k(b~yu@CjK&L+C0mlY4)E34O1v2 zVR%$PlSknf5e-UUk`dr|(4YjAz!W9GhkqKlY1rotpOXPJit`Rh!#HouCn0oCrneE{LZ1OpA~Lj!N*8<3eg(waQby0^KxG1c5u-#N&WUT_ z+Xyeko;AW)#_b5BzMJbdQRC1^MT!v)&GZ#H7J3nNuc2WK9-{o+o zufj~iQd~_I%M$aBj?EgBfD#x70%nkp!+v#_NqFBEa#_=Xg$! zjLrT(|3CJBwh8;cRrsn1iBX21zx~+Q|3_I(iz@*oFiHX(s}t4#hb9R2kG6T5Cm5&w zoztj{({{;eTgE9gM^MvOL4y)d0*@!~B>aCk=ICcbGa%#iwF$r5HDi<}LFQw#@&93* zbAsWwzJ>7}*5#ZbO@}N)9~|?2Ff`{L!*6|!FHZb=5PtJ(#(n&HfGQf4fD(8F0p3Ho z{txe~y8aI!@WM2j^?y)YgA$mm1n%9scZ>JhK3)LM48Q2sknF-jTVwUUIm7k5{+Iub z`u|J?|DX1qDRZi%;A-`d_2TN`0Oot$zMaiFsb)9rdwH)bu#UU=K09Nz1$}VXO4WPW zte2w$nbS`PGB;Of*PMc5Z6P`Z$67z;f;Lh=r#cMKxS!JG*%d;)Lq|7kVJ7|KF(mV$C4M4_|^Op#NWd{ZGDhKXdDUnw3n$wMa*BPvQGe^qo`Z zcFsUNcpYGzuLsexq0zFS(ek0y*v1;yAn|2F`Ci32$wmn0TQn$vi9&!&c!Ka_wH NPy$Lo2|VKj{sr0kkgEUy literal 0 HcmV?d00001 diff --git a/avwaveio.opt b/avwaveio.opt new file mode 100755 index 0000000000000000000000000000000000000000..da1e5bdaaf212e482b105a92dcb109ff64e12f71 GIT binary patch literal 48640 zcmeI5TXR!Y7=~Bqflz8GSgYb`+j1z-mh@mP1(9?og+dR|7K$1t=CCZ0kaUu?g<+WC zAE@JupvHSpZ(pn9kQ zl4rgfazlHdCTK4t&-n!$TcCXqUIDcqIsm;0wLvdI68AEWuRyOt2cg%X*P%C{H=(y6 zi5thU1L}khL5HCu&{3!hItCqwB(@vJ9;g>O33;GCs2>`D1|f+X!tq^b7&--wK&PQI z(0kBXNaD`n=!Hfh6Y@cRXbd_JU4SG`bP4qdXcC%&rlHHw6=(*Ug(U7Oj@O`h=sNTP z^da;S6o5X4ByOve8I{COMj04+0>_lPgC3S&+VRFXW7+kT+giU{{AKv7A6+tjCv+a! zQ|hKlt3?%35v9?SS@a_WX(#9jM?>wh-cfmXr5{fS&0VtkDK9I^D6%Kj3i4~zDle^S zmrK4o@^`V^{LPZa&hJ-I6~kDCLN%oY`Q`g6xuulTM!N*r`CWK^()Y%d(6Wvt56zDR zR$_^P{y;nyPNyP)&@wK>lG!5ydZXz@iDw}J5+DH*AOR8}0TLhq5+DH*AORBCJ_NpW zxx@}}x$7P%x97q3={S4(TnJ3NeD%L8x9iWV4^``>hpIEGKaC}{VS4Ax3tf?TD4h-_ zLbr6cp^q8&j7TUGxnbm;H;&7NyG_o0-YH+O+I#)Zy~e#;`YJ!d{pEGI&oshI&n^WdCjRG@ZoDntkZJhB+b*}5CSu} zyf}$1>bjg_ApsH~0TLhq5+DH*AOR8}0TLjAok@WH-_Crl)sBk(Uv2q+Zdh=W6BlJ_ zYq7sZ|F7CF5$_`b5+DH*AOR8}0TLhq5+DH*Ab~ALfd1bWdmx+K9r}N@<^Pphe?5;C z$qCqjvM%~*r334aWv_tj>f`d(AHOY)+Ut+Uv5J0N1(7MFmazsqhOCv8c1-zma+kaQ z`9z8QmE_EiZK@*wJ9+s{701Za__>C$Yj7~IcR)q_D<1#*dHL%w_0wMaz59~P?$wEg zGydtBv-!VUvWvrwf`F1Icl$ya9dp_^>P>}pERzoFl#XGZaEG;;9IMDXMvOk=aw_?m zzL~*9UZ*Mh=GH4qIv$TCqdJ=3T2WNCgC$Rvn>T-qg+0%I#H^D536KB@kN^pg011!) z36KB@kifPlK>v5!Kf?cY0Q7%r%m4l4adsheyKV9H81u6IqcNl7I+WJUj$@bI_tC9P z%e9MSHi+Ngv@FYh+#n0CrS_L>GHaE#qO3k0URo#)cGhV(y4z-FM`y5Zd#^I*La7Cv z8PDij8>E!>OExbT?55TkjV|nUYmM-HD!H_1M>V+Hd>7|iF6dBHr+RFU@(Gc3QH?D! z+mz|ki#ie2iO3x@naG5&jY6uR$+82pJ;?r+?z4~p36KB@kN^pg011!)36KB@kU)h5 z=>Js+Y=?)_|Eo>^uilvj2s_YK!WV2&=m*M z|D*rsyf8eH011!)36KB@kN^pg011!)2~JH>Z&!Z&WxwW z;?dc7GHfpjme*V-T$pr6|Bv(kcIY2H4vPdxfCNZ@1W14cNPq-LfCOrQ0R6ujc*qqD zk^Wz8`F}p_IT%(;Y5_l5r7Cz+vY`j6*#GdN+-mRt=)-=G5#+yx>xZM38=Ol%lU#ibqD&2qbS@RX&|19~Ntbf5REjsk-QEz^PEgM%tksC{ig}%a% z{e>R~3O^1yeRC#la{edRe>?94k0d|>BtQZrKmsH{0wh2JBtQb2M}YqC=CR+3nd$%5 zmjBy`nVnd0-Jt4S>YIWW(mZLNu>Mm{!PycYjQgtIP+}XRpc%W|cPi>Wa!4`GopZu+ z*VZbZuT|I8ntKCltIvlr-dAMNSuGsk*H#|DRbJRYyt;~6yj`u+X) zl + +
+

Erstellungsprotokoll

+

+--------------------Konfiguration: waveio - Win32 Release-------------------- +

+

Befehlszeilen

+Erstellen der temporären Datei "E:\WIN98SE\TEMP\RSPD1.TMP" mit Inhalten +[ +/nologo /ML /W3 /GX /O2 /I "../../include" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /Fp"Release/avwaveio.pch" /YX /Fo"Release/" /Fd"Release/" /FD /c +"H:\Develop\80X86\LIBSRC\avwavio\avwaveio.c" +] +Creating command line "cl.exe @E:\WIN98SE\TEMP\RSPD1.TMP" +Erstellen der Befehlzeile "link.exe -lib /nologo /out:"..\..\lib\Release\avwaveio.lib" .\Release\avwaveio.obj " +

Ausgabefenster

+Kompilierung läuft... +avwaveio.c +Bibliothek wird erstellt... + + + +

Ergebnisse

+avwaveio.lib - 0 Fehler, 0 Warnung(en) +
+ +