BREW(Binary Runtime ..
[2ch|▼Menu]
147:デフォルトの名無しさん
04/10/26 13:17:53
>>139
BREWはmodファイルもヒープに格納される。
だから、プログラムで使用するヒープ容量とmodサイズがヒープ容量を超えないようにする。
ちなみに、フレームワークでもヒープを消費するようで起動時点で端末によって使用済みヒープ容量が結構違う。
この辺は実機で確認していくしかないでしょ。
#端末のヒープ容量はCP登録していれば一部をQのデベロッパーサイトから見れる
#載っていないやつはメーカに問い合わせろとか書いてある

ファイルシステム上のサイズのことなら、BREW上での制限は特に無い。
容量使えるだけ使える。
ただ、キャリアのガイドラインがあるから>>140の言っているような制限がある。
KDDIの制限ならKDDIのサイトに詳しい資料があるね。ちょっと古いけど。

>>146
普通のCでもグローバル変数ばしばし使っているようじゃスパゲッティーになるわけだが。
BREWの場合はIApplet構造体をグローバルのように使うのが常道。
#定期的にカーネルへ処理を戻さないといけないから恒常的にデータを保存できるのはここだけ
漏れはC++のフレームワーク作っちゃって、メインクラスのメンバでデータ保存してるけどね。


148:143
04/10/26 21:31:30
>>144
thx

IDIBでやってみる…

149:デフォルトの名無しさん
04/10/27 11:07:38
>>136
>FakeRPGのdllのサイズ400kbもありますけどね。

工エェ!!!

150:143
04/10/27 22:38:24
bてビットかなぁ

151:デフォルトの名無しさん
04/10/27 22:38:58
しまった名前が残ってた

これでよし

152:デフォルトの名無しさん
04/10/27 23:39:30
でもとりあえずBREWはお糞さまだよな(挨拶)

153:デフォルトの名無しさん
04/10/28 03:00:09
>>149
何も考えずに突っ込んでそのままビルドしたらそうなりました。

154:デフォルトの名無しさん
04/10/28 04:11:35
dllはエミュレータ用で、これはでかくなるよ。数百KBytesとか普通。
実機用には別にコンパイルしたモジュールを使う。それはdllより遙かに小さくなる。

155:デフォルトの名無しさん
04/10/28 05:07:03
勉強になりました。
実機のエミュ出て欲しいですね。
出ても金取りそうだけど・・。

156:デフォルトの名無しさん
04/10/28 08:33:55
最近初心者質問スレと化して来たなぁ・・・


>>155
とりあえずCP契約すれば、エミュレータ用のデバイスファイルは一通り手に入る。
それが嫌ならエミュレータについてるデバイスコンフィギュレータで作るって手もあったと思った。

157:デフォルトの名無しさん
04/10/28 10:56:58
>実機(用コードが動く)エミュ
無理。
つか、作ったとしても全く意味ないし。

158:デフォルトの名無しさん
04/10/28 11:03:09
SDKダウンロードしてたらエラーでとまった。
サーバのメンテナンスで打ち切られたようだ。   sdjkgsd@ふじこs

159:デフォルトの名無しさん
04/10/28 13:20:56
ふじこの作り方さえ満足に出来ないなんて…終わっとるなw

160:デフォルトの名無しさん
04/10/28 18:27:59
spfファイルをbarに放り込んでリソースからphraseを使ってるんだけど、
AEEMediaData.pDataをFREEで開放しようとしたら
duplicate free 〜〜〜 と メモリを二重開放していると怒られました。
やり方は
BREWJAPAN.comのTechnicalTipsに載ってた方法を参考にしたんですが・・・
かといって開放しないとメモリリークになるし、もうどうしたらいいかわかりません(´Д⊂、


161:デフォルトの名無しさん
04/10/28 21:24:12
音の開放のときってbrewのバージョン(2.0とか2.1とか)で違うって
そのTipsのに載ってなかったっけ?バージョン書いたほうがいいよ

162:160
04/10/28 22:31:15
バージョンは2.1です。書き忘れてました

163:デフォルトの名無しさん
04/10/28 22:59:32
>>160
俺はお前を知っている。


164:デフォルトの名無しさん
04/10/29 15:27:26
このTipに書いてあるのはIMediaインターフェースの開放に関する事ですよね。(23.3)
俺が言いたいのはそれの事じゃないです。
とりあえず読込・MediaDataのセット・開放の部分のソース晒してみます。
/*アプレット構造体 */
typedef struct _App{
AEEApplet a;
IMedia* media[3];
AEEMediaData mdata[25];
}App


/* IMediaインターフェースの作成 */
for(j = 0; j < 3; j++){
i = ISHELL_CreateInstance(shell, AEECLSID_MEDIAPHR, (void*)&app->media[j]);
if(app->media == NULL){
DBGPRINTF("failed");
}
}

/* リソースファイルからのspfファイルの読込 */
for(k = 0; k < 25; k++){
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize);
buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE);
offset = (uint32)buf[0];
dwSize = dwSize - offset;
app->mdata[k].clsData = MMD_BUFFER;
app->mdata[k].pData = buf + offset;
app->mdata[k].dwSize = dwSize;
}


165:160
04/10/29 15:37:18
/* メディアデータのセット
 再生する音によってセットするデータの数が異なります。 */
for(i = 0; i < app->soundElements[no]; i++){
IMEDIA_SetMediaData(app->media[i], &app->mdata[sindex + i]);
IMEDIA_RegisterNotify(app->media[i], (PFNMEDIANOTIFY)MediaNotify, app);
}
for(i = 0; i < app->soundElements[no]; i++){
int ret;
ret = IMEDIA_Play(app->media[i]);
if(ret == SUCCESS){
DBGPRINTF("########### PLAY SUCCESS ##############");
}
else{
DBGPRINTF("########### PLAY ERROR ##############");
}
}

/* 開放 */
for(i = 0; i < 3; i++){
if(app->media[i] != NULL){
IMEDIA_Stop(app->media[i]);
IMEDIA_Release(app->media[i]);
}
}

for(i = 0; i < 25; i++){
if(app->mdata[i].pData != NULL){
FREE(app->mdata[i].pData);      /*ここでDupricate Freeエラーが発生*/
app->mdata[i].pData = NULL;
}
}

166:160
04/10/29 15:38:05
あと、この質問とは別件ですが、>>164
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE, (void*)-1, &dwSize);や
buf = ISHELL_LoadResData(app->a.m_pIShell, RES_FILE, SE_1 + k, RESTYPE_IMAGE);で
intからunsigned shortに変換しました〜〜のwarningが出ます。kはuint16にしてあるので、型は間違っては無いと思うのですが。
定数を足すとダメなのかな?エミュでは問題なく動きますが、ARMには通りそうにないんで直したいんですが、どうしたらいいでしょうか?


167:デフォルトの名無しさん
04/10/29 17:50:48
>>165
俺はFREEでなく
ISHELL_FreeResDataを使っている

>>166
型はint16じゃないの?

168:160
04/10/29 18:05:53
>>167
ISHELL_FreeResData使いましたが同じ結果になりましたorz
後、型は確かにint16でしたね。でもkをint16に直しても結果は同じでした・・・


169:デフォルトの名無しさん
04/10/29 18:17:33
BREWユザーズガイド読んだら、
ARMコンパイラ使用上の注意として
条件文で変数を指定すんな!って書いてあるんだが、
もしかして条件式に変数を書いちゃいけないんだろうか?

170:中の人
04/10/29 19:51:14
>>164
とりあえず、bufのポインタ自体を保持しておかないと正しく開放できないですね。
duplicate freeって、FREE()呼んだ時点じゃなく、アプリ終了時とかに表示されませんか?
確保したのはbuf(サイズはdwSize)なのに、mdata.pDataはbuf+offset(サイズはdwSize-offset)を
指しているので、FREE(pData)を呼んでもbuf自体は開放されてないです。
なので、「アプリ終了時に未開放のメモリが残る→実行環境がbufを開放する→bufとpDataの
重複する領域が二重開放になる」という現象が発生します。
あと、ISHELL_FreeResDataを使うのが正しいです。
(わかりにくい説明ですみません)
結論は「pDataじゃなくbufに対してISHELL_FreeResData()使ってください」

>>169
ARMのコンパイラは、

if(nRet = IMENUCTL_HandleEvent(pme->pIMenu, eCode, wParam, dwParam))
{
/* MenuCtlがイベントを処理したっぽい */
return TRUE;
}

みたいなコードを書くと、「代入の結果を条件判断に使ってるよ?」と警告をはきます。
(代入じゃなく比較したかったんじゃないの? と言いたいらしい)
warningが溜まりすぎると「too many warning」とその時点でエラー扱いに
なってしまう(コンパイルできない)ので、条件文の中で代入を使わないほうが良いです。
こう書いたからといって危険なバイナリが出来るわけではないですから、
コンパイルさえ通ればこう書いても問題ありません。

171:中の人
04/10/29 20:05:59
あ、FREE(pData)呼んだ時点で、pDataとbufが重複してるから
二重開放エラーになるんですね

172:デフォルトの名無しさん
04/10/29 21:38:14
>>165
単純に解放処理の順番がまずいだけじゃないの?
app->media[i]って構造体を解放してから
そのメンバapp->mdata[i].pDataを解放してるようだが。
逆にしてみたらどうか。

/* 開放 */
for(i = 0; i < 25; i++){
if(app->mdata[i].pData != NULL){
FREE(app->mdata[i].pData);      /*ここでDupricate Freeエラーが発生*/
app->mdata[i].pData = NULL;
}
}

for(i = 0; i < 3; i++){
if(app->media[i] != NULL){
IMEDIA_Stop(app->media[i]);
IMEDIA_Release(app->media[i]);
}
}

173:デフォルトの名無しさん
04/10/29 21:40:31
>>166
リソースのIDを計算で与えてることがそもそも間違い。

'SE_1 + k'と書いてるところの引数はリソースのIDを指定するものだが、
リソースのIDはあくまでラベル的に扱い、数値として見てはいけない。
計算後のIDがリソースファイルに存在する保障はないし、リソースファイル
の作り方次第ではIDが連番で割り振られるわけでもないから。

何が何でもIDを計算で渡すというなら明示的にキャストすれば
とりあえずコンパイルは通る。

174:172
04/10/29 21:49:30
ごめん。>>164のソースよく読んでなかった。
>>170-171に同意ってことで。

175:デフォルトの名無しさん
04/10/29 22:40:57
俺は
const int16 idid[3] = {ID_AAA,ID_BBB,ID_CCC};
とかやってる

>>164でいうと
ISHELL_LoadResDataEx(app->a.m_pIShell, RES_FILE,idid[k], RESTYPE_IMAGE, (void*)-1, &dwSize);

とゆーかんじだ。参考にならなかったらごめんな!

176:160
04/10/29 23:37:01
>>170-175
ありがとうございました。大変参考になりました!
とはいっても試すのは週明けになるのですが(汗

C言語は多少勉強した程度で、Java→BREWの移植をしてるんですが、
なかなか上手く進まなくて大変ですね。
最初の最速の見積もりの半分くらいしか行きやしない(´Д⊂、

177:デフォルトの名無しさん
04/10/30 00:10:52
とりあえず
byte *a;

a = MALLOC(1024*10241024*1204*1024);

178:デフォルトの名無しさん
04/10/30 01:21:35
FREE(>>177);


179:デフォルトの名無しさん
04/10/30 02:28:35
while(>>177 != deth){
  wark(app, >>177);
}

180:デフォルトの名無しさん
04/10/30 02:36:28
FREE(>>177);
*>>177=0;

181:デフォルトの名無しさん
04/10/30 14:01:01
>>179
× deth
○ death

182:デフォルトの名無しさん
04/10/30 15:55:18
>>179
X wark
○ work

183:169
04/10/30 17:33:26
>>170
なるほど、そういう意味でしたか。
納得しました。ありがとうございます。

184:デフォルトの名無しさん
04/10/31 00:43:35
すみません、初心者ですが教えてください。
>>180はガッするべきですか?


185:デフォルトの名無しさん
04/10/31 09:49:50
ヌルポ

186:デフォルトの名無しさん
04/10/31 13:01:57
>>185
static const AECHAR gaxtu[] = {'ガ','ッ','\0'};

187:デフォルトの名無しさん
04/10/31 16:18:33
ちと端末に関して質問。
BREW機で、扱える画像ファイルの解像度制限ってある?

JAVA機だと、VRAMの都合最大320*320ピクセル超えると
止まる機種があるらしいって話を聞いたんだが…

全部VRAMなんて使ってなさそうだから問題無いような気もするんだが…
KDDI相手に質問したい場合、キャリア通さないといけないんで面倒なのよ(ノД`)


188:デフォルトの名無しさん
04/10/31 23:01:44
舞竜はメモリの許す限り読み込めるんじゃねーの

いや知らんけど

189:187
04/11/01 14:15:01
うーん、質問が悪かったかな…
パーツの画像をひとつにまとめるか、複数ファイルにするかってトコで、
サイズの制限があるなら画像を分割しないとね、って話になっててさ。
ファイルが分割されるとソース変更が必要だし、リソースサイズも増えるから
できればファイルを結合できれば助かるんだが。

質問を変えて。
最大何ピクセルくらいの画像を実機に読み込ませた事有りますか?

一応漏れは480×36のBMPをIDISPLAY_CreateDIBitmap()で生成させて、
動作するまでは確認した事があるんだが…
多分メインメモリに展開してコピペしてるだけだろうからVRAMの制限はなく、
>>188と同じ事思っているんだが、
『思う』ってだけじゃ誰も納得してくれねーし
手元にS5505SAしかねーしOrz


190:デフォルトの名無しさん
04/11/01 16:38:02
武龍3.0って蛇場仮想マシーンは搭載されるんですか。

191:デフォルトの名無しさん
04/11/01 16:44:21
>>189
画像と言ってもBMPとかPNGとかで変わってくるわけで。
さらにIImage/IBitmapのどっちを使うとかそのへんも。

ちなみにIImageのデコードはヒープ使うと明言されてるし、COMVERTBMPもヒープを消費する
のは確認しているのでおそらくヒープが足りてれば制限はないとおもうけど。
漏れはQVGAフルスクリーンサイズのBMP・PNG・JPEGをリソースから読んで描画するとこまではやったことある。
#端末はKDDIのQVGA端末数機種

でかい画像をそのまま描画するっていうとまた話は変わってくるんだろうけどね。
#描画時には制限があるかもしれない

192:デフォルトの名無しさん
04/11/01 18:26:19
次のようなソースをコンパイルするとエラーが出る。
static void mytest(MyApplet *ap) {
DBGPRINTF("mytest");
IShell *sh = ap->a.m_pIShell;
}

error: C2275:'IShell' : typedef識別子に、クラス メンバ アクセス演算子(->)を使用しました。
aee.h(294): 'IShell'の宣言を確認してください。

だけど、
IShell *sh = ap->a.m_pIShell;
DBGPRINTF("mytest");
の順に変更するとエラーでない。
なぜでしょうか?

ちなみにincludeしてるのは、AEEModGen.h AEEAppGen.h AEEShell.h AEEFile.h AEENet.h myapp.bid AEEStdLib.h です。

193:デフォルトの名無しさん
04/11/01 18:30:41
>>192
C言語ではローカル変数は最初にしか宣言できないぞー。

194:192
04/11/01 18:40:32
>>193
あなるほど!
VC++っていうからC++もOKかと思ったけど、
ARMのコンパイラのこと考えるとC++ダメなんだな。
早速の指摘ありがとう

195:192
04/11/01 18:45:33
BREWのソースのテンプレートのコメントが//だったんで
すっかりC++が使えるものと勘違いしてました。

196:デフォルトの名無しさん
04/11/01 19:29:13
いや、BREWはC++でも開発できるが。

197:192
04/11/01 21:21:34
>>196
ARMのコンパイラC++スタイルでもOKということか?

198:196
04/11/01 21:25:02
俺はg++使ってるからなぁ…。
ARMコンパイラは上司に触らせてもらってないから何とも。
GCCで十分というウワサ。

199:187
04/11/01 21:50:46
>>191
基本はpngをIImageで開いてる。
IBitmapもIImageも、DIBに展開してメモリに確保している点は共通処理だったと思うから、
どっち使っても同じじゃないかなーと思ってるんだが。

ひとまず画面サイズはokね、サンクス!

それにしてもpngの展開遅いね…
開きっぱなしで使うもんだから、メモリの管理面倒でつよ


200:デフォルトの名無しさん
04/11/01 22:01:44
//
のコメントだと
//表
でエラーになるのがムカツク
/*表*/
ならOKだったような気がする・・・

>>199
png遅い?
おいらはとくに困ってないけど、まあ作るものによって違うんかなあ

201:デフォルトの名無しさん
04/11/01 22:54:34
画像のサイズは開発サイトのFAQを見れ。
すごいデカイとはいえ制限がある機種がある。

png展開が遅いのがダメってなら自力で圧縮するしか無いかな。

//表[改行]が行末\結合でダメなら、幸いにしてmakefile経由なんだから
他のコンパイラとかでプリプロセスだけ通したら?

//コメントのスタイルはC99から標準だっけか。
かといってARMコンパイラはC99でもなんでもないけど。

gcc使うとコードがでかくなるって話を以前ココで聞いたけど、
--ffunction-sections とか --gc-sections とか使ってもダメなの?
そもそも使えるのかな

202:デフォルトの名無しさん
04/11/02 00:47:12
>>201
>--ffunction-sections とか --gc-sections とか使ってもダメなの?
>そもそも使えるのかな
減らんです。
有効なら検証提出もGCCで行くんだが。

203:デフォルトの名無しさん
04/11/02 06:32:48
>>199
JPEG を使っていると png は一瞬に感じてしまふ。
しかし、S の端末は JPEG 展開にメモリ消費しすぎだな。

204:デフォルトの名無しさん
04/11/02 15:29:01
ずっとRVCT使ってたんだけど、いい加減コンパイルごとに担当者にソース提出するのメン毒なってきたからgccに移行しようかと思う今日この頃。
ところで、STLが使いたいんでSTLportをBREWに移植しようと思ってるんだけど、ソース改変の前にmakefile書くのがマンドクサ。
URLリンク(www.stlport.org)

205:デフォルトの名無しさん
04/11/02 16:24:03
>>204
後で後悔しないように気を付けれ

206:204
04/11/02 21:02:47
くそー。STL使うとBREWelf2modがエラー起こす。
STLが使いたいのに。むしろSTL使わなければとりあえず既存のコードが問題なく動く。

----------------------------------------
C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe my_app.elf my_app.mod
Unknown section name ".gcc_except_table]:"
NMAKE : fatal error U1077: 'C:\PROGRA~1\BREWAD~1\common\bin\BREWelf2mod.exe' : リターン コード '0x1'
Stop.
ツールは次のコードを返しました: 0
----------------------------------------

207:204
04/11/02 21:06:44
とりあえず、英語フォーラムにお住まいのエロい人がずばっと解決してくれるのを待つか。。。
URLリンク(brewforums.qualcomm.com)

208:デフォルトの名無しさん
04/11/03 10:44:30
会社名(というか大学名)をちゃんと入れたけどSDKダウンページのInstallを押すと
SDK ACCESS ERROR言われる。゜(゚´Д`゚)゜。

Release NoteやらUpdateは落とせるのに何故…

209:デフォルトの名無しさん
04/11/03 10:58:37
>>208
ブラウザの設定じゃないの? 同じような質問が過去レスにたくさんあったよ

210:208
04/11/03 13:53:24
>>209
ブラウザはIE6で、ActiveXもJavaScriptも有効になってるんですが…(´・ω・`)
過去ログが見られないので過去スレの回答が分かりません orz

211:デフォルトの名無しさん
04/11/03 15:51:31
>>3のまとめページに過去ログあるぞ

212:ロロ
04/11/03 16:01:59
RVCT は C++ 使えるよ。
だけどテンプレートまわりで制限があるよ。

213:デフォルトの名無しさん
04/11/03 16:39:16
>>211
まとめページ見逃してました orz
過去レスのリンクからオフィシャルフォーラムで記事を見つけ、無事DLできました。
ありがとうございました

214:デフォルトの名無しさん
04/11/04 00:11:50
喪前ら今日もたくさんBREWタンを弄んだんですね

お疲れさまです

215:デフォルトの名無しさん
04/11/04 05:17:14
KDDIの認証で、ITextCtlとIMenuCtlを使って
ソフトキーを描画するなって書いてあったんだけど、
自分で画像用意してイベントはAVK_SOFT1とかでやれって事?
折角用意されてるのに、おかしくないか?

216:デフォルトの名無しさん
04/11/04 06:50:05
サービスガイドのキー入力−ソフトキーに禁止理由書いてある

217:デフォルトの名無しさん
04/11/04 10:37:31
てか大して使えもしないコントロールの利用方法覚えるより、
制限に縛られずに適当に作った方が楽でないかい?


218:デフォルトの名無しさん
04/11/04 10:54:42
質問させてくれろ・・・
3Dモデルって何のファイル使えばいいの?
拡張子教えてくれろ・・・。

219:デフォルトの名無しさん
04/11/04 11:14:23
LightWaveのファイルはそのまま使える

220:218
04/11/04 11:38:38
>>219
下記のプラグインとかはいれる必要ないんですかね?
URLリンク(www.mascotcapsule.com)

・・・モデル描画はAPIとかありましたっけ?
もしかして・・・、座標データを使って3Dモデル描画しましょうw
って感じですか?

221:デフォルトの名無しさん
04/11/04 16:01:23
AEEAppletで作るアプレットのメンバを
グローバル変数のかわりに使おうかとしてるんだけど、
これってサスペンドから復帰したときに初期化されちゃうよね?

藻前らサスペンド時にdbに書き込んだり
ファイルに保存したりとかやってるの?

222:204
04/11/04 16:55:00
ファイルに保存した方が良いんだろうけど、俺はメモリに放置しっぱなし。
EVT_APP_STOPの時に解放してる。

まぁ、解放できそうな物はSUSPEND時に解放してRESUMEで復元してるけど。

223:221
04/11/04 16:59:38
>>222
え?サスペンドから復帰したとき初期化とかされないの?
エミュで実験してるけど0で初期化されてるような気がするけど

224:221
04/11/04 17:10:46
と、思ったが、
SUSPENDをhookしてないことに気がついた。
たぶんTRUEかえせばOKなんだろう。

225:デフォルトの名無しさん
04/11/04 17:15:56
例のソフィアクレイドルの記事にもあるが、
SUSPENDに対してFALSE返すと、強制的にアプリを終了させられてる。
TRUEを返せば、大丈夫。
ただ、全てのタイマーを終了させることと、
一部のオブジェクトに関して解放を行い、
RESUME時にそれらを復帰させないと駄目。

226:デフォルトの名無しさん
04/11/04 17:24:18
>>225
ご指摘のとおりですた


227:デフォルトの名無しさん
04/11/04 18:26:14
>>197
C++使うならarmcppでコンパイルすればOK。
C++構文使いたいだけならmakefileのCCを直すだけで良いだろう。
クラスとか普通に使うとすると自動生成makefileを手直ししないといけなく
なってくるけどね。

ただ、エミュ用にコンパイルするときVCのデフォルト設定だと
.cはC++としてみてくれないから.cppとかに変えるかプロジェクト設定弄ら
ないとならんけど。

228:デフォルトの名無しさん
04/11/04 18:40:41
RVCTでビルドしてみたら、こんなの出るけども

>Warning: Q0115W: Deprecated command syntax will not be supported in future versions. Use -output to specify the output file.
>Finished: 0 information, 1 warning and 0 error messages.

今後サポートされそうにない命令使っているってことなの?
みなさん、どうしてるの?

229:デフォルトの名無しさん
04/11/04 18:45:01
>>228
どこだったか忘れたけど、それは無視して良いって書いてあったはず。

230:デフォルトの名無しさん
04/11/04 18:54:47
>>229 エク、エク、エク、エク、エクセレント!
英語ばかりで悩んでます。ありがとう。

231:デフォルトの名無しさん
04/11/04 19:05:40
とりあえずCPさんもそうじゃない人もKDDIのプログリミングガイドとサービスガイドに目を通しておくことをお勧めする

232:デフォルトの名無しさん
04/11/04 19:30:16
>>230
ごめん。
EZアプリ(BREW)開発ツールガイドver1.5.pdf を確認したら
ARMコンパイル時のWarningで4つくらい例が出てて、
そのWaningだけ「必ずしも無視できるわけではない」って書いてあった。
スマン。

233:デフォルトの名無しさん
04/11/04 20:39:48
ぶりゅう子「おにぃちゃん…きょうも…わたしを………いじめるの…………」

234:デフォルトの名無しさん
04/11/04 21:47:32
>>228
過去スレに答えがモロあったような…
makefileのHEXTOOLのパラメータを書き換えた

235:デフォルトの名無しさん
04/11/05 10:44:17
みんな「ブリュ-」って読んでるけど、「ブルー」らしいぞ

236:デフォルトの名無しさん
04/11/05 11:08:55
どっちでもいいんだよ。
でも、ブルーが一般的になりそうだね。
ここじゃブリューで定着しちゃったけど。

237:デフォルトの名無しさん
04/11/05 11:18:20
URLリンク(rundog.txt-nifty.com)

238:デフォルトの名無しさん
04/11/05 18:31:23
スペルをBLUEにしろよ

239:デフォルトの名無しさん
04/11/05 18:41:47
>238
飲み物つながりでJavaへの対決姿勢を示したんでは。
見てみたら「醸造する」の他に「(お茶を)入れる」って意味もあるのな。 > brew

240:デフォルトの名無しさん
04/11/07 01:18:09
>>231
まったくだ。本当にそのとおりだ。頼むからみんな読んでくれ。
あとFAQも。
pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
けど、知らないとすごい困ることが多いんだ。
お薦めするというより必須。いやもうホントに…

241:デフォルトの名無しさん
04/11/07 12:44:59
>>240
どこにあるの?

242:デフォルトの名無しさん
04/11/07 13:19:29
URLリンク(www.au.kddi.com)
ここにあるやつかな

243:デフォルトの名無しさん
04/11/07 13:51:02
ゼッタイ読んでないねーってアプリもいくつかあるね

244:デフォルトの名無しさん
04/11/07 13:57:27
うん。派遣でBREW開発だというんで、そこのを読んで予習していったら、
全然従ってないので唖然としたことある。

245:デフォルトの名無しさん
04/11/08 00:01:01
まあ全ては>>240
>pdfだしその文書そのものも、もっっっのすごい読みづらいのはわかる。
になるんだけどね。
300ページ近いくせにしおりもリンクもないもんだから(一部あるけど)、
えっちらおっちらスクロールして探さないといけない
やる気あるのか?KDDI

246:デフォルトの名無しさん
04/11/08 00:14:27
検索しる
…と言いたいが確かにだるいな

だが検証を通すのに必要なことがあちこちに書かれてあるので
チームリーダーか全体仕様を考えたりするエロい人に一度は読ませるべき

〜〜はしてはいけませんとか使ってはいけませんとかこうしなさいとか書かれてんだもんな…_| ̄|○オカゲデ キョウモ テツヤデス

247:デフォルトの名無しさん
04/11/08 15:18:49
独り言です。
機種一覧表(性能、フォントサイズ、使用可能サウンドフォーマット、etc.)とか無いのかなぁ。
まったく、ふしだらな。

248:204
04/11/08 15:20:26
URLリンク(brewforums.qualcomm.com)
結局のところ、libstdc++.a ライブラリか、ヘッダファイルの中のコードで malloc() free() を使ってるのが良くないみたいだ。
っつー事はヘッダ書き換えて(operator new & delete)ダメだったらライブラリ自体再コンパイルだな。
すげーマンドクサいが、stlportを移植するよりはよっぽど楽そうだ。

あー、早くBREWでSTL使いたい。

249:デフォルトの名無しさん
04/11/08 18:32:15
ソフトキーの描画ってどうやってます?
画面の下に自分で文字書いてたりしてます?絵とか。

250:デフォルトの名無しさん
04/11/08 18:42:37
>>249
自分で四角描いて文字を描画してるだけ。

251:デフォルトの名無しさん
04/11/08 20:14:53
>>249
俺もそーしてる。その方が自由に描けるし。
っつーか、BREWで用意されてるコントロール系は何かと使いづらいね。
がんばって似たようなの作ろうかな。

252:デフォルトの名無しさん
04/11/08 21:02:42
>>249
自分で画像作ってる。けどデキがいまいち・・・。
本物のソフトキーと同じ画像ってどっかにないもんかね?

>>251
激しくキボン。

253:デフォルトの名無しさん
04/11/08 22:15:57
BREWはまだまだ商品として世に出されるべきではなかったな
構想段階でもう半年〜一年ぐらいはっきりと仕様を固めていれば
今のように"とても"作りにくく移植性の低いAPIにはならなかったはず
それともQ社の技術力が低いのか

どちらにせよ全体的な仕様統合と十分なサポートがなされないなら
該当諸氏はQ社に対する評価を改めるべきである

と書かれてた

254:デフォルトの名無しさん
04/11/08 23:26:05
brewのAPIが使いにくいのは確かだが、海外端末扱ってるとJAVAほど端末による
癖が無いのはうれしいけどね。
C系統だからプリプロセッサ使えるし。

しかし、何でオブジェクト指向なのにCでやろうと思ったのかが激しく疑問だが。
最初からC++にすればあんな使いにくいAPIにはならなかっただろうに。

255:デフォルトの名無しさん
04/11/08 23:32:22
エミュレータでImage開いてサイズの取得のみだけやってリリース、
その後一時的に処理がやたらと重くなるって不具合ない?
実機で再現しないんで放置してよいものかどうか…

>>252
詳しくも何も、好き勝手自由に作るだけじゃね?
使いやすいと思えるのは結局作った本人だけな罠w


256:デフォルトの名無しさん
04/11/09 00:18:00
>>247
俺も欲しいよ。
KDDI用意しろやああああああ
機種ごとの資料みて自分でまとめるのは面倒なんじゃあああああ

257:デフォルトの名無しさん
04/11/09 00:46:28
>>256
そうそう、面倒だよな〜
しかも端末仕様書にIMenuControlインタフェース云々のくだりがあるもんだから、
勝手に使えるもんだと解釈されて、その前提で会議進んでるしw

てか標準フォントサイズのバラバラ加減もどーにかして欲しいもんだがナー

258:249
04/11/09 11:43:34
皆様どうもです。やっぱり手書きなんですねーうーむ。

もう一つ質問なのですが、終了キー以外にも終了ボタンが必要とか
検証項目にあるのですが。。
ISHELL_CloseApplet()をいつでも呼べるようにすることですよね?
ソフトキーにこれと、音楽on/offを当てたら終わりですよねぇ。

ISHELL_CloseApplet()は必ず必要?

259:デフォルトの名無しさん
04/11/09 11:52:51
>>249
俺はトップメニューに「終了」項目つけて、それでCloseAppletするようにしてる。
全部の画面から終了できるようにする必要はないんじゃないかな?
まぁまだ検証出してないからわからんが・・・。

260:259
04/11/09 11:56:19
追加。
CloseAppletで終了できるようにしろっていうのは、
確か終話ボタンで終了すると、他のサスペンドしてる
アプリも終了しちゃうからだったと思う。
そういう意味ならどっか1箇所でCloseApplet呼び出せるようにすればいいかと思われ。

261:デフォルトの名無しさん
04/11/09 12:30:03
>>258
どこでも終了できるようにしなくてもOKだよ。
うちも259と同じようにトップとかに終了をつけてるだけだし。

262:デフォルトの名無しさん
04/11/09 12:48:31
>254
JavaでもPPP.exeなんかを使えば、プリプロセッサもどきは可能。
探せば、他にもありそうだけど(#define 関数が使えるとか)。


263:249
04/11/09 14:00:18
>>259-261
なるほどサスペンドなんかを考えなければいけなかったんですね。

ありがとうございました!

264:デフォルトの名無しさん
04/11/09 15:40:20
>>256-257  少しばかりの一覧表  外出か?
URLリンク(www.au.kddi.com)

265:デフォルトの名無しさん
04/11/09 16:00:19
>>262
まあそうなんだが(Cコンパイラでプリプロセッサだけかけるって手もあるしね)コンパイラ
自体が機能を持ってないから他人/他社と連携するときに色々面倒だ。
スレ違いなんでこの辺にしておくが、C++派の漏れとしては、まあとりあえずSymbianかbrewに
がんばってほしいところ。

266:デフォルトの名無しさん
04/11/10 22:05:06
もう2ch製APIとかつくりゃええやん

267:デフォルトの名無しさん
04/11/11 11:42:48
お忙しい所申し訳ありません。
質問が御座います。

モード選択でモードA・Bの二つを
上下キーで選択する処理を行いたいのですが、
「A1402S」のジョグダイアルにて
キーが取得出来ない様なのです。
(端末が手元に無い為、動作確認出来ません;;

ジョグダイアルの上下キー取得は
AVK_UP・AVK_DOWNで問題無かったでしょうか?
また、タイマー速度が速すぎると
キーを取りこぼしたりはするのでしょうか?
参考にタイマー速度を幾つに設定しているか等
教えていただけると幸いです。
因みに、現在のタイマー速度は80_秒に設定しています。

何卒、よろしくお願い致します。

268:デフォルトの名無しさん
04/11/11 12:24:36
>>267
AVK_UPとDOWNでおk。
ジョグダイアルって一瞬でPRESSとRELEASEのイベントが来るからそのせいじゃないのかな?

269:デフォルトの名無しさん
04/11/11 14:01:05
>>267
ラボ行って試せ。がんばれ

BREW ディベロッパー ラボ 無料
URLリンク(www.brewjapan.com)


270:デフォルトの名無しさん
04/11/11 14:38:46
>>266
ここの住人が結集してフレームワーク作るってことか?

271:デフォルトの名無しさん
04/11/11 15:44:10
>>267
タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。

272:デフォルトの名無しさん
04/11/11 15:44:32
>>267
タイマーって何ぞや?
普通にキーイベントを取得するだけなら、タイマーとか必要ない筈だが。
アプリのHandleEventで、eCode==EVT_KEY、wParam==AVK_UPとかを検出すれば出るはず。
そこにブレークポイントかDBGPRINTF置いて、処理がそこに行ってないようであれば、
キーイベント検出の前に何かのコントロールのハンドルイベントでTRUEを返してる可能性有り。
ちなみに俺はW21Sなんだが、ジョグダイヤルでもちゃんと検出できてるぞぃ。

273:デフォルトの名無しさん
04/11/11 16:22:25
>>267
俺の方は70msでちゃんとキーイベントが来てたからタイマーの間隔は大丈夫だと思う。

>>271
タイマーコールバックを短い間隔で回すとキーイベントが来ないことがあるってなかったっけ?

274:271
04/11/11 16:50:35
>>273
ん〜タイマーは数秒以上でしか使ってないからわからん。
後は任せた。

275:267
04/11/11 16:58:36
>>268
>AVK_UPとDOWNでおk。
それだけ分かっただけで助かります。
ありがとうございました。
原因は別の所に…;

>>269
>ラボ行って試せ。がんばれ
それが一番なんですが、何せここは北海道…
もうすぐ雪が降りますわ…_| ̄|○

>>271-272
>タイマーって何ぞや?
製作中のアプリがゲームなので、
ゲームループ回すのにタイマーを使用してるんですよ。
んで、ループの頭で押しっぱなしやらを判定してます。

>ハンドルイベントでTRUEを返してる可能性有り。
他機種の上下キーによる動作は大丈夫なんで、
問題は無いかと…。

アドバイスからすると取得は問題なさそうなので、
違う箇所を検証してみます。
また何かあれば宜しくお願い致します。

276:デフォルトの名無しさん
04/11/11 17:20:39
>>267
あー、たぶんキーを押したとかのフラグ処理が悪い。
RELEASEのときに押したっていう情報は残らないで
そのキーが押されていない状態になるっていう処理になってないか?

277:デフォルトの名無しさん
04/11/11 17:26:40
質問させてください
Brewでゲームを開発しているのですが
「A5503SA」にてIWebで通信後、ゲームのスピードが重くなる
現象がでます。
他の機種(A5501T等)では、ゲームスピードが変わることはないので
リリースのミスなどはないと思うのですが
同じような現象で対応策などありましたら情報を宜しくお願いします。

278:デフォルトの名無しさん
04/11/11 17:33:39
>267
端末仕様書を見れ
どのキーがどのイベントに対応してるか載ってますよ

あと時間を窮する質問は掲示板ではしない法がよいかと思われ

279:デフォルトの名無しさん
04/11/11 17:57:04
>>267
BREWはキー押しっぱなしだとEVT_KEYイベントが断続的に発生するから

キー押されたらフラグ上げる
→タイマーイベントでフラグをチェック+処理
→フラグをクリア
→タイマーセット

でいいと思うが。
わざわざRELEASE拾う必要なくね?


280:267
04/11/11 17:58:53
>>276
>RELEASEのときに押したっていう情報は残らないで
>そのキーが押されていない状態になるっていう処理になってないか?
あー、ビンゴです…;
要は

EVT_KEY_PRESS  押したキーフラグ取得
EVT_KEY_RELEASE 放したキーフラグ開放
だと、
ゲームループ内で押しっぱなし等の確認処理を行う前に
フラグが消えている _| ̄|○|||

ってことでOKですか?

281:デフォルトの名無しさん
04/11/11 18:15:06
大体ソースが見えたな。
タイマーにかからないタイミングでキー連打したら、
全く動かないゲーム作ってるって事かw


282:デフォルトの名無しさん
04/11/11 18:15:56
>>267
そゆことだな。

283:デフォルトの名無しさん
04/11/11 18:39:43
>>270
欲しいなそれ。
むしろ作りかけの物をとりあえず公開して、
ああしようこうしような風に仕上げていっても良いかも試練。

へっぽこなモンだったら漏れも公開できますが。w

284:デフォルトの名無しさん
04/11/11 18:50:31
全てはへっぽこから始まる

285:デフォルトの名無しさん
04/11/11 23:05:04
いいね、フレームワーク。
皆でやっちゃいますか?

286:デフォルトの名無しさん
04/11/11 23:29:11
賛成。
STLPortの移植も…

287:デフォルトの名無しさん
04/11/11 23:37:45
ちっちゃい独自関数でもあると便利なんてのもありですな

288:デフォルトの名無しさん
04/11/12 00:01:17
今更かもしれないけど、自分はジョグだけはEVT_KEYで取ってた

289:デフォルトの名無しさん
04/11/12 02:07:16
BREWのバイナリサイズに上限はありましたっけ?
STLPortのライブラリをリンクすると結構でかくなりそうな気がするんですが

290:デフォルトの名無しさん
04/11/12 05:02:38
>>289
mod,sig,bar等とアプリが作成するファイル
全部含めて200KB(QVGA対応機は300KB)。

291:デフォルトの名無しさん
04/11/12 10:21:41
>>289-290
ストレージも、シェアも・・・
関係するファイルサイズ全て含めて200,300KBですよね。

292:デフォルトの名無しさん
04/11/12 14:14:07
>>289>>291はサービスガイドと開発ガイドを全然読んでないだろ。

293:デフォルトの名無しさん
04/11/12 16:07:17
タイマーのコールバック間隔とキーイベント破棄の関係について
サービスガイドに載ってる注意書きから抜粋。参考までに。

※ BREW2.1 対応機種では、50ms 程度の短いタイマ間隔でコールバックを繰り返すとキープレスイベ
ントが破棄される場合があります。
タイマ間隔を長くするなどのアプリ側でのチューニングが必要となりますのでご注意ください。

294:デフォルトの名無しさん
04/11/13 00:10:09
modてギャクコンできないのかな
うっかり古いソースを上書きしてもうた

295:デフォルトの名無しさん
04/11/13 00:18:52
一般にオブジェクトコードからCレベルのソースを復帰するのは至難の業。

296:デフォルトの名無しさん
04/11/13 13:10:30
とっとと思い出してコーディングした方が速い

っというか、仕事でやってるならバックアップぐらい
とっとけよ

297:デフォルトの名無しさん
04/11/15 12:43:46
>>293
30フレーム/秒は不可能というわけか。

298:デフォルトの名無しさん
04/11/15 15:28:48
良い機会だからCVSの導入または、毎日一回自動でバックアップを取るバッチを作るといいと思うよ。
ちなみにそう言うときはファイル名は backup-yyyymmdd.zip みたいにしてある程度世代管理してもファイル名がかぶらないようにすると良い。

299:デフォルトの名無しさん
04/11/15 15:32:07
>>297
可能だと思う。処理しきれない速度でイベントが到達すると、
many callbacks pending とか何かでイベントが破棄されるだけ。

だから、一回の処理が10〜30ms程度で完了するのであれば、30fpsは実現可能。

>>293の言ってるキープレスが破棄されるってのは、イベント処理待ちが多すぎて、
せっかく届いたキーイベントが無視されるってわけ。

だからタイマー間隔が長くても、一回の処理が遅すぎると結局キーイベントを取りこぼす可能性大。

300:デフォルトの名無しさん
04/11/15 17:23:05
エンドキーって終話キーとはちがうのですか?

301:デフォルトの名無しさん
04/11/15 17:45:05
Windowsみたいにメッセージをメインループ側から受け取る事ってできるっけ?

「秒間30フレーム」は可能かもしれないけど、
タイマー使うメッセージループて時点で「1/30秒で回ってくるメインループ」は
不可能な気がするんだが。処理が追いつく前提でも。


302:デフォルトの名無しさん
04/11/15 22:02:12
>>300
エンドキー=終話キーで、多分あってると思う。

>>301
確かに。出来たとしても、なんちゃって30fpsだな。w

303:デフォルトの名無しさん
04/11/15 22:48:01
Smallフォント対応機種向けのBREWアプリで、
Smallフォントを使用する方法はあるのでしょうか?

enumで定義されてる
AEE_FONT_〜
らには、それらしきものはないので、無理かと思いましたが、
どこかでエクストラスモールフォントを使用する方法を
見かけたような気がして……。

304:デフォルトの名無しさん
04/11/15 23:33:01
>>303
FAQだったはず

305:デフォルトの名無しさん
04/11/15 23:35:50
スマンカッタ、FAQだけだとわけわからんな
開発支援サイトのFAQと端末仕様のpdfを参照すれ
どれかのフォントと排他なんで使いづらいかもよ

306:デフォルトの名無しさん
04/11/16 00:08:17
プログラミングガイド50ページ以降嫁

307:デフォルトの名無しさん
04/11/16 00:43:23
>>304-305
ありがとうございます!助かりました。
既存フォントと差し替える形で使うのですね。


>>306
すみません、目視&検索で探しては見たのですが、
読み落としてしまったみたいです_| ̄|...○

308:デフォルトの名無しさん
04/11/16 10:04:36
そうなんだよ、一度読破しておかないとダメなんだよ。
検索や目視でひっかからないことがおおい。
「どこかにそんなこと書いてあったなぁ」というのだけが頼り。

309:デフォルトの名無しさん
04/11/16 12:53:34
>>301 >>302
マルチタスクの環境(BREWもカーネルがアプリの実行をスケジュールしてるから
これにあたるよね)でなんちゃってじゃないFPS管理なんてできないでしょ。
なんちゃってでも、処理速度が追いついてれば概ねその通りに動くんだから普通は30fpsといえると思うが。
#まあ実際現状の端末では30fpsでまともな処理は難しいと思うが

ちなみにBREWのコールバックって種類が多すぎ&統一性があまり無いから困るね。
さらにタイマーとか優先度が高いコールバックがあると、imageのデコード終了とかのコールバックは後回しになっちゃったりするし。
いっそのことVxWorksでも入れてくれると良かったんだが。

310:デフォルトの名無しさん
04/11/16 14:46:52
検証項目?のMALLOC後の戻り値を見るってやつなんですが
みなさまどういう実装してます?

これ後から気づいて。。

いま

char *a() {
    return (char *)MALLOC(128);
}

のような関数あるんですが。。どうしよう。。

311:デフォルトの名無しさん
04/11/16 15:12:08
オールBREW端末にらんで〜日立ソフトBREW GUI開発ツール
URLリンク(www.itmedia.co.jp)

世界初、日立ソフトがクアルコムのBREWR3.1対応
携帯電話向けGUI開発支援ツールを販売
〜携帯電話端末への組込み型BREWアプリケーション開発の生産性を飛躍的に向上〜
URLリンク(www.hitachi-sk.co.jp)

キタ━━(゚∀゚)━━!!!!

312:デフォルトの名無しさん
04/11/16 15:13:28
日立ソフト:アプリケーション開発フレームワークanyWarp
URLリンク(hitachisoft.jp)

313:デフォルトの名無しさん
04/11/16 15:18:53
URLリンク(k-tai.impress.co.jp)

314:デフォルトの名無しさん
04/11/16 15:23:20
>>310
ぬるぽだったら終了させればいいんじゃねーの?

315:デフォルトの名無しさん
04/11/16 15:23:37
ITmedia記事より。

> 価格は年間使用権契約で、1ライセンスあたり100万円弱を想定している。
> キャリアや端末メーカーから、アプリケーション開発やコンサルティングを
> 受託し、初年度5億円の売上げを目指す。

えーと...。


316:デフォルトの名無しさん
04/11/16 15:24:32
>>314
ガッ

317:デフォルトの名無しさん
04/11/16 15:39:09
KDDIのアプリ企画審査って厳しいんですか?
普通に動けばいいってもんじゃない?


318:デフォルトの名無しさん
04/11/16 16:04:16
この流れで1分でガッされるのか・・・

319:315=316
04/11/16 16:09:19
すみません、315書いてリロードしたらすぐ上のカキコが目に入ったもので脊髄反射で...。

320:310
04/11/16 16:12:17
ぬるぽで終わらせたいんですが
メッセージ出してうんぬんかんぬん。。。だとかなり直さないといけないので
どうしたものかと思ったのですが〜

やはり地道に書くしかないみたいですねー


321:315=316
04/11/16 16:25:36
>>320
今度もガッ

よく分かりませんがエラー発生時にメッセージ出さずにいきなり終了はNGですよ。
メッセージ出してなんかボタン押されたら糸冬了ってシーケンスにしとかないと。

>>317
そりゃもう。

322:デフォルトの名無しさん
04/11/16 16:28:22
基本的に何処のルーチンに於いても、
エラー検出して異常終了(再開)できる出口用意しといた方がいいと思う。
つかそれが普通だと思う。
ぬるぽ検出したら、上の出口につなげるだけ。

MALLOC以外にも、動的にメモリ確保する箇所は山ほどできるぞ。
つーかpngなりjpeg使う時点でヒープ使うし

323:310
04/11/16 16:47:27
むー結構大変ですねー
とりあえず終了用のclassを改造してみます。

ありがとうございまっした

324:デフォルトの名無しさん
04/11/16 16:52:05
>>322
(´-`).。oO(終了メッセージ出すとこでぬるぽしたらどうするんだろう)

325:デフォルトの名無しさん
04/11/16 16:58:32
>>324
終了用ダイアログ(IDialogでは断じてない)は最初に用意しておく、が正解。
最初にそれすら確保できないようなケースは知らん。

326:310
04/11/16 18:15:40

a = MALLOC(1);
b = MALLOC(2);
c = MALLOC(3);

例えばこんなコードでcでエラーが起きた場合、
aとbもFREEしないといけないんですよね。。。

めんどーひ

327:デフォルトの名無しさん
04/11/16 19:15:09
BREWのFONTって、文字の横幅は固定なのでしょうか?
固定っぽいけど、それは機種依存になるのかな?
今後、それは変わらないのでしょうか?

だれか教えてください  ペコリ

328:327
04/11/16 19:22:50
言葉足らずなので追記
可変長フォントなんてのがあり得るのか、知りたいのです。


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5389日前に更新/284 KB
担当:undef