ERI Developer's BBS
  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
33 / 57 ツリー ←次へ | 前へ→

ERINA-Library 1.0D? Kobarin 02/6/15(土) 22:09
┗ Re:ERINA-Library 1.0D? L.Entis 02/6/16(日) 1:15
 ┣ Re:ERINA-Library 1.0D? Kobarin 02/6/16(日) 1:44
 ┃┗ Re:ERINA-Library 1.0D? L.Entis 02/6/16(日) 21:53
 ┗ あ… L.Entis 02/6/16(日) 22:19
  ┗ Re:あ… L.Entis 02/6/17(月) 12:09
   ┗ Re:あ… Kobarin 02/6/17(月) 19:54
    ┗ 大丈夫です L.Entis 02/6/17(月) 21:14

ERINA-Library 1.0D?
 Kobarin  - 02/6/15(土) 22:09 -

引用なし
パスワード
   はじめまして。Kobarin と申します。
拙作「KbMedia Player」にて、ERINA-Library を使用して、MIO 形式に
対応させて頂いています。どうもありがとうございます。

ところで、「新着情報」には ERINA-Library 1.0D リリースと書かれて
いますが、「ダウンロード」ページでダウンロードできるライブラリは
1.0A のようです。1.0D はどこにあるのでしょうか?


1つ要望があります。今の MIODynamicPlayer クラスは、EFileObject
からのデータの読み込みを実際のデコードルーチン(GetWaveBufferFrom?)
とは別スレッドで先読みするような仕様になっているようですが、これを
抑制することは出来ないでしょうか?

KbMedia Player 本体の方で先読み相当の処理をすでにやっているので、
出来ればプラグイン側では先読みさせたくありません。
今の仕様だと、プレイヤー側でデコードスレッドの優先順位を上げて
も、先読みスレッドの優先度が変わらないのではあまり効果がなくな
ってしまうように思えます。

かといって先読みスレッドの優先度をプラグイン側で変更できるよう
にすることも出来ません。これは KbMedia Player のプラグインの
仕様上、どうしようもありません。(汗;


それと、タイトル読み込みは出来ないのでしょうか?
erinaf.doc にはタグ情報に関する記述がありますし、恵理ちゃん
club の音楽室にあるサンプルにはタグ情報が埋め込まれているよ
うなのですが、タグ情報を取得するための API を見つけることが
出来ませんでした。

出来れば、ERINA-Library 専用のクラスを一切用いない、通常の
Win32 API だけで取得できるような API を提供して頂けると助
かるのですが…。インターフェース部分だけではなく、実装部分
も含めて、です。

要するに KbMedia Player 本体に MIO のタイトル取得ルーチンを
組み込みたいのです。
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)@j191024.ap.plala.or.jp>

Re:ERINA-Library 1.0D?
 L.Entis  - 02/6/16(日) 1:15 -

引用なし
パスワード
   はじめまして、L.Entis です。

▼Kobarinさん:
>ところで、「新着情報」には ERINA-Library 1.0D リリースと書かれて
>いますが、「ダウンロード」ページでダウンロードできるライブラリは
>1.0A のようです。1.0D はどこにあるのでしょうか?

あぅ、すいません。
これ、萌衣☆Player ですね。どうも、頭が半分死んでおります。

>1つ要望があります。今の MIODynamicPlayer クラスは、EFileObject
>からのデータの読み込みを実際のデコードルーチン(GetWaveBufferFrom?)
>とは別スレッドで先読みするような仕様になっているようですが、これを
>抑制することは出来ないでしょうか?

なるほど、検討しておきます。
このような要望は他でも聞きましたので。

>それと、タイトル読み込みは出来ないのでしょうか?
>erinaf.doc にはタグ情報に関する記述がありますし、恵理ちゃん
>club の音楽室にあるサンプルにはタグ情報が埋め込まれているよ
>うなのですが、タグ情報を取得するための API を見つけることが
>出来ませんでした。

ERIFile::ETagInfo クラスと、ERIWriteFile::ETagInfo などで可能です。

>出来れば、ERINA-Library 専用のクラスを一切用いない、通常の
>Win32 API だけで取得できるような API を提供して頂けると助
>かるのですが…。インターフェース部分だけではなく、実装部分
>も含めて、です。

独立した実装となると少々面倒ではありますが、とりあえず次のような実装でタイトル取得が可能だと思います。

1."descript" レコードを探す
以下ちょっと手抜きコード。
struct { __int64 recid ; __int64 reclen ; } rechdr ;
SetFilePointer( hFile, 0x50, NULL, FILE_BEGIN ) ;
do
{
  ReadFile( hFile, &rechdr, sizeof(rechdr), &dwReadBytes, NULL ) ;
  if ( dwReadBytes < sizeof(rechdr) )
    return ; // エラー
while ( rechdr.recid != *((__int64*)"descript") ) ;
pszDesc = (char*) GlobalAlloc( GPTR, (DWORD) rechdr.reclen ) ;
ReadFile( hFile, pszDesc, (DWORD) rechdr.reclen, &dwReadBytes, NULL ) ;

2.タグ情報を解析
pszDesc を解析します。
ERIFile::ETagInfo クラスの CreateTagInfo 関数を書き換えれば比較的簡単ではないかと…。fileacc.cpp に入っています。

とりあえず必要であれば、上を参考にして組んでもらえればと思います。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa2-66.kcom.ne.jp>

Re:ERINA-Library 1.0D?
 Kobarin  - 02/6/16(日) 1:44 -

引用なし
パスワード
   >これ、萌衣☆Player ですね。どうも、頭が半分死んでおります。

これってすごいですよね。デコーダを自作できるような人の多くは GUI は
苦手だったりすることが多いのですが、L.Entis さんは何でも出来ちゃう
んですね…。

>>とは別スレッドで先読みするような仕様になっているようですが、これを
>>抑制することは出来ないでしょうか?
>なるほど、検討しておきます。

よろしくお願いします。

>ERIFile::ETagInfo クラスと、ERIWriteFile::ETagInfo などで可能です。

ありゃ。それでしたか。(汗;
名前からして *.eri 専用かと思ってました。(^^;

>独立した実装となると少々面倒ではありますが、とりあえず次のような実装でタイトル取得が可能だと思います。
・・・
>とりあえず必要であれば、上を参考にして組んでもらえればと思います。

わざわざどうもありがとうございます。参考にさせて頂きます。

余裕があったら KbSTE(SuperTagEditor の改造版)でも MIO のタグ情報の
書き換えに対応しようと思います。


そういえば *.skr という形式もあったと思うのですが…。
L.Entis さんが作ったんじゃありませんでしたっけ?
何か勘違いしてるかな。(?_?)
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)@m115199.ap.plala.or.jp>

Re:ERINA-Library 1.0D?
 L.Entis  - 02/6/16(日) 21:53 -

引用なし
パスワード
   ども〜、L.Entis です。

▼Kobarinさん:
>そういえば *.skr という形式もあったと思うのですが…。
>L.Entis さんが作ったんじゃありませんでしたっけ?
>何か勘違いしてるかな。(?_?)

いえいえ、SKR は私が策定した形式です。
出来が悪いのですでに忘れ去られておりますが…。
MIO も時間が出来次第、バージョンアップしたいところではありますが…。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa1-244.kcom.ne.jp>

あ…
 L.Entis  - 02/6/16(日) 22:19 -

引用なし
パスワード
   あぅ。

>1."descript" レコードを探す
>以下ちょっと手抜きコード。
>struct { __int64 recid ; __int64 reclen ; } rechdr ;
>SetFilePointer( hFile, 0x50, NULL, FILE_BEGIN ) ;
>do
>{
>  ReadFile( hFile, &amp;rechdr, sizeof(rechdr), &amp;dwReadBytes, NULL ) ;
>  if ( dwReadBytes < sizeof(rechdr) )
>    return ; // エラー
>while ( rechdr.recid != *((__int64*)"descript") ) ;
>pszDesc = (char*) GlobalAlloc( GPTR, (DWORD) rechdr.reclen ) ;
>ReadFile( hFile, pszDesc, (DWORD) rechdr.reclen, &amp;dwReadBytes, NULL ) ;

次のレコードへ移行するときのシークが抜けてますね。(^^;)
あと、補足としましては、0x40 からヘッダレコードのトータルサイズを取得してそれを超えないようにするチェックを入れると完璧です。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa1-244.kcom.ne.jp>

Re:あ…
 L.Entis  - 02/6/17(月) 12:09 -

引用なし
パスワード
   ▼L.Entisさん:
>あぅ。

うぐぅ

>>1."descript" レコードを探す
>>以下ちょっと手抜きコード。
>>struct { __int64 recid ; __int64 reclen ; } rechdr ;
>>SetFilePointer( hFile, 0x50, NULL, FILE_BEGIN ) ;
>>do
>>{
>>  ReadFile( hFile, &amp;amp;rechdr, sizeof(rechdr), &amp;amp;dwReadBytes, NULL ) ;
>>  if ( dwReadBytes < sizeof(rechdr) )
>>    return ; // エラー
>>while ( rechdr.recid != *((__int64*)"descript") ) ;
>>pszDesc = (char*) GlobalAlloc( GPTR, (DWORD) rechdr.reclen ) ;
>>ReadFile( hFile, pszDesc, (DWORD) rechdr.reclen, &amp;amp;dwReadBytes, NULL ) ;
>
>次のレコードへ移行するときのシークが抜けてますね。(^^;)
>あと、補足としましては、0x40 からヘッダレコードのトータルサイズを取得してそれを超えないようにするチェックを入れると完璧です。

UNICODE のチェックもしないとまずいですね。
<Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)@fw.zeroeks.co.jp>

Re:あ…
 Kobarin  - 02/6/17(月) 19:54 -

引用なし
パスワード
   おかげさまでタイトルを取得できるようになりました。(^^)/
2.28β8 で対応しましたです。

http://home7.highway.ne.jp/Kobarin/KbMIDI/kbmed228_beta8.exe

色々理由があって先頭の 16KB までしか調べてませんが、実用上は問題ないですよね?
16KB を超える可能性高いでしょうかね。(^^;

情報を書き換えるわけではないので、読み込みに失敗したところで痛くも痒くも
ないからあまり気にしてませんが。

情報の取得だけなら、仕様書をよく読めば簡単に対応できますね。

> UNICODE のチェックもしないとまずいですね。

UNICODE でないデータを見たことがないので、UNICODE でないタグ情報を正しく
取得できてるかどうかあまり自信がありませんが、多分大丈夫でしょ。(^^ゞ
<Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705)@m115224.ap.plala.or.jp>

大丈夫です
 L.Entis  - 02/6/17(月) 21:14 -

引用なし
パスワード
   ▼Kobarinさん:
>色々理由があって先頭の 16KB までしか調べてませんが、実用上は問題ないですよね?
>16KB を超える可能性高いでしょうかね。(^^;

16KBを超える可能性はほとんどないと思います。

>情報の取得だけなら、仕様書をよく読めば簡単に対応できますね。

そうですね。
書き換えるときは、上限値を超えないようにチェックしないといけないので、すこし大変ですね。
<Mozilla/4.75 [ja] (Windows NT 5.0; U)@tokyo-fa1-221.kcom.ne.jp>

  新規投稿 ┃ ツリー表示 ┃ 一覧表示 ┃ トピック表示 ┃ 検索 ┃ 設定 ┃ ホーム  
33 / 57 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
7920 C-BOARD v3.02 is not Free?