Lilith  Unicode Ή (́FuLilith)  SDK ۂłB

 2008/09/10 ̕ύX_

 SSE3 \p~A Core2 \쐬܂

Core2 C^[QbgȂ̂ŁAOύX܂B
RpCIvVA Core2 ɐݒ肳܂B
ꉞACore2 łȂĂASSE3 ܂œڂĂ CPU 
삷悤ɍł͂܂B

 I Intel C++ Compiler 10.1 Ă݂܂

̌łłAʂXȂAwl܂B
Nv 񋟂oCî݁AICC ŃRpCĒ񋟂\łB
ɂAFlac/Vorbis/Mac ̃CuA
ICC RpĈ̂ɕύX܂B
Flac/Mac vOCRpCɂ́A
ICC t libmmd.lib KvłB
̌łȂǂ玩RɎ܂̂ŁAYtĂ܂B
KȏꏊɐݒuACufBNgƂ
Visual C++ ̐ݒɒǉĂB
Vorbis ́̕A_Ci~bNNł libmmd.dll KvłA
DecodeTest ̕ɓĂAIɃRs[̂ővȂ͂łB

 2008/09/08 ̕ύX_

 IVSSENCODER C^[tF[XɁAFreeParam() \bhǉ܂B

ClassVSSEncoder::ResetData() ŁAVSSENCODERDATA::lpvParam Ɋi[ꂽ
GR[hpp[^Ȃ΂ȂȂ̂łA
AP[V@ȂǂApNXŎRɑIł邽߁A
ClassVSSEncoder::ResetData() ̎_ł́A@킩ȂԂłB
邽߁AIVSSENCODER::FreeParam() \bhǉA
eGR[_̃NXŉz֐I[oChĂ炤ƂɂA
Class_VSSEncoder::ResetData() Ał悤ɂ܂B
I[oCh\bhł́A
VSSENCINFO::FreeParam() Ɠ@ŁAĂB

 2008/09/05 ` 2008/09/07 ̕ύX_

 NVFlac / NVVorbis / NVMac ̂R̃vOCǉ܂B

Flac / Vorbis / Mac ̊eCúA
\[XR[h𗎂ƂĂărhĂ܂B
ŏqׂOāA\[XR[hɂ͂܂A
vWFNg̐ݒ肾KvɉĎ኱ύXA
Visual Studio 2008 ŃRpCĂ܂B
ACRuntime  DLL gp悤ɂĂ܂B
ȑO Lilith ł́ACRT ̓X^eBbNCugpĂ܂A
t@CTCYʂłԕς܂̂ŁA
ׂẴvWFNg DLL gp悤ɕύX܂B
# ꕔ(m)lAst@C̃TCY݂āA
# ďy̌̂łB

Flac / Mac ́AX^eBbNCuƂărhĂ܂B
Vorbis ɂẮALancer  AoTuV ƍւ悤A
_Ci~bNNCuƂA
ǂݍ݂C|[gCugpA
s̖Iȃ_Ci~bNN (LoadLibrary + GetProcAddress) ŉĂ܂B
ɂAOgg.dll / Vorbis.dll / VorbisFile.dll A
Common fBNgɊi[邱Ƃ\ɂȂ܂B

ȂAMac  APETag.h / APETag.cpp ɂ́Atb^[̕sCĂ܂B
ɂAAPETag + ID3Tag v1.x ̑gݍ킹悤ɂĂ܂B
܂AGetFieldString  Cho[WɂāA
{ɂ鋌 APETag gp̂({[Jdl)ƏĂȂ
܂̂ŁACĂ܂B
APETag v2 ɂȂÓAeƂ̕R[hŊi[Ƃb̂łA
Ȃ UTF-8 ƂĊi[邱ƂɂȂĂƂɂĂ܂A
UTF-8 ƂēǂݏôŁAANSI R[hƂēǂݏo悤
CĂ܂B
# ̌́Â R[hǂ΂́H 
# Mac ҂ɖ₢킹ƂAShift-JIS ł񂶂ˁH
# ԎƂɂAmp3infp  otamfsAkbMP Ȃǂ̍҂ƋcA
# Shift-JIS ɓꂵo܂܂B

 VCOM ̃I[g[VŏAe{W[A
VCOM fBNgɒu悤ɂ܂B

܂AVCOM.cfg ɂ܂B
CXg[tH_JƁAt@CςĖ킩A
Ƃl\悤Ȃ̂ŁB
NVLibCore.dll ́AAvÖق̃NŎg\Ȃ̂ŁA
AvƓtH_ɕKvłB
As̖Iȃ[h⍲
wp[X^eBbNCu쐬A
VCOM fBNgɒu悤ɂ邩܂B
GNX|[g֐񂠂đςȂ̂ŁA邩ǂ킩܂B

 ܂ł̕ɂāAŌ\C܂B

XoĂAobt@I[oƂ܂̂

 2008/09/04 ̕ύX_

 NVAUDIOFILEINFO::lpszFormatString ̃TCYēxύX܂B

64 A128 Ɋg܂B
ŔALame ŃGR[hꂽ MP3 ŁA64 𒴂Ă܂߂łB
NVAUDIOFILEINFO_FORMATSTRING_MAX  NVAUDIOFILEINFO_MODESTRING_MAX Ƃ
`Ă܂̂ŁAgpĂB
ɕύXꍇ̕ύX̂Ƃ̃\[XR[h̕ύX̎ԂȂ͂łB
ʃC^[tF[Xɂ镔ŁA̒ړ͂͂܂ˁcc(LEցE`)


 ݒt@ĆAAvP[ṼfBNgł͂ȂA
NVGetConfigFileDirectory() Ŏ擾fBNgɕۑ悤ɂȂ܂B

Vista ō̂ŁAAvP[ṼCXg[fBNgȉɂ
쐬Ȃ悤ɂĂB
Lilith ŜƂāAgp҂ւ̐ݒ̃obNAbv@A
@ȕւɓ`悤ɁAK̃fBNgȉɕۑ悤ɂĂB

vOCƈꏏɔzzAǂݍ݃I[ŁA邱ƂȂ
`t@CȂǂ́Ǎł͂܂B


 vss vOĆAAvP[VfBNg Plugin fBNgɒu悤ɂȂ܂B

 Iȃ_Ci~bN[hĎgp DLL ́AAvP[VfBNg Common fBNgɒu悤ɂȂ܂B

Öق̃[h̏ꍇɂ́A炩ǂ܂邱Ƃo܂̂ŁA
[ht@CƓfBNgɂKv܂B
Ȃׂ_Ci~bN[hs悤ɂāACommon fBNgɂĂB
[h VLoadLibraryByFileName() gpꍇɂ́A
I Common fBNg Plugin fBNgTɍs܂B
AVLoadLibraryByFileName() Ń[hW[́A
FreeLibarary() Ă͂܂B
AvP[VIɎI Free ܂B
rŃA[hꍇɂ́AVLoadLibraryByFileName() ͎gpȂłłB
́AVLoadLibary() lłB

IɁANVLibCore ̕ŁAWin32  LoadLibrary() API āA
ʂ LoadLibrary ƁACommon  Plugin Tɍs悤ɂ邩܂B
Öق̃[hłꂪ܂悤ȂAԂ񂻂Ǝv܂B
͂킩Ă̂ŁAC܂B

 rh\ SSE3 ǉ܂B

ȑO Lilith ł́As CPU ʂ𔻕ʂA
[`؂ւĂ܂A
ꂩ͊e CPU poCizz邱Ƃɂ܂B
t@CTCYfBXpb`ׂ̕炷߂łB
݂̂ƂAx86 ėp  SSE3 ܂Ŏ CPU p
Q̃oCi[X\łB

Core2 ȍ~C̑ΏۂƍlĂ܂̂ŁA
SSE2 ܂ł CPU ́Ag߂ɂp؂̂āA
x86 ėpłŎgĂ炤Ƃɂ܂B
MMX/SSE/SSE2/SSE3 gpꍇ́A
SSE3 \̂Ƃ̂ݎgpĂB
vOCł́ASSE3 \͕KpӂKv͂܂񂪁A
AZůg߂Agݍ݊֐gĖĂA
/arch:SSE2 IvV̎gpɂđxオ悤ȂA
SSE3 \쐬ÃIvVgpoCi񋟂ĂB
ۂɂ͂̃IvVł SSE2 ܂łg܂񂪁A
Core2  SSE3 ܂őΉĂ邱ƂA
ł́Ax86  SSE3 ̂Q̍\ł܂B

3rd Party ł́ASSE ܂łASSE2 ܂ŗp̃oCipӂĂ܂܂񂪁A
NȂ悤ɁAƗUĂB

NV ̂̒ɂ́Aۂɂ SSE ܂łASSE2 ܂łł̂ĂA
SSE3 ȍ~pƂă[X܂B


 ȑO Lilith Ƃ̕ύX_ (2008/09/03)

VSS vOC (fR[h/GR[h) ̍쐬ɊւẮA
ύX_͏Ȃ߂łAoĂł͈ȉ̂悤Ȃ̂܂B

 /Aׂ TCHAR ɕύX܂B
ꉞAMultibyte/Unicode Ńrhł悤ɍ쐬Ă܂B
Multibyte rh̏ꍇ́Aꕔ@\ꍇ܂B
(pX̍ő啶Ȃ)
 Win9x ւ̍đΉzĂ̎dlłB
ȂׂvOCΉō쐬ĂB
ȂAftHg̃vWFNg̐ݒ́A
Debug rh Multibyte
Release rh Unicode
ɐݒ肳Ă܂B

 NVAUDIOFILEINFO::lpszFormatString ̃TCY̕ύX
]ANV_PATHMAX 蓖ĂĂ܂A
ǂlĂ NV_PATHMAX = 1024 Kv܂̂ŁA
64 ɕύX܂B
ɔANVAUDIOFILEINFO Ƃ̃oCi݊{Ƃ
evOC INFO \̂̕A
lpszFormatString ̕ 64 ƂKv܂B
RpCG[łȂǁAYƒvIȂ̂ŒӁB

 INVSTREAM ̃C^[tF[X̃TCY/ʒuwɎgϐ̌^ς܂

LowDWORD/HighDWORD ɕĂ̎w肾̂A
QLONG/QWORD ł̎wɑĂ܂B
ɂω̂\/\bh͂Ԃȉ̂ƂłB

struct NVSTREAMCREATE
INVSTREAM::GetCurrentPosition()
INVSTREAM::SetCurrentPosition()
INVSTREAM::GetDataSize()
INVSTREAM::SetDataSize()
INVSTREAM::OverrideSize()
SetNVStreamCreate()

AāAINVSTREAM n̊eNXׂĂŁAl̕ύXsĂ܂B

 ݂̃o[Wł́AVSSPLUGININFO Ɏw肷C^[tF[Xo[ẂA0x3000 ƂȂĂ܂B

(s Lilith ́A0x2500)
΂炭́AC^[tF[XɕύXĂAԍ͂̂܂܂ōs܂B
JƂɒǉύXꂽꍇɂ́Ao[WԍƎv܂B

 VCOM IuWFNgŁAdelete ZqƁAfXgN^g悤ɂȂ܂B

Ƃ͂AIVCOM::Release() oRłĂ͂Ȃ͕̂ς܂̂ŁA
Release() oRł̌Ăяoł͂ȂƎvAIVCOM::vcd.bIsCreated  TRUE ̂Ƃɂ́A
assert() ĂяoāAvO~OԈႦĂ邱ƂĂB
fXgN^őɂׂƂ͂܂B


 ゠邩ȂύX

 ėpIȕNX쐬A݌ŒTCY̕gpĂꏊ́Aɒu邩܂B

Ɨʂ肻Ȃ̂Ŏ͒ႢłA
낢IĎԂ]A邢́A
ꂪȂƋtɖʓ|ŁAƂƂɂȂ΁A邩܂B

TCY߂ŕĂ\̂Abasic_string (string/wstring) gĂꏊ́A
ɒu\łB

basic_string  MFC  CString AATL  ATLString A@\񂺂񑫂ĂȂA
shlwapi ́APath`n API AMAX_PATH = 259 ȏ𐳏ɏłȂ̂\肷̂ŁA
ƂAׂĉ悤ȓeōłB
@\ƂẮAMultibyte/Unicodeŗ쐬Aݕϊ\AUTF8 ̕ϊ\B
e퉉ZqpӂAW C ̕񏈗֐̎Ȃ̂Ɠ̋@\A
܂Ashlwapi  Path`n API Ɠ@\B
ɁAshlwapi ̕񏈗֐̒ɂāAW C ɓlȂ̂Ȃ̂΁AB

ꂾňvWFNgɂȂ肻Ȃ̂ŁA͂ႢłB(LEցE`)

 NVAUDIOFILECOMMENT @\gA܂́Aʂ̃VXeɒu

STL  map  basic_string pAAzRei`ɕς邩܂B
̏ꍇA݂͎gȂA`̃^Oł悤ɂȂ܂B
̃^O̎gpŋʂ̂ɂẮAʃL[pӂA
oRŃANZX悤ɂ܂B
(e^ÕL[ƋʃL[̕ϊvOA^O̎ނƂɗp)

́A݂ NVAUDIOFILECOMMENT ƃoCi݊ۂ܂܁A
Cӂ̃L[̃^Oǉ/ǂݎł API ǉ񋟂܂B
NVAUDIOFILECOMMENT::szString oɂ́A
e offset QƂȂ̈悪Ă܂ȂƂ𗘗pA
 L[=e\0 ̌`Œǉ^Oi[܂B

ǂł͂܂߂Ă܂B




