OSDN Git Service

まずまず
authoryamat0jp <yamat0jp@yahoo.co.jp>
Sun, 13 May 2018 14:03:00 +0000 (23:03 +0900)
committeryamat0jp <yamat0jp@yahoo.co.jp>
Sun, 13 May 2018 14:03:00 +0000 (23:03 +0900)
WriteHeader.pas
effect.pas
wav_proj.dpr
wav_proj.dproj
wav_proj.dproj.local
wav_proj.identcache

index c97f8fa..844afe1 100644 (file)
@@ -46,24 +46,21 @@ begin
   pInMem := TMemoryStream.Create;
   pOutMem := TMemoryStream.Create;
   try
-    if pInMem.CopyFrom(fpIn, sp.sizeOfData) = -1 then
-    begin
-      result := -1;
-      Exit;
-    end;
+    pInMem.CopyFrom(fpIn, 0);
+    pOutMem.SetSize(pInMem.Size);
     if sp.bitsPerSample = 8 then
       result := effect8BitWav(pInMem, pOutMem, sp)
     else
       result := effect16BitWav(pInMem, pOutMem, sp);
-    if fpOut.CopyFrom(pOutMem, sp.sizeOfData) = 0 then
-    begin
+    fpOut.CopyFrom(pOutMem, 0);
+  except
+    on EReadError do
+      result := -1;
+    on EWriteError do
       result := -1;
-      Writeln('\8f\91\82«\8d\9e\82Ý\8e¸\94s');
-    end;
-  finally
-    pInMem.Free;
-    pOutMem.Free;
   end;
+  pInMem.Free;
+  pOutMem.Free;
 end;
 
 function wavWrite(inFile, outFile: PChar; const wHdr: WrSWaveFileHeader;
@@ -73,9 +70,8 @@ var
 begin
   result := 0;
   try
-    fpIn:=TFileStream.Create(inFile,fmOpenRead);
+    fpIn := TFileStream.Create(inFile, fmOpenRead);
     fpOut := TFileStream.Create(outFile, fmCreate);
-    fpOut.WriteBuffer(wHdr, SizeOf(WrSWaveFileHeader));
     if wavDataWrite(fpIn, fpOut, sp) = -1 then
       raise EWriteError.Create('');
   except
index 774cf79..12e3350 100644 (file)
@@ -12,34 +12,35 @@ implementation
 
 function effect8BitWav(InInMem, InOutMem: TMemoryStream; sp: SpParam): integer;
 var
-  i, j: Integer;
+  i, j: integer;
   pInMem, pOutMem: TBytes;
 begin
-  j:=sp.sizeOfData-2;
-  pInMem:=InInMem.Memory;
-  pOutMem:=InOutMem.Memory;
+  j := sp.sizeOfData - 2;
+  pInMem := InInMem.Memory;
+  pOutMem := InOutMem.Memory;
   for i := 0 to sp.sizeOfData div 2 do
   begin
-    pOutMem[2*i]:=pInMem[j];
-    pOutMem[2*i+1]:=pInMem[j+1];
-    dec(j,2);
+    pOutMem[2 * i] := pInMem[j];
+    pOutMem[2 * i + 1] := pInMem[j + 1];
+    dec(j, 2);
   end;
 end;
 
 function effect16BitWav(InInMem, InOutMem: TMemoryStream; sp: SpParam): integer;
 var
-  i, j, k: Integer;
+  i, j, k: integer;
   pInMem, pOutMem: TBytes;
 begin
-  pInMem:=InInMem.Memory;
-  pOutMem:=InOutMem.Memory;
-  k:=sp.sizeOfData div 2;
+  pInMem := InInMem.Memory;
+  pOutMem := InOutMem.Memory;
+  i := 0;
+  k := sp.sizeOfData div 2;
   while i < k do
   begin
-    pOutMem[i]:=pInMem[j];
-    pOutMem[i+1]:=pInMem[j+1];
-    inc(i,2);
-    dec(j,2);
+    pOutMem[i] := pInMem[j];
+    pOutMem[i + 1] := pInMem[j + 1];
+    inc(i, 2);
+    dec(j, 2);
   end;
 end;
 
index e42794d..e6ba220 100644 (file)
@@ -8,41 +8,23 @@ uses
   System.Classes,
   spWav in 'spWav.pas',
   effect in 'effect.pas',
-  WriteHeader in 'WriteHeader.pas';
-
-procedure setupHeader(var wHdr: WrSWaveFileHeader; var sp: SpParam);
-var
-  bytes: Byte;
-begin
-  wHdr.hdrRiff := STR_RIFF;
-  wHdr.sizeOfFile := sp.sizeOfData + SizeOf(WrSWaveFileHeader) - 8;
-  wHdr.hdrWave := STR_WAVE;
-  wHdr.hdrFmt := STR_fmt;
-  wHdr.sizeOfFmt := SizeOf(tWaveFormatPcm);
-  wHdr.stWaveFormat.formatTag := 1;
-  wHdr.stWaveFormat.channels := sp.channels;
-  wHdr.stWaveFormat.sampleParSec := sp.samplePerSec;
-  bytes := sp.bitsPerSample div 8;
-  wHdr.stWaveFormat.bytesPerSec := bytes * sp.channels * sp.samplePerSec;
-  wHdr.stWaveFormat.blockAlign := bytes * sp.channels;
-  wHdr.stWaveFormat.bitsPerSample := sp.bitsPerSample;
-  wHdr.hdrData := STR_data;
-  wHdr.sizeOfData := sp.sizeOfData;
-end;
+  WriteHeader in 'WriteHeader.pas',
+  wav in 'wav.pas';
 
 var
   sp: SpParam;
-  totalLength: integer;
   hdrHeader: WrSWaveFileHeader;
 
 begin
   try
     { TODO -oUser -cConsole \83\81\83C\83\93 : \82±\82±\82É\83R\81[\83h\82ð\8bL\8fq\82µ\82Ä\82­\82¾\82³\82¢ }
-    if ParamCount <> 3 then
+    if ParamCount <> 2 then
     begin
       usage;
       Exit;
     end;
+    if wavHdrRead(PChar(ParamStr(1)), sp) = -1 then
+      Exit;
     if wavWrite(PChar(ParamStr(1)), PChar(ParamStr(2)), hdrHeader, sp) = -1 then
       Exit;
     Writeln('\8a®\97¹');
index a20da81..c5a0ee5 100644 (file)
@@ -5,7 +5,7 @@
         <FrameworkType>None</FrameworkType>
         <MainSource>wav_proj.dpr</MainSource>
         <Base>True</Base>
-        <Config Condition="'$(Config)'==''">Debug</Config>
+        <Config Condition="'$(Config)'==''">Release</Config>
         <Platform Condition="'$(Platform)'==''">Win32</Platform>
         <TargetedPlatforms>3</TargetedPlatforms>
         <AppType>Console</AppType>
         <DCC_RemoteDebug>true</DCC_RemoteDebug>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
-        <Debugger_RunParams>effect.wav 100 2000</Debugger_RunParams>
+        <Debugger_RunParams>toujyo.wav effect.wav</Debugger_RunParams>
         <DCC_RemoteDebug>false</DCC_RemoteDebug>
     </PropertyGroup>
     <PropertyGroup Condition="'$(Cfg_1_Win64)'!=''">
         <DCCReference Include="spWav.pas"/>
         <DCCReference Include="effect.pas"/>
         <DCCReference Include="WriteHeader.pas"/>
+        <DCCReference Include="wav.pas"/>
         <BuildConfiguration Include="Release">
             <Key>Cfg_2</Key>
             <CfgParent>Base</CfgParent>
index 795a4ee..9904307 100644 (file)
     <Transaction>2017/10/19 20:49:45.000.816,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/10/19 20:50:18.000.999,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/10/19 20:50:19.000.049,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerContainerUnit1.pas</Transaction>
+    <Transaction>2017/10/19 21:37:00.000.271,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
     <Transaction>2017/10/19 21:37:00.000.652,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerContainerUnit1.pas</Transaction>
     <Transaction>2017/10/19 21:37:00.000.365,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
-    <Transaction>2017/10/19 21:37:00.000.271,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
     <Transaction>2017/10/28 22:58:31.000.296,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
     <Transaction>2017/10/29 14:44:00.000.024,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
-    <Transaction>2017/10/29 16:13:37.000.174,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/10/29 16:13:37.000.037,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\Unit1.pas</Transaction>
+    <Transaction>2017/10/29 16:13:37.000.174,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/10/29 16:13:37.000.809,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerContainerUnit1.pas</Transaction>
     <Transaction>2017/10/29 16:55:16.000.244,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/10/29 16:55:16.000.343,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerContainerUnit1.pas</Transaction>
@@ -35,8 +35,8 @@
     <Transaction>2017/11/01 18:21:25.000.947,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:21:26.000.254,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\WebModuleUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:23:22.000.440,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\WebModuleUnit1.pas</Transaction>
-    <Transaction>2017/11/01 18:23:22.000.193,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\FormUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:23:22.000.344,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
+    <Transaction>2017/11/01 18:23:22.000.193,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\FormUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:33:21.000.032,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerMethodsUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:33:21.000.133,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\ServerContainerUnit1.pas</Transaction>
     <Transaction>2017/11/01 18:33:39.000.795,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\WebModuleUnit1.pas</Transaction>
@@ -55,5 +55,6 @@
     <Transaction>2018/05/13 21:58:37.377,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\myapp\wav\Unit1.pas</Transaction>
     <Transaction>2018/05/13 21:58:48.578,C:\Users\yamat\Documents\Embarcadero\Studio\Projects\myapp\wav\effect.pas=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\myapp\wav\Unit1.pas</Transaction>
     <Transaction>2018/05/13 22:29:03.282,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\myapp\wav\WriteHeader.pas</Transaction>
+    <Transaction>2018/05/13 22:46:16.228,=C:\Users\yamat\Documents\Embarcadero\Studio\Projects\myapp\wav\wav.pas</Transaction>
   </Transactions>
 </BorlandProject>
index 6e88059..889a64f 100644 (file)
Binary files a/wav_proj.identcache and b/wav_proj.identcache differ