BREW(Binary Runtime Environment for Wireless) 3

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
BREW(Binary Runtime Environment for Wireless)についてのスレ

QUALCOMM BREWホーム
http://www.qualcomm.com/brew/ja/
http://www.qualcomm.com/brew/

BREW JAPAN .COM|BREW増強計画
http://www.brewjapan.com/

前スレ
http://pc5.2ch.net/test/read.cgi/tech/1076511398/
関連情報>>2-18

■過去スレ
02 http://pc5.2ch.net/test/read.cgi/tech/1076511398/
01 http://pc2.2ch.net/test/read.cgi/tech/1011078904/
2デフォルトの名無しさん:04/09/24 15:24:38
>>1
関連情報まだですか?
3デフォルトの名無しさん:04/09/24 19:39:09
4デフォルトの名無しさん:04/09/24 21:11:24
>>1

>>3
リンクのまとめサイトなんてあったんだな。知らんかった


でも、なんか寂しいので追加しとくわ

BREW関連

Qualcomm CDMA Technologies - CDMA2000 3G Solutions ← チップセットの情報(PDFあり)
http://www.cdmatech.com/solutions/cdma2000_3g_solutions.jsp?L2=cdma2000_3g_solutions



ARM関連

ARM7DTMIの部屋
http://vsync.org/arm/
ARMメモ
http://www.bomber.co.jp/chaola/docs/ARM/
Linux Zaurusでアセンブリプログラミング
http://www.nk.rim.or.jp/~jun/slasm/arm00.html
5よくありそうな質問:04/09/25 00:31:37
Q.
BREWアプリを自作して自分の携帯に入れたいのですが?
A.
素人は作ることは可能ですが端末に転送することはできません
あきらめるかCPなどのプロになりましょう

Q.
DLLにコンパイルしたものを端末に転送したのですが実行できません
A.
ARMの形式でコンパイルする必要があります
あきらめるかARMにコンパイルできるようがんばりましょう
6デフォルトの名無しさん:04/09/25 00:40:58
Q.
BREWて正直うんこなんですが…
A.
そうかもしれません
しかし手段・道具によらず目的を達成するのがプロというものです
がんばりましょう


Q.
_| ̄|○ ……
A.
(つДT)つ旦
7デフォルトの名無しさん:04/09/25 12:09:22
ぶりゅっ
8デフォルトの名無しさん:04/09/25 14:22:11
シンビアンのほうが良くない?
9デフォルトの名無しさん:04/09/25 15:19:48
シンビアンはウイルスあるよ
10デフォルトの名無しさん:04/09/25 15:53:04
('A`)1の過去ログ持ってる人いますか?
11デフォルトの名無しさん:04/09/25 16:06:54
12デフォルトの名無しさん:04/09/25 16:08:08
>>10
持ってますよ。
13デフォルトの名無しさん:04/09/25 16:47:06
ARMってはじめてだったけど、整数除算命令ないのね・・・orz

アライメントは良いとしても他に気をつける所ありますか?
14デフォルトの名無しさん:04/09/25 18:38:15
>>12
http://age.tubo.80.kg/age01/imgboard.cgi
ここにうpして頂けますか?お願いします('A`)
15デフォルトの名無しさん:04/09/25 19:06:44
アップしました。
ぶりゅぶりゅ過去ログです。
16デフォルトの名無しさん:04/09/25 19:31:29
>>15
サンクスです
17デフォルトの名無しさん:04/09/26 02:40:08
SDKダウンロードできねぇす。うえーん
18デフォルトの名無しさん:04/09/27 08:05:04
>>17

■FAQ
IE5.5SP2以降推奨、NNでも動くかも知れないけどOperaとかMozillaとかは確実に無理。
JavaScript+ActiveX。

あと、会社名とかをちゃんと登録しないとダウンロードできません。
2Channel Inc. みたいな正式な名前。
登録内容は全部英語。
(http://pc5.2ch.net/test/read.cgi/tech/1076511398/15)
19デフォルトの名無しさん:04/09/27 09:46:26
技術討論スレに話題が上がってたので質問したいのですが
BREWは携帯電話専用のAPIなんですか?
それとも携帯端末汎用?
20デフォルトの名無しさん:04/09/27 10:36:18
>>19
一応、携帯専用APIではなかったはず・・・

Plamでなかったっけ?(計画だけか?)
21デフォルトの名無しさん:04/09/27 22:34:55
>>18
FAQあったんだ。。。過去ログ見られないけど、サンキューです!!
Firefox使ってたよ。。。
22デフォルトの名無しさん:04/09/28 23:55:23
武龍3.0てどんな感じですか?
23デフォルトの名無しさん:04/09/29 00:25:17
おっ
かっこいいな>武龍
24デフォルトの名無しさん:04/09/29 00:48:28
命名:武龍
25デフォルトの名無しさん:04/09/29 01:41:46
よみがな:むりゅう

無理ゆう
26デフォルトの名無しさん:04/09/29 09:56:12
お後がよろしいようで
27デフォルトの名無しさん:04/09/29 11:01:57
虎BREW
28デフォルトの名無しさん:04/09/29 17:39:46
質問です。

IDISPLAY_DrawTextにて文字描画を行っております。

文字の部分に枠ができてしまうのですが
解決方法はないのでしょうか?
透過というか、背景に文字が直接描かれるようにしたいのです。

IDISPLAY_DrawText(app->a.m_pIDisplay,
AEE_FONT_NORMAL, // 太字のフォント
wstr,
-1,
0,
204,
NULL,
IDF_ALIGN_CENTER);

現在はこのような感じです。
よろしくおねがいします。
29デフォルトの名無しさん:04/09/29 17:40:38
フォントのコメントは無視してください。ミスッタ!
30デフォルトの名無しさん:04/09/29 17:56:42
>>28
flagにIDF_TEXT_TRANSPARENTは?
3128:04/09/29 18:02:33
ぐあ!できました!>>30様感謝!

ちなみに、フラグを || で繋げていたため
「うごかねー」と、思っていたのかもしれません。。。

ありがとうございました。
3228:04/09/29 18:51:50
ついでといってはなんなのですが、もうひとつ。
3バイトの文字。たとえば"-あ"をAECHARにするには
どうしたらいいのでしょう。
33デフォルトの名無しさん:04/09/29 19:07:54
STRTOWSTR()
じゃない方のワイド文字列変換
これ使うと認証通らない
34デフォルトの名無しさん:04/09/29 19:12:27
QRコード解析について質問です。

開発環境
SDK: 2.1.1
端末: W21S
Extension(QRDEC3GV)使用

ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。

撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して
読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。

また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、
QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。

画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、
カメラからの画像を解析する方法をご教授ください。
ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。

35デフォルトの名無しさん:04/09/29 19:14:42
QRコード解析について質問です。

開発環境
SDK: 2.1.1
端末: W21S
Extension(QRDEC3GV)使用

ICameraで取得した画像からQRコードの解析を行いたいのですが、どうしてもうまくいきません。

撮影した画像をファイルから読み込んで解析する場合、撮影した画像ファイルの深度を16bitに変換して
読み込む必要があるそうなのですが、16bitへの変換がうまくいきません。

また、カメラのコールバック関数内で取得したIBitmapインスタンスから直接解析を行う方法も試してみたのですが、
QRDEC_IMAGE等の構造体に格納する値がわからず、IQRDEC3GV_QrdecDecodeSymbolSetParametersで失敗してしまいます。

画像を撮影してファイルから解析を行う方法と、プレビュー画像を直接解析する方法のどちらでも構わないので、
カメラからの画像を解析する方法をご教授ください。
ちなみに、Extensionのサンプルについてきた画像からの解析は成功しています。

3628:04/09/29 19:45:27
STREXPANDでできました。
STRTOWSTRは使わない方がいいのですね。ありがとうございました。
37デフォルトの名無しさん:04/09/29 22:01:08
カメラの撮影設定がQRコード用になっていますか?
ズームに0x7fffffffを設定してやれば各端末の最適な設定に変更されるはずです
画像取り込みをそれでおこなえば良いと思います
画像解析はメモリを直接参照すr
3835:04/09/30 10:07:40
ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff );
という感じで設定しています。
撮影した画像とサンプルについてきた画像をテキストエディタで開いてみたのですが、
サンプルの画像は「BM6」で始まっているのに対し、撮影した画像は最初から文字化けしていました。
従って、撮影した画像のエンコード方法がまずいのではないかと考えています。
ちなみに、ICAMERA_SetVideoEncodeで、AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、
AEECLSID_JPEGを設定しています。

一応、関係ありそうな部分のコードを↓に載せます。
3935:04/09/30 10:23:36
#define QR_MAX_FILE_BUF300
#defineQR_MAX_DECODE_BUFFER_SIZE2062

// アプリケーション構造体のQRコードに関する部分 ------------
charQR_FileName[64];
unsigned char*QR_psDecodedText;// デコード結果バッファ
unsigned char*QR_psFormatText;// デコード結果フォーマットバッファ
longQR_lBufferSize;// デコード結果文字列サイズ


// QR関係プロトタイプ
static void Conv24BGRto16RGB_UpsideDownEx( IFile * pFile, unsigned char *img16rgb, long hs, long vs, long lImageSize);
static void Conv8BGRto16RGB_UpsideDown( unsigned char *img8bgr, unsigned char *img16rgb, long hs, long vs);
intQR_GetErr(QRDEC_HRESULT lErr);
static boolean QR_DecodeSymbol( IApplet* pi );// サンプルからコピペした解析用関数
static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp );// IBitmapから直接解析する為の関数
4035:04/09/30 10:24:03
/*-------------------------------------------------------------------------------
HelloWorld2_HandleEvent
ハンドルイベント
------------------------------------------------------------------------------- */
static boolean HelloWorld2_HandleEvent(AEEApplet * pi, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
CHelloWorld2 * pMe = (CHelloWorld2*)pi;
AECHAR szBuf[30] = {0};
int ret;

// キーイベント
case EVT_KEY: DBGPRINTF("### APP_EVT_KEY ###");
switch( wParam ){
// 選択キー押下
case AVK_SELECT: DBGPRINTF("### AVK_SELECT ###");
// カメラ:スナップショット
if( pMe->Camera && pMe->m_DispState == STATE_PICTURE ){
ret = ICAMERA_RecordSnapshot( pMe->Camera );
return FALSE;
}
return FALSE;
}
4135:04/09/30 10:27:57
/*-------------------------------------------------------------------------------
画像撮影用関数(mode=TRUE:QRモード、FALSE:通常モード)
------------------------------------------------------------------------------- */
void GetPicture( IApplet* pi, boolean mode ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
intret;
AEESize*pList;
AEESizeList;

pMe->m_DispState = STATE_PICTURE;
IDISPLAY_ClearScreen (pMe->a.m_pIDisplay);
pMe->Camera = NULL;

// ICameraインスタンス生成
if( (ret = ISHELL_CreateInstance(pMe->m_pIShell,AEECLSID_CAMERA,(void **)&pMe->Camera) ) != SUCCESS ){ return; }

// コールバック設定
if( ICAMERA_RegisterNotify(pMe->Camera,(PFNCAMERANOTIFY)Camera_CB,(void*)pMe) != SUCCESS ){ return; }

pList = (AEESize *)CAM_MODE_PREVIEW;// OK
//サイズリストの取得
pMe->Camera_pbRange = TRUE;
ret = ICAMERA_GetDisplaySizeList(pMe->Camera, &pList, &pMe->Camera_pbRange);
if( ret != SUCCESS ){ return; }
List.cx = pList[0].cx;List.cy = pList[0].cy;

// 諸設定
ret = ICAMERA_SetDisplaySize(pMe->Camera, &List);
if( ret != SUCCESS ){ return; }
4235:04/09/30 10:28:27
// FPS設定
pMe->Camera_dwFPS = (int32 *)CAM_MODE_PREVIEW;
pMe->Camera_pbRange = TRUE;
ret = ICAMERA_GetParm(pMe->Camera, CAM_PARM_FPS_LIST, (int32 *)&pMe->Camera_dwFPS, (int32 *)&pMe->Camera_pbRange);
ret = ICAMERA_SetFramesPerSecond( pMe->Camera, *pMe->Camera_dwFPS);

// QRモード指定
if( mode ){ ret = ICAMERA_SetZoom( pMe->Camera, (int32)0x7fffffff );// QRモード指定 }

IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_USER_BACKGROUND,MAKE_RGB(255,255,255));
IDISPLAY_SetColor(pMe->a.m_pIDisplay, CLR_SYS_ITEM,MAKE_RGB(255,255,255));

// メディアデータ設定
pMe->Camera_Media.clsData= MMD_FILE_NAME;
pMe->Camera_Media.pData= "qr.bmp";
STRCPY(pMe->QR_FileName,"qr.bmp");
ret = ICAMERA_SetMediaData( pMe->Camera, &pMe->Camera_Media, "image/bitmap" );
4335:04/09/30 10:29:20
// サイズ設定
ret = ICAMERA_SetSize(pMe->Camera, &List);
if( ret != SUCCESS ){ return; }

//IFileMgr インタフェースオブジェクトのインスタンス化
ret = ISHELL_CreateInstance(pMe->m_pIShell, AEECLSID_FILEMGR,(void**)&pMe->Camera_FileMgr);
if( ret != SUCCESS ){ return; }
//ファイルを作成
IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp");
if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){ return; }
//ファイルをクローズ
IFILE_Release( pMe->Camera_File ) ;

// エンコード設定
ret = ICAMERA_SetVideoEncode(pMe->Camera, AEECLSID_JPEG, NULL);// ○

// プレビュースタート
ret = ICAMERA_Preview(pMe->Camera);
if( ret != SUCCESS ){ return; }
}
4435:04/09/30 10:29:45
/*-------------------------------------------------------------------------------
Camera_CB
カメラコールバック
------------------------------------------------------------------------------- */
void Camera_CB( void* pUser, AEECameraNotify* pNotify ){
CHelloWorld2*pMe = (CHelloWorld2*)pUser;
IBitmap*pFrame;
AEEBitmapInfo bi;
int ret = SUCCESS;

if( !pMe || !pNotify ){ return; }

switch( pNotify->nStatus ){
case CAM_STATUS_USER_BASE:DBGPRINTF("### Camera_CB:USER_BASE ###");break;
case CAM_STATUS_FAIL:DBGPRINTF("### Camera_CB:FAIL ###");break;
case CAM_STATUS_PAUSE:DBGPRINTF("### Camera_CB:PAUSE ###");break;
case CAM_STATUS_RESUME:DBGPRINTF("### Camera_CB:RESUME ###");break;
case CAM_STATUS_DATA_IO_DELAY:DBGPRINTF("### Camera_CB:DATA_IO_DELAY ###");break;
case CAM_STATUS_SPACE_WARNING:DBGPRINTF("### Camera_CB:SPACE_WARNING ###");break;
case CAM_STATUS_START:// プレビュー開始
DBGPRINTF("### Camera_CB:START ###");
break;
4535:04/09/30 10:39:50
case CAM_STATUS_FRAME:
{
// ▼040924▼
AEEImageInfo*info=NULL;
boolean*retbool=NULL;
//IDIB*pIDIB;
// ▲040924▲

DBGPRINTF("### Camera_CB:FRAME ###");
// フレーム取得
ret = ICAMERA_GetFrame( pMe->Camera, &pFrame );
//DBGPRINTF("### Camera_CB:GetFrame:%d ###",ret);
// ビットマップ情報を取得
IBITMAP_GetInfo( pFrame, &bi, sizeof(bi));
//DBGPRINTF("### Camera_CB:BitmapSize:%d ###",sizeof(bi));

DBGPRINTF("### IBITMAP:ImageInfo.nDepth = %d ###",bi.nDepth);

// 取得フレームから直接解析するバージョン
QR_DecodeFromBmp( (IApplet*)pMe, pFrame );

4635:04/09/30 10:40:21
//CONVERTBMP( (void*)pFrame, info, retbool );
//DBGPRINTF("### info.nColors = %d ###",info->nColors);
//IDIB を作成し、ポインタを取得
/*ret = IBITMAP_QueryInterface( pFrame, AEECLSID_DIB, (void**)&pIDIB );
if( ret != SUCCESS ){
DBGPRINTF("● IBITMAP:QueryInterface:FAILED ●");
}
pIDIB->nDepth = 16;
//IBITMAP を開放
IBITMAP_Release( pFrame );
//IDIB をIBITMAP に変換(キャストなので開放不要)
pFrame = IDIB_TO_IBITMAP(pIDIB);
*/
//ファイルを作成
/*IFILEMGR_Remove(pMe->Camera_FileMgr, "qr.bmp");
if((pMe->Camera_File = IFILEMGR_OpenFile(pMe->Camera_FileMgr,"qr.bmp", _OFM_CREATE)) == NULL){
DBGPRINTF("● Camera_CB:CreateFile(bmp):FAILED ●");
return;
}
IFILE_Write( pMe->Camera_File, (void*)pFrame, sizeof(bi));
//ファイルをクローズ
IFILE_Release( pMe->Camera_File ) ;

QR_DecodeSymbol( (IApplet*)pMe );

*/IBITMAP_Release(pFrame);
break;
}
4735:04/09/30 10:44:50
// 結構多いので一部省略します。
/*-------------------------------------------------------------------------------
QR_DecodeSymbol
QRコード・バーコードデコード処理
デコード対象:"pMe->QR_FileName"で指定された画像ファイル(例:"images/qr1.bmp")
デコード結果文字列は"pMe->QR_psDecodedText"に格納
------------------------------------------------------------------------------- */
static boolean QR_DecodeSymbol( IApplet* pi ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
IBitmap*pScreen = NULL;
IDIB*pDibScreen = NULL;
IFile*pFile;
FileInfofi;
IFileMgr*pFileMgr;
IQrdec3GV*pQrdec = NULL;

QRDEC_IMAGEgImage;
QRDEC_SYMBOL_INFOgSymbol;
QRDEC_STRING_INFOsInfo;
QRDEC_HRESULTrc;
longlImageSize = 0;
void*pWorkarea = NULL;
unsigned longlMemoryVecLen;
int16nLoop = 0;
int32ret32;
unsigned char*pimg24 = NULL, *pimg16 = NULL;

BITMAPFILEHEADERbmFh;
BITMAPINFOHEADERbmIh;
int ret;
4835:04/09/30 10:46:16
{
DBGPRINTF("### QR_DecodeSymbol:Start ###");

// ファイル参照
ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_FILEMGR, (void **)&pFileMgr);
if(pFileMgr){
pFile = IFILEMGR_OpenFile(pFileMgr, pMe->QR_FileName, _OFM_READ);

if(pFile){
// ビットマップヘッダの読み込み
ret32 = IFILE_Read(pFile, (void *)&bmFh, 14);
ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER));
lImageSize = (bmIh.biHeight * bmIh.biWidth * bmIh.biBitCount / 8);
}else{ return 1; }

// ビットマップフレームデータの取得→16ビットデータをExtensionに渡すための前処理
if(bmIh.biBitCount == 24){
// 24ビット・ビットマップの場合
pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight * 2 );
if( !pimg16 ){ return 2; }
Conv24BGRto16RGB_UpsideDownEx(pFile, pimg16, bmIh.biWidth, bmIh.biHeight, lImageSize);
}
4935:04/09/30 10:47:08
if(bmIh.biBitCount == 8){
// 8ビット・ビットマップの場合
IFILE_GetInfo(pFile, &fi);
pimg24 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100);
pimg16 = (unsigned char*)MALLOC(bmIh.biWidth * bmIh.biHeight+100);
if( !pimg16 ){ return 2; }
ret32 = IFILE_Seek(pFile, _SEEK_END, -lImageSize );
IFILE_Read(pFile, pimg24, lImageSize);
Conv8BGRto16RGB_UpsideDown( pimg24, pimg16, bmIh.biWidth, bmIh.biHeight);
}
if(pFile){ ReleaseObj((void**)&pFile); }
if(pFileMgr){ ReleaseObj((void**)&pFileMgr); }
}else{
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
return FALSE;
}

}
5035:04/09/30 10:48:23
// Extensionを利用してのデコード処理
// パラメータの設定
gImage.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ
gImage.imPixels= pimg16;// フレームデータバッファ
gImage.imWidth= bmIh.biWidth;// イメージ幅
gImage.imHeight= bmIh.biHeight;// イメージ高さ
gImage.imBitCount= (bmIh.biBitCount == 24) ? 16 : 8;// ビットカウント
gImage.imCompression= QRDEC_BI_RGB;// 圧縮形式
gImage.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1
gImage.imSourceCameraValue= 0;// カメラ情報2

gSymbol.siSize= sizeof(QRDEC_SYMBOL_INFO);// 構造体サイズ
gSymbol.siSymbolType= QRDEC_QR_CODE_M2 | QRDEC_JAN13 | QRDEC_JAN8;// ターゲットシンボルタイプ
gSymbol.siQRVersionLow= 1;// QRコード対象最小バージョン
gSymbol.siQRVersionHigh= 20;// QRコード対象最高バージョン
5135:04/09/30 10:51:55
// 結果文字列受取バッファの確保
if(!pMe->QR_psDecodedText){
pMe->QR_psDecodedText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE);
if( pMe->QR_psDecodedText == NULL ){
if(pWorkarea){ FREE(pWorkarea); }
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
if(pDibScreen){ ReleaseObj((void**)&pDibScreen); }
if(pScreen){ ReleaseObj((void**)&pScreen); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return (boolean)8;
}
}
MEMSET(pMe->QR_psDecodedText, 0, QR_MAX_DECODE_BUFFER_SIZE);

// 結果フォーマット文字列バッファの確保
if(!pMe->QR_psFormatText ){
pMe->QR_psFormatText = (unsigned char *)MALLOC(QR_MAX_DECODE_BUFFER_SIZE);
if( pMe->QR_psFormatText == NULL ){
if(pWorkarea){ FREE(pWorkarea); }
if(pimg24){ FREE(pimg24); }
if(pimg16){ FREE(pimg16); }
if(pDibScreen){ ReleaseObj((void**)&pDibScreen); }
if(pScreen){ ReleaseObj((void**)&pScreen); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return (boolean)8;
}
}
MEMSET(pMe->QR_psFormatText, 0, QR_MAX_DECODE_BUFFER_SIZE);
5235:04/09/30 10:54:04
sInfo.tiSize= sizeof(QRDEC_STRING_INFO);// 構造体サイズ
sInfo.tiDecodedBuffer= pMe->QR_psDecodedText;// 結果受取バッファ
sInfo.tiFormatBuffer= pMe->QR_psFormatText;// 結果フォーマットバッファ
sInfo.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE;// バッファサイズ

// デコードExtensionインスタンスの構築
if ( (ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS){
if(pScreen){ ReleaseObj((void**)&pScreen); } return 2;
}

// デコードExtension処理領域の問い合わせ
if(!pWorkarea){
lMemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec);
pWorkarea = MALLOC(lMemoryVecLen * 3);
if(!pWorkarea){ if(pQrdec){ IQRDE3GV_Release(pQrdec); } return 2; }
}

// デコードパラメータのセット
rc = IQRDE3GV_QrdecDecodeSymbolSetParameters(pQrdec, &gImage, &gSymbol, &sInfo, pWorkarea);
if(rc){
if(pWorkarea){ FREE(pWorkarea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return 2;
}
rc = QRDEC_S_CONTINUE;
5335:04/09/30 10:54:37
// デコード処理実行
while (rc == QRDEC_S_CONTINUE ){ rc = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkarea); }

if ( rc == QRDEC_S_OK ){ pMe->QR_lBufferSize = sInfo.tiBufferSize;
}else{ ret = QR_GetErr(rc); }

if(pWorkarea){ FREE(pWorkarea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }

return (boolean)rc;
}
5435:04/09/30 10:56:36
/*-------------------------------------------------------------------------------
QR_DecodeFromBmp
QRコード・バーコードデコード処理
IBitmapから直接変換
------------------------------------------------------------------------------- */
static voidQR_DecodeFromBmp( IApplet* pi, IBitmap* pBmp ){
CHelloWorld2* pMe = (CHelloWorld2*)pi;
void*pWorkArea = NULL;
IQrdec3GV*pQrdec = NULL;
intret;
QRDEC_IMAGEimageArea;
QRDEC_SYMBOL_INFOcodeInstructions;
QRDEC_STRING_INFOstringArea;
AEEBitmapInfobi;

if( ( ret = ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_QRDEC3GV, (void **)&pQrdec)) != SUCCESS ){return; }

{
IBITMAP_GetInfo( pBmp, &bi, sizeof(bi));

imageArea.imSize= sizeof(QRDEC_IMAGE);// 構造体サイズ
imageArea.imPixels= (unsigned char*)pBmp;// フレームデータバッファ
imageArea.imWidth= bi.cx;// イメージ幅
imageArea.imHeight= bi.cy;// イメージ高さ
imageArea.imBitCount= 16;// ビットカウント
imageArea.imCompression= QRDEC_BI_RGB;// 圧縮形式
imageArea.imSourceCameraType= QRDEC_IM_DEFAULT;// カメラ情報1
imageArea.imSourceCameraValue= 0;// カメラ情報2
5535:04/09/30 10:57:21
codeInstructions.siSize= sizeof(QRDEC_SYMBOL_INFO);
codeInstructions.siSymbolType= QRDEC_QR_CODE_M2;
codeInstructions.siQRVersionLow= 0;
codeInstructions.siQRVersionHigh= 0;

stringArea.tiSize= sizeof(QRDEC_STRING_INFO);
stringArea.tiDecodedBuffer= pMe->QR_psDecodedText;
stringArea.tiMaxBufferSize= QR_MAX_DECODE_BUFFER_SIZE;
stringArea.tiFormatBuffer= pMe->QR_psFormatText;

if (pWorkArea == NULL) {
unsigned long MemoryVecLen = IQRDE3GV_QrdecGetWorkAreaSize(pQrdec);
pWorkArea = MALLOC(MemoryVecLen);
}
IQRDE3GV_QrdecDecodeSymbolSetParameters( pQrdec, &imageArea, &codeInstructions, &stringArea, pWorkArea);
}

while (ret == QRDEC_S_CONTINUE ){ ret = IQRDE3GV_QrdecDecodeSymbolNextStep(pQrdec, 150, 100, pWorkArea); }

if ( ret == QRDEC_S_OK ){
DBGPRINTF("○●○ QR(Bmp):SUCCESS ○●○");
pMe->QR_lBufferSize = stringArea.tiBufferSize;
}else{ ret = QR_GetErr(ret); }
if(pWorkArea){ FREE(pWorkArea); }
if(pQrdec){ IQRDE3GV_Release(pQrdec); }
return;
}
5635:04/09/30 10:58:12
大変長くなってしまって申し訳ありません。
宜しくお願いします。
57デフォルトの名無しさん:04/09/30 11:30:40
QRはやってないし、わからんが

そらAEECLSID_JPEGを指定したらJPEGが出力
されるがな。
加工したいならRAW出力で出力して、BMPファイルに
すればいいんでねーの?
5835:04/09/30 13:27:44
>>57
AEECLSID_WINBMPやAEECLSID_NATIVEBMPが設定できなかったので、
とりあえず動かすためにAEECLSID_JPEGを設定していました。
というかCAM_ENCODE_RAWの存在をすっかり忘れていました。
RAW出力早速やってみます。
5957:04/09/30 14:55:04
>>58
CAM_PARM_VIDEO_ENCODE_LISTでGetParamやれば
サポートフォーマットは取得できる。
まぁ〜BMPサポートしているのなんか見たこと
無いけど

とりあえず、RAWはメーカ依存なので絶対とは
いえんけどYUV422で出力されると思われ
# RGBは見たとき無いな・・・あんのかな?
60デフォルトの名無しさん:04/09/30 16:20:37
とりあえず長いソースを晒すときはテキストでうぷしる
でも守秘義務は守ろうな
晒せる範囲に気をつけれ

でカメラだが
jpg援交画像をimageで取り込み→bitmap化
getフレームのbitmapを直接取り込み
あたりをすればよいかと思われ
6158:04/09/30 21:22:04
>>59-60
情報提供&忠告有難うございます。
RAW出力でやってみたのですが、やはりうまくいかないようです。

>jpg援交画像をimageで取り込み→bitmap化
>getフレームのbitmapを直接取り込み
サンプルのコードを見る限り、解析するときに
ret32 = IFILE_Read(pFile, (void *)&bmFh, 14);
ret32 = IFILE_Read(pFile, (void *)&bmIh, sizeof(BITMAPINFOHEADER));
で取得した情報を元に16bitに変換してるようなので、
BMP形式でファイルに保存してからじゃないと無理っぽいです。
IBitmapから直接解析しようとすると、
Extensionの構造体(特にQRDEC_IMAGEのimPixels)に何を入れていいかわからない状態です。
62デフォルトの名無しさん:04/09/30 22:58:44
BREW 上でMINIXをさらにショボくしたようなレベルの簡易OSが作れないかな、
と思っているんですが、ちょっと質問。

1、MMUはイジれますか?第一、そもそもハード的にありますか?
2、少なくとも、Dirty Bitは見たいのですが、可能ですか?
3、例外や割り込みはトラップできますか。とりわけ、ページフォルトは?
4、簡易OS上のアプリからのBREWのAPIコールやライブラリコールをトラップ
(正確には禁止)できますか?

クアルコムは、BREWでJavaVMも書けるよ、と怪気炎を吐いていますので、
このあたりのOSレベルの機能も無理やり開放させる方法があるような気がするのですが、
どうでしょうか。
63デフォルトの名無しさん:04/10/01 22:07:00
BREW Developers Agreementについて解説してあるサイトとかないですか?
グラントバック条項として

BREWの開発に役立つ特許なら親会社のでも子会社のでもクアルコムに実施料無料で
自由に使わせろって書いてあるように読めるんだけど。
子会社はともかく親会社にそんなこと認めてもらうなんて・・・。

みんなこんな契約そのまま承諾してるのかなあ?
64デフォルトの名無しさん:04/10/02 01:50:48
>>60
関係ないが
援交っていーぱつ変換でだすなんt
65デフォルトの名無しさん:04/10/02 03:20:44
>>62

だれか教えて!
とりわけ、
・ページフォルトがトラップできるか
・BREW API/ライブラリへのコールがトラップ(もしくは禁止)できるか
・ダーティービットが見れるか
この三点、よろしくお願いします。
66デフォルトの名無しさん:04/10/03 23:27:08
うーん。クアルコムのサイトでの検索結果では、
非常にダメっぽいなぁ。mmap() すらないんだもんな。
67デフォルトの名無しさん:04/10/04 09:24:17
型宣言について聞いてみたい。
BREWでは int16, int32, uint16, uint32 といった型がわざわざtypedefされているが
インターフェイスのヘルプを見ると引数や戻り値に int と書かれているものもある。
みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で?
「そんなの好きに書けばいいじゃない」って、気にするほどのもんでもないのかな。
(結局はコンパイルでintやlongに置き換わるわけだし)

実は bool型 true, false が
boolean型 TRUE, FALSE (1, 0でdefineされてる)
で定義されてるのもかなりウザイと感じている。
boolean result = (a != b); がエラーになってバカらしいなと…
(BREW的には boolean result = (a != b) ? TRUE : FALSE; )
68デフォルトの名無しさん:04/10/04 10:17:27
>みなさんソース書くときにint16とかの記述で統一してますか? それともintも混在で?
自分で宣言した変数ではintしか使ってない。

>実は bool型 true, false が
>boolean型 TRUE, FALSE (1, 0でdefineされてる)
>で定義されてるのもかなりウザイと感じている。
同感。すげーウザイ。
他にも、KDDI認証とかマニュアルの不便さとか、挙げればキリがない。
69デフォルトの名無しさん:04/10/04 10:33:24
BREWは、VC依存でしょうか?
gccでは使用できませんか?
70デフォルトの名無しさん:04/10/04 11:28:33
 素人なので間違えてたらごめんなさい。

 GNUDEでもできるみたいなんですが、
elf2modが必要で、正式デベロッパーになるか、
auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。

 ところで、Visual Studio Addin入れようとするとエラーになるんですが、
やっぱりVisual Studioがないといけないんでしょうか。
String NO_VS_ERR_MSG1 was not found in string table.って出ます。
7169:04/10/04 11:35:10
>>69の質問は、gccで作成されたアプリの資源が生かされるのかどうかの為に聞きました。
よろしく、お願いします。m(. .)m
7269:04/10/04 11:38:37
>>70
すいません。レスを確認しませんでした。
>GNUDEでもできるみたいなんですが、
>elf2modが必要で、正式デベロッパーになるか、
>auのBREWCPになるか、Visual Studio Addin を入れないといけないみたいですね。
なるほど、そうなんですか。gccでも可能ってことですね。
ありがとうございました。
73デフォルトの名無しさん:04/10/04 17:19:33
>>69-72

エミュレータ用のDLLを生成するには、Visual C++相当のコンパイラが必要。
gccがVCと互換性のあるDLLを吐いてくれるのかどうかは知らん。

実機向けにビルドするならgccで問題ないが、>>70にあるとおり、Visual Studioが
入っていないとgcc用のelf2modがインストールできない。

まあ、gccベースのアプリをBREW化するのはコンパイラ以外の問題のほうが多いと思うが...
(グローバル変数、Cの標準関数、浮動小数点演算が全部NG。
C++の機能も制限あり...これはgccだと回避できるのかな?
100%イベントドリブン+シングルスレッドな構造にそのまま移植できるソースなんて
そうないだろうし。)
74デフォルトの名無しさん:04/10/04 22:41:55
まあ武龍の売りはイベントドンブリとかうっへり言語じゃなくて
高速で動く高性能チップと
それようのネットリワーク環境が
ワンセットになっている事らしいから


まあチップの中の人とか小人さんがいくら優秀でも
それに命令を渡すため書類の書き方やら手続きやら用語やらがあれだったら
中の人やら小人さんも働きようがないゃな
75949:04/10/05 14:12:49
質問が御座います。

今朝端末でアプリを立ち上げた所、
「エラーが発生しました(004)」と表示され、
製作中の全てのアプリで同じ現象が
発生している状態です。(⊃△T)
※昨日まで動作していました

エラー004の内容についてお知りの方、
助言していただけないでしょうか?
76デフォルトの名無しさん:04/10/05 14:21:56
>>75
SIGファイルの期限切れ
7775:04/10/05 14:30:33
>SIGファイルの期限切れ
(゚△゚;)
クライアント様に新しいの用意して
もらいまふ…。_| ̄|○|||

>>76
早急なレスありがとうございました。
78デフォルトの名無しさん:04/10/05 16:14:22
_| ̄|〇.oO( IBITMAP_Release2回やらんとメモリ解放されない・・・・)
原因が解かりません。
まさか仕様って訳じゃ無いですよ・・・ね?
一応解放されるけどなんか気持ち悪いです。
どなたか解決法知ってましたら助けてくださぃ。
7978:04/10/05 16:24:52
自己解決しました。
2次配列で取得してました(;´Д⊂)
80デフォルトの名無しさん:04/10/05 17:36:48
>>77
SIGは3ヶ月で切れるから気をつけれ
81デフォルトの名無しさん:04/10/06 14:26:42
前スレでGCCでのビルドについて質問した者です。
makefileアップしてもらってもうまく行かずに悩んでいたが、>>76ではたと気づいたよ。
sig作り直したらうまく行きました(;°д°)

ついでにC++でもHelloWorldレベルでの確認までできたのでフォーラムのほうにアップしますた。
ttp://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=97

みんなありがとう!(^^)!
82デフォルトの名無しさん:04/10/06 23:49:26
武龍で強制的にスリープさせる方法なんてあんのかね?
83デフォルトの名無しさん:04/10/07 01:17:05
>>81
お〜ま〜え〜は〜ア〜ホ〜か〜



まあ、実際良くあることだけどな
84デフォルトの名無しさん:04/10/07 11:27:20
BREWで動く関数ポインタの使い方を教えていただけませんか?
下のに書いた感じで、エミュでは問題なく動いてるんですが、
armコンパイルするとエラーが(⊃д⊂)

switch caseや if else 多用すれば良いとも言うけど…

//キーイベントが発生したら、本関数をコール
KeyEvent(AEEApplet *a, uint16 wParam)
{
void (*key[])(AEEApplet*, uint16)={
KeyEvent_0, //0
KeyEvent_1, //1
KeyEvent_2, //2

};

//共通処理
key[a->JumpNo]; //各関数へジャンプ
};

void KyeEvent_0(AEEApplet *a, uint16 wParam)
{
//個別処理
}

void KyeEvent_1(AEEApplet *a, uint16 wParam)
{
//個別処理
}
//以下略
85デフォルトの名無しさん:04/10/07 22:23:24
リンク時にはまだ関数のアドレスが確定してないから、変数の初期値として
関数のアドレスは指定できないよ。
実行しはじめてからでないと。
8684:04/10/08 00:14:02
なるほど…
つまるところ関数ポインタをメンバ構造体へ突っ込んどいて、
動的に初期化すればOKて事ですか・・?

うーん、そこまでやるならif elseでズラズラ書いた方が良いかなぁ…
ひとまずやってみます。ありがとうございました。
87デフォルトの名無しさん:04/10/08 07:13:45
>>85
それじゃぁ呼び出しもできないね。

>>86
「なるほど」じゃねぇだろ。
8884:04/10/08 08:52:35
armコンパイル時にリンクでエラーが出てたと思ったので、
納得してしまったんでつが…

じゃぁどーすりゃいいんだyp!ヽ(`Д´)ノ
89デフォルトの名無しさん:04/10/08 08:55:28
>>88
「思った」ってなんだよ?
エラーでたならエラーメッセージ貼って質問するのが基本なわけだが、できないのか?
90デフォルトの名無しさん:04/10/08 09:11:51
>>84
>key[a->JumpNo]; //各関数へジャンプ

これに引数は書かないのか?
(*key[a->JumpNo])(a, wParam); ではダメ?

ちなみに関数ポインタは実機でも使えるよ。
リンクも通るし、できた mod もちゃんと動く。
ただ、前の開発では配列にしたら何故かダメだった。
調べるのもめんどくさいので switch で切り分けた (´A`)
91デフォルトの名無しさん:04/10/08 10:14:34
グローバルなポインタの配列?は出来ないくさい。
テーブルのテーブルとかすると叱られた。
92デフォルトの名無しさん:04/10/08 10:59:39
なんかBREWの仕様もさながら
ARMコンパイラが腐ってるのが苦労の原因に見える……外から見てると
93デフォルトの名無しさん:04/10/08 11:56:36
質問です。

通信処理を行った後、少しの間動作が遅くなる
といった現象が起きているのです。
どうもIWEB_GetResponse使った時点から
遅くなってる様なのですが、
同じ様な現象が起こった方アドバイスいただけませんか?

ちなみにソースはこんな感じ↓
http://venus.aez.jp/uploda/dat/upload10830.txt

SDKのサンプル元にしてます。
よろしくお願い致します。
94デフォルトの名無しさん:04/10/08 15:09:39
>>93
とりあえず、ぱっと見の突込み所(遅くなる原因かはわからないけど)

なんでデータ受信時の再読み込み系でCALLBACK_Initを
何回もやっているの?必要だっけか?


たまにしかアクセス行かないアプリなら別だけど
IWebをリクエスト毎に生成するのは何故?
IWebは基本的に使いまわすもの
95デフォルトの名無しさん:04/10/08 17:18:38
>>94
CALLBACK_Initについてはコールバック設定前に行うっていうのはどっかに書いてあったはず・・・。

あとIWebについてだけど
あれって使いまわせないと思うんだが?
IWebはIWEB_Releaseを行わないと切断できないし。

ついでに>>93については分からないなぁ・・・。
俺のときはメモリを細かく取ってたら遅くなったけど。
96デフォルトの名無しさん:04/10/09 00:41:23
>>91
constつけてないだろ。
97デフォルトの名無しさん:04/10/09 23:48:57
ラボで貸してくれるという評価ボードって何ができるの?
ICEつなげてソースデバッグとかできるとありがたいんだが・・・・
98デフォルトの名無しさん:04/10/11 12:26:02
MSのeMbedded VC++4.0でBREW用バイナリは出来ないのかなぁ・・・。
99デフォルトの名無しさん:04/10/12 19:13:16
J2Bトランスレータってどうしたんでしょうね。
10月から始まるって話でしたよね。
100デフォルトの名無しさん:04/10/12 20:11:31
Javaに詳しいトランスレーター用の中の人が思ったより集まらなかったのでは?
どうせ家内製手工業だろうし
101デフォルトの名無しさん:04/10/13 00:47:01
十数秒で変換って書いてあるから、手作業はほとんどないと思いますが、
やっぱりあんまり期待できないですね。
102デフォルトの名無しさん:04/10/13 01:20:38
103デフォルトの名無しさん:04/10/15 09:18:35
ぶりゅっ
104デフォルトの名無しさん:04/10/15 14:46:41
はじめまして。

質問なのですが、機種ごとに違う、画面の大きさを取得できる関数が
あったとおもうのですが。。なんでしたっけ。

それと、横幅は240で固定なのでしょうか。縦は違う??
105デフォルトの名無しさん:04/10/15 15:24:27
>>104
画面の大きさはISHELL_GetDeviceInfoで取得したAEEDeviceInfo構造体に入ってる。
これで機種ごとにサイズを見てみれ。
10693:04/10/16 21:30:20
>>94,95
レスありがとうございます。
試行錯誤しておりますが、現状直らず…。_| ̄|○|||

現状わかった事として
通信終了後(成功失敗に関わらず)、
約1分程で動作速度が元に戻る。(T△T;)
CallBack、タイムアウトのタイマーは開放してるんで、
それ系の不具合では無いと思うのですが…。

引き続き情報お待ちしております…。m(_ _)m
107デフォルトの名無しさん:04/10/16 21:49:15
通信とは関係ないけど、
BREWエミュで文字列リソースだけ読ませるだけの
アプリ作って起動したらやたらとフレームが落ちて重くなったことがあった。
そこで画像も読ませたりすると普通の速度に戻ったりとか。

原因は不明・・スマン
108デフォルトの名無しさん:04/10/16 22:19:16
>>108
>約1分程で動作速度が元に戻る。(T△T;)
見事に自動切断(っていうのか?)の時間レスね

なんか解放し忘れてんのかね
109デフォルトの名無しさん:04/10/18 06:45:07
ところでenraタソはどこ行きましたか?
110デフォルトの名無しさん:04/10/18 23:57:34
pngをメモリから読めますか?APIが見つかりません。
111デフォルトの名無しさん:04/10/19 10:36:37
>>110
メモリから読むなら、IMemAStream -> IAStream
でIIMAGEにストリーム設定すればいけんでない?
112デフォルトの名無しさん:04/10/19 12:38:15
JavaとBREW:
混同してはならない2つの技術の性格
http://www.mainichi-msn.co.jp/it/coverstory/news/20041018org00m300052000c.html
■■将来は「Java on BREW」か
113110:04/10/19 20:57:46
>>111 できました。ありがとうございます。
114デフォルトの名無しさん:04/10/19 23:42:12
とりあえずンニーでカメラ動かそうとすると大変だな

ところでカメラエンコードが失敗したときって何で判定すんの?
115デフォルトの名無しさん:04/10/20 13:04:42
>114
よくわからんけど、戻り値を調べるなりできたファイルをチェックするなりすればいいんでは?
116デフォルトの名無しさん:04/10/20 18:56:17
エミュレータのソフトキーはキーボードから操作できないのでしょうか。
[*]キーはテンキーの'*'
[#]キーはテンキーの'.'
[クリア]キーはBS
[電源]キーはESC
に対応してました。
117デフォルトの名無しさん:04/10/21 18:02:00
HTTP接続した後、1分ぐらい別の作業(画面更新とか)したあとに
再度HTTP接続すると、毎回Response code -1200とか返るんですが

これはエミュだから?実機でもそう?もしくはサーバー?
118デフォルトの名無しさん:04/10/21 19:02:04
ファイルの読み書きなんですけど、
実機ではうまく動いているのにシミュレータでは
IFile_Writeの戻り値が0になってしまいます。
どぉすればいいですかね?
ちなみにIFILEMGR_GetLastErrorの戻り値はEFSFULLでした。
ファイルシステムに空きがないという事だったのですが、どういう意味でしょうか?
またこの場合、どのように対処すればいいのでしょうか?
119デフォルトの名無しさん:04/10/21 19:12:49
120デフォルトの名無しさん:04/10/21 22:54:14
1ヶ月も前の話になるけど、ゲームショウで
BREWのゲームって出てなかったよな。
KDDIのブースでもマルチマッチングのPS2のゲームがあっただけだし…
121118:04/10/22 10:18:23
>>119
有難うございました!無事解決しました。
122デフォルトの名無しさん:04/10/22 10:42:12
先日BREWをはじめました。
CGI連携について教えてください。
IWebインターフェイスでCGIに連携する時
仕様書のサンプルのようにGetLineで取得すると、テキストデータ以外がとれません。
バイナリ-データを取得するにはどうすればよいのでしょうか?
GetLineでは取れないのでしょうか?
123デフォルトの名無しさん:04/10/22 11:11:12
>>122
ISOURCE_Read

WebRespInfoのpisMessageはISource
のインスタンスだべ

サンプルにあったような・・
124デフォルトの名無しさん:04/10/22 11:32:06
ありゃ、漏れIPEEK_Read()でやってたよ>バイナリの読み込み
まぁ動いてるからいいんかな・・・
125122:04/10/22 12:53:34
う〜ん、うまくとれませんorz
CGIから
Print"abc";
なら取れるのに、
print pack("c", $status);
だと
とれません...
なにか必要な設定などありますか?

126デフォルトの名無しさん:04/10/22 13:24:49
>>125
HTTPヘッダとボディのデータを一度モニタした方が
良いんでは?
127123:04/10/22 14:02:35
>>125
ごめん。ファイルリソース取得はそれでOK
だったけど、昔cgiでバイナリ出力したときは
漏れもエラーになってた気がする orz

BREW側のHTTPヘッダの解析でまずいことでもして
るのかね?


公式で聞いた方がいいかも
128デフォルトの名無しさん:04/10/24 01:05:29
BREWプログラミング実践バイブル
のサンプルプログラムなんですが、エミュレータで動作確認はできないんですかね?
やっぱりdllファイルがないとだめですよね。dllファイルを作るまでの知識がないもんで・・
129デフォルトの名無しさん:04/10/24 01:36:07
何がしたいのかはよくわからないけど、
アプリが無いとエミュレータで動作確認はできないねぇ・・・

そういえば、開発者で実戦バイブル買った人っているのかな?
130デフォルトの名無しさん:04/10/25 01:20:04
>>129
サンプルをDLしたんですけど、エミュレータで確認したいんですよぉ。
・゜゜・(≧д≦)・゜゜・。エーン!!
DLしたファイルの中にはmif、bid、ソースファイルなどはあるのですが、dllだけないんです。
vc++でコンパイルしてdllを生成するまでの手順がわからないので、困っています。
sdk ver2.1を使っています。
どなたか教えてください。
131デフォルトの名無しさん:04/10/25 01:50:02
 ARMコンパイラーはあるんですか?
 自分もサンプルをエミュで動かしてみたいんですが、
ARMコンパイラーないし、Visual Studioもないし‥。
開発だけなら無料でできるって聞いたのに・・・。orz
132デフォルトの名無しさん:04/10/25 04:09:19
>>130
dllの作り方はBREWと関係なしにVC++のマニュアルとか検索で調べるとか。

>>131
エミュレータで動かすならARMコンパイラは不要。
VisualStudioでなくてもVisualC++.NETでも可。Cのソースからdllが作成できればいい。
無料でできるのはBREW SDKのインストール。
133131:04/10/25 05:45:31
>>132
すいません。根本的なところで勘違いしてたみたいですね。
ありがとうございました。やってみます。
134デフォルトの名無しさん:04/10/25 06:05:58
>>132
 ちゃんと動きました!ありがとうございました!
135デフォルトの名無しさん :04/10/25 11:13:26
>>134
エミュレータで、確認できたんですか?やっぱりdllを生成してですか?
136131:04/10/25 11:45:15
エミュで確認できましたよ。dll作りました。
FakeRPGのdllのサイズ400kbもありますけどね。
137デフォルトの名無しさん:04/10/25 11:46:50
「BREWプログラミング実践バイブル」にSDKのインストール方法から、
VC++を使ってdllの作成方法にエミュの起動方法まで載ってるのに、
喪前は一体何を聞きたいんだ?
138デフォルトの名無しさん:04/10/25 14:03:36
BREWにて
Graphics2.setRenderMode()
みたいなことができる関数ってあるんでしょうか?

javaアプリの移植は、結構大変ですねぇ
139デフォルトの名無しさん:04/10/25 16:32:49
BREWアプリのプログラム領域とデータ領域ってどのくらいの大きさなんですか?
ググってもそれらしき情報が見当たりません・・
DLできる最大のデータ量が600KBみたいな事は書いてあったんですが。
140デフォルトの名無しさん:04/10/25 16:52:57
>>139
600KBってのはCDMA 1X WINのみ。
それでQVGAの機種が300KBだっけ?
その他はどうだったか忘れた。
141デフォルトの名無しさん:04/10/25 17:15:14
>>139
端末仕様書とかはKDDIのConfidential扱いだから
ググっても見つからないかも。
142デフォルトの名無しさん:04/10/25 19:41:59
>>137
たぶん、本を買ったんじゃなくて、
ネットで公開されてるサンプルプログラムだけを落とした方だと思います。
自分もそうなので。
143デフォルトの名無しさん:04/10/25 21:41:48
半透明ってできないの?
JAVAのPhase3の時はスプライトで半透明をつかってフェードしたので
同じことやろうと思って調べてんだけど・・・
ISpriteにもないみたい・・・
だれかヒントください
144デフォルトの名無しさん:04/10/26 00:30:25
残念ながら、半透明は非サポート。
将来的にサポートが予定されているんだっけかな・・?

どうしてもやりたいなら、DIB直接弄るしかないんでないの?
145デフォルトの名無しさん:04/10/26 00:47:35
最近アホが多いな
146デフォルトの名無しさん:04/10/26 12:08:31
とりあえずソースを複数に分けるときってどんな風にやってる?

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

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

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

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

工エェ!!!
150143: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のに載ってなかったっけ?バージョン書いたほうがいいよ
162160: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;
}
165160: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;
}
}
166160: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じゃないの?
168160: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を計算で渡すというなら明示的にキャストすれば
とりあえずコンパイルは通る。
174172: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);

とゆーかんじだ。参考にならなかったらごめんな!
176160: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
183169: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
舞竜はメモリの許す限り読み込めるんじゃねーの

いや知らんけど
189187: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言語ではローカル変数は最初にしか宣言できないぞー。
194192:04/11/01 18:40:32
>>193
あなるほど!
VC++っていうからC++もOKかと思ったけど、
ARMのコンパイラのこと考えるとC++ダメなんだな。
早速の指摘ありがとう
195192:04/11/01 18:45:33
BREWのソースのテンプレートのコメントが//だったんで
すっかりC++が使えるものと勘違いしてました。
196デフォルトの名無しさん:04/11/01 19:29:13
いや、BREWはC++でも開発できるが。
197192:04/11/01 21:21:34
>>196
ARMのコンパイラC++スタイルでもOKということか?
198196:04/11/01 21:25:02
俺はg++使ってるからなぁ…。
ARMコンパイラは上司に触らせてもらってないから何とも。
GCCで十分というウワサ。
199187: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書くのがマンドクサ。
ttp://www.stlport.org/
205デフォルトの名無しさん:04/11/02 16:24:03
>>204
後で後悔しないように気を付けれ
206204: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
----------------------------------------
207204:04/11/02 21:06:44
とりあえず、英語フォーラムにお住まいのエロい人がずばっと解決してくれるのを待つか。。。
ttp://brewforums.qualcomm.com/showthread.php?t=6362
208デフォルトの名無しさん:04/11/03 10:44:30
会社名(というか大学名)をちゃんと入れたけどSDKダウンページのInstallを押すと
SDK ACCESS ERROR言われる。゜(゚´Д`゚)゜。

Release NoteやらUpdateは落とせるのに何故…
209デフォルトの名無しさん:04/11/03 10:58:37
>>208
ブラウザの設定じゃないの? 同じような質問が過去レスにたくさんあったよ
210208: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のファイルはそのまま使える
220218:04/11/04 11:38:38
>>219
下記のプラグインとかはいれる必要ないんですかね?
ttps://www.mascotcapsule.com/toolkit/kddi/tool.html

・・・モデル描画はAPIとかありましたっけ?
もしかして・・・、座標データを使って3Dモデル描画しましょうw
って感じですか?
221デフォルトの名無しさん:04/11/04 16:01:23
AEEAppletで作るアプレットのメンバを
グローバル変数のかわりに使おうかとしてるんだけど、
これってサスペンドから復帰したときに初期化されちゃうよね?

藻前らサスペンド時にdbに書き込んだり
ファイルに保存したりとかやってるの?
222204:04/11/04 16:55:00
ファイルに保存した方が良いんだろうけど、俺はメモリに放置しっぱなし。
EVT_APP_STOPの時に解放してる。

まぁ、解放できそうな物はSUSPEND時に解放してRESUMEで復元してるけど。
223221:04/11/04 16:59:38
>>222
え?サスペンドから復帰したとき初期化とかされないの?
エミュで実験してるけど0で初期化されてるような気がするけど
224221: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
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
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.)とか無いのかなぁ。
まったく、ふしだらな。
248204:04/11/08 15:20:26
http://brewforums.qualcomm.com/showthread.php?t=4911
結局のところ、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

てか標準フォントサイズのバラバラ加減もどーにかして欲しいもんだがナー
258249:04/11/09 11:43:34
皆様どうもです。やっぱり手書きなんですねーうーむ。

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

ISHELL_CloseApplet()は必ず必要?
259デフォルトの名無しさん:04/11/09 11:52:51
>>249
俺はトップメニューに「終了」項目つけて、それでCloseAppletするようにしてる。
全部の画面から終了できるようにする必要はないんじゃないかな?
まぁまだ検証出してないからわからんが・・・。
260259: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 関数が使えるとか)。
263249:04/11/09 14:00:18
>>259-261
なるほどサスペンドなんかを考えなければいけなかったんですね。

ありがとうございました!
264デフォルトの名無しさん:04/11/09 15:40:20
>>256-257  少しばかりの一覧表  外出か?
http://www.au.kddi.com/ezfactory/tec/spec/4_5.html
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 ディベロッパー ラボ 無料
http://www.brewjapan.com/lab/index.html
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
タイマーコールバックを短い間隔で回すとキーイベントが来ないことがあるってなかったっけ?
274271:04/11/11 16:50:35
>>273
ん〜タイマーは数秒以上でしか使ってないからわからん。
後は任せた。
275267: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拾う必要なくね?
280267: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開発ツール
http://www.itmedia.co.jp/mobile/articles/0411/16/news043.html

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

キタ━━━━(゚∀゚)━━━━!!!!
312デフォルトの名無しさん:04/11/16 15:13:28
日立ソフト:アプリケーション開発フレームワークanyWarp
http://hitachisoft.jp/anywarp/
313デフォルトの名無しさん:04/11/16 15:18:53
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分でガッされるのか・・・
319315=316:04/11/16 16:09:19
すみません、315書いてリロードしたらすぐ上のカキコが目に入ったもので脊髄反射で...。
320310:04/11/16 16:12:17
ぬるぽで終わらせたいんですが
メッセージ出してうんぬんかんぬん。。。だとかなり直さないといけないので
どうしたものかと思ったのですが〜

やはり地道に書くしかないみたいですねー
321315=316:04/11/16 16:25:36
>>320
今度もガッ

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

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

MALLOC以外にも、動的にメモリ確保する箇所は山ほどできるぞ。
つーかpngなりjpeg使う時点でヒープ使うし
323310: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では断じてない)は最初に用意しておく、が正解。
最初にそれすら確保できないようなケースは知らん。
326310: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って、文字の横幅は固定なのでしょうか?
固定っぽいけど、それは機種依存になるのかな?
今後、それは変わらないのでしょうか?

だれか教えてください  ペコリ
328327:04/11/16 19:22:50
言葉足らずなので追記
可変長フォントなんてのがあり得るのか、知りたいのです。
329デフォルトの名無しさん:04/11/16 20:28:12
固定ピッチかプロポーショナルかってことなら、固定ピッチだ。
また、LARGEは何ドット、NORMALは何ドット、という規定値もない。
具体的なドット数は機種によってバラバラなので端末仕様書で確認する。
330327:04/11/16 20:58:32
>>329
ありがとう。
今後、プロポが導入されたとして、
デフォルトがプロポになると困るなぁ・・・って思ってたんだ。
331デフォルトの名無しさん:04/11/16 21:34:12
332デフォルトの名無しさん:04/11/16 23:05:46
>>302
>エンドキー=終話キーで、多分あってると思う。
そうですよねthx。
でも検証のPDFのどっかのページに終話キーと
エンドキーが同じページに書いてあるんでつよ

検証の方法も検証してくださいこのバグヤロー
333デフォルトの名無しさん:04/11/17 00:32:45
>>326
MALLOCを生で使うつもりなのか?
やめておくべきじゃないかと。
334デフォルトの名無しさん:04/11/17 00:38:52
>>333
ゴムつけないとダメ?
335デフォルトの名無しさん:04/11/17 00:52:42
>>333
使わないか?
336デフォルトの名無しさん:04/11/17 01:25:43
>>334
ええ。何か(変な中断とか)あった時、(1つ1つ解放する)セキニンとるのは鬱陶しいしー
337310:04/11/17 11:16:17
えーじゃぁゴム付きってどう書くんですか?
338デフォルトの名無しさん:04/11/17 12:25:19
>>337
typedef struct _MyData {
 char* hogedata;
 char* foodata;
 ...
} MyDatal;

アロケートした領域は↑みたいな奴(開始時は0で初期化)に覚えておいて、
ヤバイときにまとめて開放する関数を用意しておくようにするだけ。
実行途中で細かくアロケートが必要な場合は、
最初にまとめてMALLOCした中から自力で切り出すのも大アリ。
(実行途中で「メモリが足りません」なんてかっこ悪杉)
339デフォルトの名無しさん:04/11/17 13:11:57
男なら生だろ!
340デフォルトの名無しさん:04/11/17 13:23:18
>>332
大半が使えないキーコード一覧見ると、「AVK_END」と「AVK_POWER」と別にあるよ。
エミュじゃ終話キー押したら即アプリ終了して、キーイベント発生しなかったけど。
端末仕様書には、この点何も書いていない。

つまるところ、「使うな」と言っているように思えるんだが…
使う必要あるの・・?
341310:04/11/17 13:25:16
大変参考になりました。ありがとうございます。
342デフォルトの名無しさん:04/11/17 14:15:27
>>340
プログラミングガイドのわかりにくい場所に書いてなかった?
EVT_KEYのイベントをきっちりかけばいいはず
343デフォルトの名無しさん:04/11/17 18:42:19
byte a;

while(flg)
{
  a = MALLOC(1);
  FREE(a);
}
344デフォルトの名無しさん:04/11/17 18:58:56
>>343
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |        J
/     ∩ノ ⊃  ヽ
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
345デフォルトの名無しさん:04/11/17 19:30:18
終話キーのキーコードはアプリに通知されないので
割り当てられたAVK_XXXの値を意識する必要はない。

終話キーを押した場合、アプリにはEVT_APP_STOPイベントとして通知されるので
そこからアプリの終了処理を呼んでおしまい。
従ってEVT_KEYイベントで「終話キーが押された場合は…」といった処理は書かない(書けない)。

蛇足だが終話キーはキーリピートも発生しない。

>>344
パクッと行け!パクッと!
346344:04/11/17 20:16:07
>>343
              \   ∩─ー、
                \/ ● 、_ `ヽ
                / \( ●  ● |つ
                |   X_入__ノ   ミ   a = MALLOC(1); でコンパイルエラー ・・・
                 、 (_/   ノ
                 \___ノ゙
                 / 丶' ⌒ヽ:::
                / ヽ    / /:::
               / /へ ヘ/ /:::
               / \ ヾミ  /|:::
              (__/| \___ノ/:::
347デフォルトの名無しさん:04/11/17 21:08:42
>>343
         \   ∩─ー、    ====
           \/ ● 、_ `ヽ   ======
           / \( ●  ● |つ
           |   X_入__ノ   ミ   それと無限ルークマ――
            、 (_/   ノ /⌒l
            /\___ノ゙_/  /  =====
            〈         __ノ  ====
            \ \_    \
             \___)     \   ======   (´⌒
                \   ___ \__  (´⌒;;(´⌒;;
                  \___)___)(´;;⌒  (´⌒;;  ズザザザ
348デフォルトの名無しさん:04/11/18 18:57:53
>>345
訂正ありがと。カンチガイしてた。
つーかまたBREWやりたいんだけど、しばらくできそうにないや
349デフォルトの名無しさん:04/11/19 12:35:15
BREW2.1で3Dをする場合は何が必要になるのですか?

OpenGL ESは3.0からですよね?
2.1だとI3Dを使うと思うんですが、どこにもstruct _I3Dの実体が見つからないのですが。
350デフォルトの名無しさん:04/11/19 13:19:43
ちとすまん、機種依存情報って何処らへんに載ってたっけ?
いつしかExcelの資料見た覚えがあるんだが…手持ちに無いOrz
どうもA5505SAでIDISPLAY_MeasureText()が正常な値を返して来ないっぽいんだが。。。
351350:04/11/19 13:42:07
解決しますた。
どうも全角でも半角の幅が帰ってきてるっぽいんで、
半角のサイズ×2で誤魔化した。
他の機種は大丈夫だったかな… 何か情報あったらお願いします。
352デフォルトの名無しさん:04/11/19 15:05:34
>>349
I3Dをサポートする端末は国内に無い
なお、I3Dは"AEEINTERFACE(I3D)"というマクロで定義されている

OpenGL ESは別にBREWのバージョンとは関係なく端末でライブラリを実装すれば
2.1でも動く
しかしいずれにせよエイチアイのMascot CapsuleがBREW上に実装されている以上
これらのライブラリを直接呼ぶ必要性は普通は無い
353デフォルトの名無しさん:04/11/19 18:42:02
>>352

つまり、現状で3Dを使ったアプリを作る場合は
Mascot Capsuleを使うしかなようですね。
ありがとうございました。
354デフォルトの名無しさん:04/11/19 20:00:15
>>350
A5505SAでIDISPLAY_MeasureText使いまくりのアプリを
作ったけれど、そんなバグはなかったし、検証も通ったよ。
他機種でも同一バイナリで問題なく動いているしなあ。
355デフォルトの名無しさん:04/11/19 20:32:47
>>350
俺もA5505SAでIDISPLAY_MeasureText使ってたけど検証は通ったよ。
自分で実機では見てないけど変なとこあったら言われてるだろうし。
違うところに原因があるんじゃないかなぁ・・・。
356デフォルトの名無しさん:04/11/19 20:37:08
>>350
ついでだけどA5505SAの機種依存でIDISPLAY_MeasureTextのはなかった。
357デフォルトの名無しさん:04/11/19 22:55:16
まさかAECHAR型を渡してないってオチじゃないよな?
358350:04/11/19 23:10:22
あれれ・・? ソース抜粋してみる。

int fontW, fontH;
AECHAR str[] = {'※', '\0'}; //※…全角一文字

fontH = IDISPLAY_GetFontMetrics(a->m_pIDisplay, AEE_FONT_NORMAL, NULL, NULL);
fontW = IDISPLAY_MeasureText(a->m_pIDisplay, AEE_FONT_NORMAL, str);
DBGPRINTF("フォントサイズ:H=%d,W=%d", fontH, fontW);

これだけなんだが、出力結果はH=18、W=9だった・・・

エミュ、A5506T(だったはず)では正常な値が帰ってくるのを確認済み。
なので機種依存かと思ったんだが・・・
プログラミングガイドの何処か見落としたヨカーン
359350:04/11/19 23:20:47
追伸。
strの定義からfontH求めるまで20行ほど省略してるが、この間変数には一切触れてない。
'※' を全角スペースや、他の全角文字も幾つか調べてみたが軒並みアウト。
ついでにIDISPLAY_MeasureTextExも試してみたが、結果は同じく9ピクセルが帰ってきた。

で、半角文字を入れても9ピクセルが帰ってきたんで、それを2倍して対応しますた。
ここで取ったフォントサイズを元にメッセージボックスやら何やら作ってたんで致命的だったのよTT
360デフォルトの名無しさん:04/11/20 00:39:33
>AECHAR str[] = {'※', '\0'};

チカラ抜けたよ… ダメに決まってんだろー
361350:04/11/20 01:16:37
何が悪いのかわかってないんで、ダメな理由教えていただけると…
362デフォルトの名無しさん:04/11/20 03:22:03
プログラミングガイドやAPIリファレンスで文字列描画について再確認するとともに
この辺を見るのもいいかと。
http://www.itmedia.co.jp/mobile/0311/14/n_bapp.html
363350:04/11/20 13:48:54
あー、なるほど。
先の初期化方法だと、全角文字はバイト列逆に入力されちゃうのか。
いやむしろAECHARが逆に扱ってるというべきか…
デバッグ出力でも確認できたんで納得した。
S5506Tもエミュもタマタマ動いていただけっぽいな。

ご迷惑おかけしますた。
364350:04/11/20 13:50:34
書き忘れ。
>>360,362
夜遅くまで付き合ってくれてサンクス。
助かったよ〜
365357=360=362:04/11/20 14:40:32
>>350 なにかと面倒なことは多いけどがんばれー
366デフォルトの名無しさん:04/11/21 03:09:13
367デフォルトの名無しさん:04/11/22 11:22:40
IMEDIA_SetAudioDevice(pMe->m_pMedia, AEE_SOUND_DEVICE_CURRENT)で
EUNSUPPORTEDが帰ってきます。

これを設定できなくても一応実機エミュともに正常っぽく音がなっているので
ほったらかしてるんだけど、まずいですか?

しかしSDKドキュメントのIMEDIA_SetMediaData()と
IMEDIA_SetAudioDevice()の説明って何で同じなんだ・・・
368デフォルトの名無しさん:04/11/22 12:07:00
>>367
設定しなくていいんじゃね?

KDDIの事前検証チェックシートには
AEE_SOUND_DEVICE_CURRENTか指定しない状態にしろって
書いてあるっぽい。
369デフォルトの名無しさん:04/11/22 14:12:35
>>368
ありがとうございますー。心置きなく無設定にすることにします。
370デフォルトの名無しさん:04/11/22 15:07:37
371デフォルトの名無しさん:04/11/22 17:12:26
>>363
つーかエンディアンがどうこう言う前に、AECHARの中身の文字コードは端末依存だぞと。
ちゃんとSTREXPAND使って変換しないと危険だと思うが。
372350:04/11/22 17:47:00
>>371
心配かけて申し訳ない。
>>358のソースは文字サイズ取るためだけに使ってるんで、ああいう初期化をしただけ。
なので他の場所ではSTREXPAND()使ってるから問題なし。
今はISHELL_LoadResString()で遊んでます。
373デフォルトの名無しさん:04/11/24 11:50:52
>>371
いやそれでも問題だと思うが。
SJISで全角コードを設定してもそれが半角文字になってしまう可能性は否定しきれないだろう。
まあ固定ピッチフォントである保証もないので、突き詰めると色々問題ありな分けだが。

特定の端末でうまく動けば良いということなら止めはしないが、個人的にそういうのは余り好きじゃないな。
#そういう考え方で作られたプログラムを別プラットフォームにコンバージョンするという仕事を何度もやらされたんで
374350:04/11/24 15:21:45
>>373
多分>>372のアンカーミスだよな・・・
対処は351に書いたが、全角のsjisコード書いたなんて言った覚えは無いぞ。
固定ピッチでなくなったケースなんぞ知らん。

てかそういう仕様なんで、こちらとしてはどうしようもない。
別プラットフォームも最初から想定していないから大丈夫だと思う。
そう思いたい ○| ̄|_
375デフォルトの名無しさん:04/11/24 18:41:39
武竜を使いこなすには約五年間に渡る苦行を修める必要があります
376デフォルトの名無しさん:04/11/24 19:09:46
武竜って生まれてどれくらい経ってるっけ・・?
377デフォルトの名無しさん:04/11/25 13:28:46
>>374
ごめ、アンカーミスってたね^^;

>AECHAR str[] = {'※', '\0'};
って普通にWindowsで書いてコンパイルしたらSJISコードが入ると思うが。
で、エンディアンの修正とかやってもコードは変わらないと思う。
普通にchar配列として初期化してSTREXPANDしたほうがいいと思うよ。

>固定ピッチでなくなったケースなんぞ知らん。
現状は存在しないと思うが、将来にわたってそうだという保証は無い。
まあ、おまいさんが今動けばよいというのは良いのだが、想定以上に長いことソースが使われることは良くあること。
で、現状ではOKって考えで作られたソースを後から直す羽目になる人のことも考えといたほうが良いぞというのが漏れのアドバイス。
#結局自分で治す羽目になることだってあるわけだし

つまるところ、サブルーチン一つ作って、常に描画文字列の幅を測定してから適切な位置に描画するようにすれば良いだけだし。
そういうのがスマートなコーディングだと漏れ的には思うが。

まああくまで私見なので、気に入らなければ無視してつかーさい。
378350:04/11/25 17:09:33
言っている事には全く同意なんだが…
AECHAR str[] = {' ', '\0'}; //←半角スペース
こうした。
'※'を表示したいんじゃなくて、全角文字の幅が欲しかっただけなので、
半角で得た幅に2を掛けておしまい。
…とはちゃんと書いてなかったか、説明不足スマソ。
他の箇所は先にも書いたとおりSTREXPAND使ってる。

で、何故この幅が必要かというと、
画面サイズと文字サイズを基準にテキストボックスを作ってるから。
テキストボックスの画像はバラバラのパーツなので、これを基準には出来ない。
画面サイズのみ基準に計算すると半角文字が1文字はみ出る可能性があるので、
それを予防する為の全角文字サイズ確保ってトコなんですわ。

固定ピッチでなくなると、この仕様そのものが使えなくなる。
と言うか半角1文字のズレを許容範囲とするなら、このままでもほぼ問題ない。

画像サイズ基準にして画像差し替えだけで対応できるのがベターなのかもしれないが、
漏れの力ではこれ以上の仕様変更は無理○| ̄|_


関係ないが
>無視してつかーさい
何便?
379デフォルトの名無しさん:04/11/25 17:59:13
>>377
諸々わかってて「でも今回のこの仕様ならこれでOK」って感じで例外的なコードを書くのは
構わないんじゃないか?固定ピッチかどうかなんて画面デザインにもはねるんだから、
現状の端末を仮定して当然だと思う。

ただ、>>358 のコードはそういう判断の結果出てきたものでは全くないし(現に正常動作しない)、
これがたまたま動いてしまう環境もあるあたり性質が悪いかも・・・

>>378
依然としてエンディアンに依存するコード・・・でも普通は動くだろうけど。
AECHARの半角のコードに自然じゃないエンディアン使う端末ってあまり想像できないし。
一行 STREXPAND 書くだけでLEでもBEでもShift_JISでもeuc-krでもgb231でも動くのに・・
コードサイズがキツキツとか?極小の中の人かな。
380350:04/11/25 19:02:09
そもそもHelloBrewでああいう初期化がされているので、
諸悪の根源と思っていない
&1バイト文字でエンディアンに依存にするケースが想定できない
&無駄と思えるコードは最小限に抑えたい(趣味)
というのが変更したくない理由。

何かトラブルメーカーみたいなんで、素直にSTREXPANDに変更しときます。
まだちゃんと納得してないけど…
ご迷惑おかけしますた。
381デフォルトの名無しさん:04/11/25 19:20:30
>>378
結局半角x2にしたんならそれほど問題はないと思う。
#とはいえ特に問題なければSTREXPANDしといたほうがベターだとは思うが
この部分が分からなかったので「全角コードでのAECHAR初期化は危ない」と言いたかっただけだから。
固定ピッチ依存についてもそういった理由があるのならまあ現状仕方ないかと思う。

>>379
>諸々わかってて…
程度の問題だろうね。
上でも書いたように、半角ASCIIでAECHAR初期化とか固定ピッチ依存とはいえクリティカルでない
のなら漏れもそれで良いと思うよ。
いまやってる仕事で端末性能に依存したゲームのコンバージョンやらされてて、動きが早すぎるとか言われ、
「じゃあ理想FPS教えて」と言っただけで逆ギレされたりしていたんで、端末依存に過敏に反応しちゃったかも。

>一行 STREXPAND 書くだけで…
同感。
ちなみに漏れはC++使ってるんで、文字列クラス作って自動変換されるようにしてる。
382デフォルトの名無しさん:04/11/25 23:08:47
BREWを実機に落とせるようにするにはKDDIに認められなきゃならない事はわかったけど
一体いくらかかって、どういった壁があるんでしょうか?
383デフォルトの名無しさん:04/11/26 01:05:31
ほしゅ
384デフォルトの名無しさん:04/11/26 17:55:33
>>382
ケーブル2000円
ARMコンパイラ15万円
KDDIに企画申請プライスレス
385デフォルトの名無しさん:04/11/26 18:36:34
>>382
検証3回目からは20万円(税別)
386デフォルトの名無しさん:04/11/26 19:11:47
>>385
検証2回までは無料、3回目でブラックリスト?
387デフォルトの名無しさん:04/11/26 19:33:32
提出するバイナリはちゃんとARMコンパイラ買ってコンパイルしないといけないんでしょうか。
388デフォルトの名無しさん:04/11/26 21:07:57
>>386
GCCでもおけぃ。
ただしモジュールサイズでかめ気味になるかも。
389デフォルトの名無しさん:04/11/26 21:08:36
おぅ388は
>>387でした
390デフォルトの名無しさん:04/11/26 21:56:49
>>388
 ありがとうございました。GCCで行きます。
391デフォルトの名無しさん:04/11/27 20:36:28
CPとしては検証に落ちることそのものが論外、理由は開発支援サイト見れ。
たとえ発売時期が遅れたとしても、可能な限り完璧にしておこう。
392デフォルトの名無しさん:04/11/28 02:54:49
は?
393デフォルトの名無しさん:04/11/28 12:23:48
しおりないのはやっぱつらい・・。
394デフォルトの名無しさん:04/11/29 08:22:47
エミュレータで起動中にMemory クラプション?クランプション? 
エラーというのが発生してリセットされます。

これってどういう時に起きるエラーなんでしょうか?( ´・ω・`)
395デフォルトの名無しさん:04/11/29 11:18:54
>>394
メモリ壊してる(確保していないアドレスに書き込んでる)ってことじゃないかと。
#メッセージは詳しく覚えてないけど
396デフォルトの名無しさん:04/11/29 12:09:05
エラーメッセージは忘れたがエミュレータ起動中のエラーならこういう可能性も。
− mifはあるけどdllがない
− mifとdllを置くフォルダ構成が正しくない
− mifとdllでファイル名が違う
397デフォルトの名無しさん:04/11/29 12:17:52
>>395-396
ありがとうございました。

>>396
確かに何かを壊しているんじゃないかという雰囲気はしてました( ノω・`)

>>396
そういう場合も発生するエラーなのですか・・・。

今回の場合、アプリにある機能を増やすまでは発生せず、
追加した関数(配列を頻繁に使用している)で発生してるっぽいので、
どうも配列外にはみ出して読み書きしている可能性が多そうです。
398396:04/11/29 16:03:51
>>397
いや、「エミュレータで起動中に」とあったのでメニューからアプリを選んで
起動したとたんに起こるエラーを挙げてみただけ。
>>397を見るとどうやらアプリ「実行中」のエラーのようだから>>396のことは無関係だ。
399デフォルトの名無しさん:04/11/29 16:42:38
>>397

>追加した関数(配列を頻繁に使用している)で発生してるっぽいので、

ちなみに、実機ではスタックがかなり小さいのである程度で買いサイズの配列を
スタックに採っているとリセットかかる。
MALOC等でヒープに確保しないとダメ。

ただ、エミュではそんなこともない(普通にWindowsのスタックサイズ制限になる)
ので原因はそこではないと思うが。
原因であろう関数がほぼ特定できているなら(そしてエミュで問題が発生するのなら)
普通にステップ実行すればどこでおかしくなっているかは分かると思うが。
400デフォルトの名無しさん:04/11/29 18:24:05
>>399
重ね重ねありがとうございます。

心当たりの関数は、ヒープに確保してあるデータテーブルから
ループで順々にデータの読み書きをしていくものです。

何かの変数が、ある範囲のとき、どこかのテーブル参照で
ループオーバーかデータ取得異常をおこしてる予感が
ひしひししています。

虫の生息域はきっとその関数内なので、地道に虫探しに行ってきます。
テーブル多いよ大きいよ ○| ̄|_
401デフォルトの名無しさん:04/12/01 01:10:15
APIのドキュメントを読んだけど、
スレッドの生成方法がよくわからない。
どうやって生成するのか知ってる人教えてください。
402デフォルトの名無しさん:04/12/01 01:16:11
>>401
2.1じゃサポートしてないんじゃなかったっけ?

フォーラムに載ってた気がする。一度確認することを
勧める
403ロロ:04/12/01 01:42:50
>>402
2.1 でスレッド使えるよ。undocumented だけど。
2.0 は使えない。
404デフォルトの名無しさん:04/12/02 12:55:37
// goto使えるんだね
hage:
goto hage;
405デフォルトの名無しさん:04/12/02 18:51:14
JPEGファイルの縮小表示を行いたい場合って、やっぱり

JPEG ファイルを IImage として読込
-> IImage のサイズを調べる
-> 同じサイズの IBitmap(1) を作成
-> IDisplay のレンダリング先を上記 IBitmap(1) に設定
-> IImage_Draw() を使用して IBitmap(1) に描画
-> 目的のサイズの IBitmap(2) を作成
-> IDisplay のレンダリング先を上記 IBitmap(2) に設定
-> IGraphics_StrechBlt() を利用して、上記 IBitmap(2) に描画
-> IDisplay_DetachDestination() とか IBitmap_Release() とかとか

こういうかったるいことをやらなくちゃどーにもならないのだろうか。
406405:04/12/02 18:56:27
う〜ん、ほんのちょっとだけ ITRANSFORM_TransformBltSimple() の方が楽そうだなぁ・・・
407デフォルトの名無しさん:04/12/02 22:17:28
>>405-406
IGRAPHICS_StretchBlt()に指定できるビットマップソースはIBitmapやIDIBではなく
WindowsBitmapなのでこの目的には使えません。
# IDISPLAY_BitBlt()はIBitmapやIDIBをとりますが。
なのでITransformを使うしかありません。

ちなみにIGRAPHICS_StretchBlt()はバグありなのでその意味でも使えません。
http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=237
408デフォルトの名無しさん:04/12/03 01:11:56
Blt周りは特にグッチャングッチャンの設計だな。
409デフォルトの名無しさん:04/12/03 11:02:54
エミュレータの出力ウィンドウに表示される
警告の意味がわかりません。
↓の内容なんですがどなたかわかりますか?
アプレット起動したときに表示されます。

WARNING: App Callback Pending(数字)
410デフォルトの名無しさん:04/12/03 18:39:32
ファイルシステム残量チェックと
ヒープ残量チェックって関数あります?
411デフォルトの名無しさん:04/12/03 21:00:57
IFILEMGR_GetFreeSpace
IHEAP_GetMemStats
412デフォルトの名無しさん:04/12/04 02:31:40
JavaアプリをBREWに移植中。描画方法でアドバイスが欲しい。

このJavaアプリは処理ループごとに差分描画で画面を描いている。
BREWでサスペンド→リジュームが起こったとき、差分描画の方法では
サスペンド発生時の画面全体の描画内容が復元できない。

サスペンド発生時に画面内容を、画面と同サイズのビットマップに描画、
リジューム時にそれを画面に描画し直せば元通り…と思って試したら
サスペンドに入るときの砂時計マークまで描画されててダメ。
(サスペンドが発生すると、まず端末側が砂時計を描画して、それから
 アプリにサスペンドが通知される模様)

サスペンド時の画面を復帰させるのに、皆さんはどうやってますか?
1.差分描画しないで常に画面全体を描画している。
2.オフスクリーン(画面サイズのビットマップ)を用意してそこへ
 描画(差分描画)、それ全体を画面(デバイスビットマップ)へ転送。
 …これだと文字を書くのにどうするか?
3.差分描画を基本とするが、リジューム時はシーンごとに個別対応で
 画面全体を描画し、その後また差分描画を続行する。
4.その他。
413デフォルトの名無しさん:04/12/04 03:24:58
>>410
ヘルプを読むと、GETFSFREE()、GETRAMFREE() も使えるのかも?
BREW 2.1 以降だし、使ったことないけど。

>>412
1、問題外。
2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
3、シーン毎っちゅーのが分からんが、漏れならこっちでやるなあ。
4、砂時計が描画される部分だけ描画時毎に保存して...(w
414412:04/12/04 07:52:31
>>413
>2、IDISPLAY_SetDestination() を使用すれば文字も描画できるのでは?
それはそうなのだが、デバイスビットマップを入れ替えるとクリッピングや透過色の指定が
クリアされるので、それらを使っていると面倒なことになる。
また、タイミング悪く、入れ替えてる間に砂時計が描かれてしまうこともあり得る。<考え過ぎか?
何とかIDISPLAY_SetDestination()を使わない方法を考えているがうまくいかなくて…

>3、シーン毎っちゅーのが分からんが
ステージ開始したとき、クリアしたとき、ゲームオーバーになったとき、など、
描画内容が大きく変わる区切りを指す。説明不足スマン。
これは確かな方法だと思うが、上記シーンごとに画面復元の処理を入れていくことになり、
作業量が増えるのでちょっと躊躇ってる。<ヨワッ でもやはりこの方法なのかな。

>4、砂時計が描画される部分だけ描画時毎に保存して
砂時計が描かれてからEVT_APP_SUSPENDが通知されるので、そのときには
砂時計が描かれた状態を保存してしまっていて結局ダメで…

413さんthx. 他の方のアドバイスもいただきたいです。
415デフォルトの名無しさん:04/12/04 15:22:45
>>412
漏れは2の方法で復帰させてる。てか1と2の複合か。
(ゲームじゃないが、画面全体が頻繁にスクロールが発生するアプリでスクロール分を差分描画)

1.IDISPLAY_SetDestination()でオフスクリーンを指定
2.クリッピング、描画など
3.IDISPLAY_SetDestination()でディスプレイを指定
4.オフスクリーンをディスプレイに描画
5.IDISPLAY_UpdateEx()で画面更新

の繰り返しで。
砂時計はディスプレイに描画されるので、オフスクリーンの方は大丈夫。
結局毎回画面全体を更新している訳だけど、DDBの上書きだけなら結構な速度が出るよ。
S5505SAで約20フレーム確認。それ以上は試す必要なかったんで計ってない。スマソ
416413:04/12/04 16:46:29
>>414
4. は、412 氏が上手くできなかった SUSPEND 時保存の改善案。

(1) アプリ側の描画時に砂時計がでるはずの部分だけ保存
(2) SUSPEND 時で全画面保存
(3) RESUME 時に (2) で保存したものを描画
(4) 同じく RESUME で (1) で保存したものを (3) に上書き

問題は、各機種毎に砂時計の出る位置やサイズが違う気がする
ってことかなあ?…速度的には悪くないと思うけど。
417412:04/12/04 19:10:18
415氏、416=413氏、具体的な内容で参考になりました。助かります。
>>413の2番をふまえて>>415の方向で考えてみます。

変に考えが凝り固まっててオレの頭がサスペンド中ってオチなのか…
418デフォルトの名無しさん:04/12/05 21:55:19
透過処理とかの絡みでDDBitmapを直接弄ってるけど遅い。
asmで書き直してる人とか多い?
419デフォルトの名無しさん:04/12/06 12:29:56
420デフォルトの名無しさん:04/12/06 17:46:23
EVT_APP_NO_SLEEPから復帰するタイミングを見たいときは
何をチェックしたらいいんでしょうか?


EVT_APP_RESUMEやEVT_APP_STARTではないみたいだし・・・。
421デフォルトの名無しさん:04/12/07 18:42:33
サウンドでspfファイル使ってる人いる〜?
422デフォルトの名無しさん:04/12/07 18:51:10
>>421

てか、それしかサウンド使ったことない・・・。
423デフォルトの名無しさん:04/12/07 20:42:13
qcp使ってる
424デフォルトの名無しさん:04/12/07 20:53:17
移植性とか考えると音はやっぱSPFの四音同時が妥当なのかね。
日本の端末じゃMIDI+QCP×4とか出来ないようだし…。

どうやってますよ?オマイラ
425デフォルトの名無しさん:04/12/07 22:56:12
着うたフル
426デフォルトの名無しさん:04/12/08 10:18:13
>>425
BREW2.0端末で200kb
2.1で300kbじゃなかったか?
427デフォルトの名無しさん:04/12/08 20:06:50
エミュレータでは問題なく動いてるアプリが
実機でいきなりMemory Accessで落ちるんですけど
原因って何でしょう?

処理を全部コメントにしてreturnしていても
場所によってエラーになるんですが。。
428デフォルトの名無しさん:04/12/08 22:31:22
>>427
奇数番地をまたいでのwardアクセスとかじゃないか?
429デフォルトの名無しさん:04/12/08 23:35:19
タイムクライシスで半透明やってるんだけどどうやってんですか!
430デフォルトの名無しさん:04/12/08 23:40:02
>>427
ありがちなのが、ヒープ足りなくなってる状態でMALLOCとかが失敗しているのに
エラーチェックしないで書き込んでるとか、ポインタ操作をミスってるとか。
あと、実機用はmakefileで、すべての依存関係が記述できているとは限らないか
らクリーンしてみると挙動が変わったりすることもある。

ちなみに実機でしか再現しないリセット系エラーを追及するには、ログをファイ
ルに吐くような手を使わないとダメです。
#DBGPRINTFなんかはバッファされるのであてにならない
431デフォルトの名無しさん:04/12/09 01:12:14
IShell_CreateInstance()関数を使ってINetMgrのインスタンスのインスタンス
を生成しても戻り値がSUCCESSとならないんですが、どんな原因が考えられます
か?コンパイルはできます。ちなみに
IShell_CreateInstance(pMe->m_applet.m_pIShell, AEECLSID_NET, (void**) &app->pINetMgr)
という感じにしてます。




432デフォルトの名無しさん:04/12/09 03:09:57
>>431
とりあえずMIFは?
433427:04/12/09 11:11:31
>>428
初歩的質問でもうしわけないのですが
奇数番地をまたいでのwardアクセスってなんでしょう。。。

>>430
ヒープは残っててMALLOCの戻り値もチェックしてます。
クリーンしてみたのですが変わらず。。
434デフォルトの名無しさん:04/12/09 11:57:09
デバッガについて質問です。
エミュレーター上でVC++のデバッガーを使いたいと思い
ttp://www.s-cradle.com/developer/technicalqas/tqbr/index.html#q0049
に書かれている方法を試したのですが
'(パス)\BREW_Emulator.exe'にはデバッグ情報がありません。続行する場合は[OK]を押してください。
というメッセージボックスが表示されてしまい、続いて
1つ以上のブレークポイントが設定できませんでした。これらのブレークポイントは無効です。実行プログラムはプログラムの始めで停止します。
というメッセージボックスが表示され、デバッグできません。
プロジェクト(P) -> 設定(S) -> リンク - カテゴリ - 一般 のデバッグ情報を生成する(G) にはチェックが入っています。
どうしたらステップ実行等が可能になりますか?
環境はVisual C++ 6.0 BREW SDK 2.1.1jです。
宜しくお願いします。
435デフォルトの名無しさん:04/12/09 12:49:19
>>434
プロジェクト→設定→デバッグでデバッグセクション実行可能ファイルに
エミュ.exeを入れればおk


あと質問なのですが
みなさんリソースファイルに埋め込んだ音声ファイルは
どのようにして再生してますか?
436デフォルトの名無しさん:04/12/09 14:51:41
>>433
wardはwordの書き間違いでそ。

アライメントの問題。バイト(8bit)アクセスならどんな
アドレスでもアクセスできるけど、ハーフワード(16bit)は
2の倍数、ワード(32bit)は4の倍数のアドレスでしかアクセス
できない。
ARMはこれを間違えると例外が発生する。x86はアライメント
気にしないでも処理は一応動く。
# ちなみに、ARMでも例外発生しないものもある
437427:04/12/09 17:09:49
うーむ。
メモリまわりは全く知識が無いのでチンプンカンプンです。。
いま途中まで動いてる部分はまぐれっぽいですね。

大変そうだ
438デフォルトの名無しさん:04/12/09 17:34:32
>>437
アライメントと決まったわけじゃないしな。
単純にメモリ壊しているだけかもしれん
アライメント問題はこんな感じ

----
uint16 buf1[10];

uint8 *p1 = (uint8 *)buf1; *p1 = 0;
p1にアクセスするのはOK

uint16 *p2 = buf1; *p2 = 0;
p2にアクセスするのはOK
----
uint8 buf2[10];

uint8 *1 = buf2; *p1 = 0;
p1にアクセスするのはOK

uint16 *p2 = (uint16 *)buf2; *p2 = 0;
p2にアクセスするのはNG★

例え動いたとしても、偶然buf2が2の倍数のアドレスに
配置されてたってだけ
コレをやりたい場合は、アドレス調べてうまくいくよう
自分の処理を調整するか、_packed、PACKEDとかでコン
パイラに教えてあげる必要がある
439デフォルトの名無しさん:04/12/09 23:59:42
>>431
MIF ファイルに権限がないとか良くありがちな罠。
440デフォルトの名無しさん:04/12/10 00:10:52
てかメモリ周りわかんないでどうやってC書くんだ?
441デフォルトの名無しさん:04/12/10 03:15:29
>>435
https://secsvr.net/brewjapan.com/tech/form.html
ここの「BREW Technical Tips」に載ってる
【リソースファイルにサウンドデータを格納するには】の
サンプルを参考にさせてもらってる。
442デフォルトの名無しさん:04/12/10 05:05:25
427とそれへのレスを見て思ったのだが、
情報が足りてない質問に憶測で答えていても解決は遠いと思う。

「エミュレータで動いて実機でMemory Accessエラー、原因は何?」とか
「処理を全部コメントにしてreturnしていても場所によってエラーになる」とか
ソースを出さずに言われても意味不明。

エミュレータで期待通りの動作をして実機で動かないなら、ビルド環境の問題
かもしれないし。(←と、当てずっぽうになってしまうわけだ、情報が足りないと)

427はせめてその疑ってる付近のソースを(可能な範囲で)晒してみたり、
ARMかgccか、makefileはBREW Addinsの自動生成のか、自前で書いたものか、
とかの情報を出してみてはどうか。
443427:04/12/13 11:47:48
ごめんなさい解決しました。。。
なんと問題はフラグの初期化し忘れでした。情けない。
int型をとってTRUEかFALSEかで使ってた部分で落ちてました。

メモリについての知識もほとんどないので
難しいコードも組んでないし、メモリ周りのエラー起きないですよね。

皆様たいへん勉強になりました。
ありがとうございました。
444デフォルトの名無しさん:04/12/13 15:02:15
なんか、ISocket での通信が妙に遅い(1kbpsとかしか出ない)んだけど、一回の送信データって何バイトぐらいが良いんだべか。
ちなみに今は、512バイト単位で送ってる。
au網のパケット長は128バイトだった気がしたが、ヘッダを除いた際の適正サイズがわからん。

buf = new byteBuffer(512);
socket->Write( buf.GetBuffer(), (short)buf.GetSize() );
445444:04/12/13 15:08:33
あぁ、サービスガイド見たら、1秒間での ISocket_Write() は2回までって書いてあるな。
普通に128バイトで送ったら2kbpsじゃん。

送信サイズでっかくして再挑戦してみま。
446デフォルトの名無しさん:04/12/13 15:10:08
>>443
難しいコードが>>438で挙げてある程度のコードを指すのだとしたら、油断しすぎか経験
少なすぎ。Cである以上メモリ処理はついてまわるし(特に携帯みたいにヒープの少ない
環境だとね)、知識がほとんど無いとか言ってる場合じゃないかと。

>>434
「デバッグ情報がありません〜」のメッセージは出る。「次回から表示しない」のチェックを
入れてメッセージボックス自体を殺してしまってOKなはず(これはEmulator.exeのシンボル
ファイルが無い、という警告なので出て当たり前)。
あとはビルドがリリースモードになってないか確認。
447デフォルトの名無しさん:04/12/13 21:18:57
サーバから落ちてくるpng画像を読み込む方法って、
一度ファイル名つけて保存→ISHELL_LoadImage() しかないかな?
今まで同一フォルダにプロジェクトと実行ファイルまとめてたんでメンドクサイ(ノД`)
448デフォルトの名無しさん:04/12/13 22:08:16
>>447
IMemAStream 使えばいいんじゃないか?
449デフォルトの名無しさん:04/12/13 22:19:50
>>448
お、使えそう! サンクス!!
450デフォルトの名無しさん:04/12/14 01:03:49
久しくやってないのでうろ覚えだけどISourceをIAStreamに変換
できなかったっけ?
ISOURCEUTIL(間違ってるかも)とかで
451447=449:04/12/14 02:09:28
>>450 情報サンクス。
ダウンロード完了するまで待ってISourceからbyte配列にデータ格納するクラス作っちゃったんで、
IMemAStreamの方が都合よさそうです。
調査不足を痛感・・・頑張らんとなぁ
452435:04/12/14 13:34:30
>>441
遅くなりましたがありがとうございましたです。
453デフォルトの名無しさん:04/12/14 13:44:39
もしかしてBREWってExtern使えないの!?
454デフォルトの名無しさん:04/12/14 14:57:39
使えてるけど?extern
455デフォルトの名無しさん:04/12/14 21:03:51
ところでしーばらくBREWから離れているんだけど、少しは環境よくなりました?
456デフォルトの名無しさん:04/12/14 22:25:30
プロジェクトに美女が2名参加しました(゜∇゜)
457デフォルトの名無しさん:04/12/15 09:31:24
>>456 うっぷ
458デフォルトの名無しさん:04/12/15 14:17:01
>>456
それは幻覚の一種だ。
治し方は知らんが。
459デフォルトの名無しさん:04/12/15 16:27:16
1000個程度の整数の定数表を格納したいのです。
staticな配列に初期時に格納できるばよいのですが、
BREWでは当然無理なことで、何かよいアイデアはないでしょうか?
460デフォルトの名無しさん:04/12/15 17:10:15
IFILEMGR_Removeで失敗することあるのかな?
同名のファイルを上書きできないから、まず消さないといけないでしょ?
失敗したらどうすればいいんだ?

if (IFILEMGR_Remove(pMe->fileMgr, "test.txt") != SUCCESS) {}
461デフォルトの名無しさん:04/12/15 18:33:05
>>459
ん? constな定数表なら普通にスタティック/グローバルに持てるよ。
変数は無理ぽだけど。
462デフォルトの名無しさん:04/12/15 18:41:32
>>461
あ?確かに「global/static変数」と書いていました。
どうもありがとう。
463デフォルトの名無しさん:04/12/15 19:14:14
>>460
>同名ファイルを上書きできない
いやできるんじゃないの?

IFile *pf = IFILEMGR_OpenFile(pMe->m_pIFileMgr, "hoge.bin", _OFM_READWRITE);
IFILE_Write(pf, data, sizeof(data));

OpenFileの時点でファイルポインタが先頭だからそこから書き込み。
200Byteのファイルに100Byteだけ書き込んで末尾を切り捨てたければ

IFILE_Truncate(pf, 100); // 100バイト以降を切り捨て

とかやってやればいいんでないの?

実際には、存在しないファイルを_OFM_READWRITEフラグで開こうとするとエラー返してくるから、そこから
_OFM_CREATEで作成試行してそれでも駄目ならファイルシステムエラーとして扱う、みたいな処理が必要
になるけど。
464デフォルトの名無しさん:04/12/15 23:29:34
>>455
しばらくがどのくらいかしらないけどSDKのインストールは楽になったよ。
あいかわらずダウンロードはできないけど入力するのはメールアドレスのみ。

そんくらいかなぁ・・・
465CC名無したん:04/12/15 23:59:52
>>463
同名ファイルの上書きはたぶんそれでできるね。
つーか、オレも_OFM_READWRITEで
きちんと上書きできるの確認したことある。
466デフォルトの名無しさん:04/12/16 01:14:47
BREWのデータ個人の携帯に転送して俺アプリ作成したいんだけど、
やっぱ無理?ハックしてる人いない?いっしょにハックしてくれる人でもいいけど
467デフォルトの名無しさん:04/12/16 03:56:39
無理
468デフォルトの名無しさん:04/12/16 11:28:37
>>460
ファイルをOpenしたままだとRemoveできないね。
まあこれはアプリの側で知ってるはずだからきちんと管理しる。

>>463
困るのはRenameで名前がかぶる時かな? そんなことするかどうかは別にして。
469デフォルトの名無しさん:04/12/16 12:58:21
IHTMLVIEW で <table> を使用したことありますか?
エミュレータで実行すると無視されるようなので、
ひょっとすると使用できないのかもと思ったんだけど。
470デフォルトの名無しさん:04/12/16 13:10:52
失礼 IHTMLVIEW -> IHTMLVIEWER です。
471デフォルトの名無しさん:04/12/16 15:36:47
>>469
サービスガイド巻末に利用可能タグ一覧載ってるぞ。
472BREW男:04/12/16 19:14:18
BREW APIで、送受信メールデータにアクセスすることって可能ですか?
473BREW男:04/12/16 19:16:25
送受信メールを消去したいんですけど、誰か教えてくれませんか?
474BREW男:04/12/16 19:18:41
BREWから自動で一般電話回線に発信したいのですが、方法を知ってる方いらっしゃいますか。
質問ばかりですみませんが、よろしくです。
475デフォルトの名無しさん:04/12/16 19:42:54
モチツケ
476デフォルトの名無しさん:04/12/16 20:14:42
>>471
ほんとだ。<p>扱いだと。結局、使えないということか。
でも、たいへん役にたつ情報でした。サンクス。
477デフォルトの名無しさん:04/12/17 11:26:33
>>472-474
まずリファレンスとかドキュメントをよく読め。


で、記憶の範囲だがメールフォルダにアクセスする手段は(KDDI拡張にも)無かったと思う。
通話発信はTAPIで可能だが、KDDIでは禁止していたようにも思う。
ってことで、以上をヒントにドキュメントで確認してくれ。
478デフォルトの名無しさん:04/12/18 23:11:45
>>474
なんか犯罪の臭いがする…
479デフォルトの名無しさん:04/12/19 01:08:10
sig生成ソフトだれかくれ
480sage:04/12/20 11:16:09
新参者に2つほど教えてくれまいか。

・MSPとbrew-supportとCINのアカウントってそれぞれ申請しないといけないの?
MSPはあるんだけど他の2つはどうすればもらえるんだろう

・「端末試験モード設定兼解除申込書」ってのが欲しいんだけど、どこで手に入りますか?
駄目元でググって見たけどやっぱり駄目だった
481デフォルトの名無しさん:04/12/20 13:44:25
質問です。
IMenuCtlで普通のメニュー(テキストアイテムが縦に並ぶやつ)を表示してる
んですが、タイトル表示しろといわれて表示したらセンタリングできない;;
なんかセンタリングする方法ってないですかね?
482デフォルトの名無しさん:04/12/20 15:27:19
>>481
メニューコントロールなんぞ使わずに自力で作れば?
って思うんだが…

みんなIMenuCtrlとかITextCtrl使ってるモンなの?
漏れは全く使ってない。
テキスト入力が必要なところは全部HTMLだからってのもあるけど。
483デフォルトの名無しさん:04/12/20 20:13:01
作ろうと思うんだけどめんどくさいからとりあえずBREWで用意されてるの使ってるのが俺。
たしかに俺も、あんなの使うなら自作した方が全然マシだと思う。w
484デフォルトの名無しさん:04/12/21 09:37:15
>>480
「端末試験モード設定兼解除申込書」…ウチはKDDIの営業からもらったべ
485sage:04/12/21 13:17:47
>>484
申込書は貰えましたです。
でもクアルコムIDがまだという罠。
時間掛かるのかな。年明けそう orz
486デフォルトの名無しさん:04/12/21 16:57:16
>>482
主に海外向けなのもあって、標準的UIを極力使えというお達しなんだよね。
メニューとかの見栄えって端末によって結構違うから自前で作ると他のアプリとの
整合がどうのこうのと・・・
#外人は日本人の基準からは考えられないほどの○○が多いらしい
まあタイトル部分だけ自分で書いても良いんだが。

とりあえず現状は(トライアル版的位置づけだし)左詰で我慢してもらおう。
487デフォルトの名無しさん:04/12/21 18:16:38
日本では「うげー」と思われてても、海外のプロポーショナルフォントの端末で
カコイイ文字で見ると「イイ!」っていうケースもあるしね。Series60 の UI とか。
488デフォルトの名無しさん:04/12/21 19:17:16
BRIファイルをダウンロードして書き換えちゃダメなのかな。
489デフォルトの名無しさん:04/12/21 19:19:22
>>448
Barでした
490デフォルトの名無しさん:04/12/21 21:00:14
ITextCtl使わない場合、カーソルとかどうしてるんですか?
漏れも、入力コントロールを使わねばならん場面があるんですが、
ITextCtlだと背景色とか変えられないから、フォーカスがどこに
あるのか見にくいので、画像はっつけてその上にフレームなしの
ITextCtlおいてみたりしたんですが、どうもイマイチ・・・

エミュだとスモールフォント使えないから、見栄えの確認ができ
ないのも辛いね。
491デフォルトの名無しさん:04/12/22 00:43:59
売り物のクロスコンパイラ買うのなんかいやなので、っていうか5ライセンス
買う予算下りなかった。
 なのでARM用にgccのクロスコンパイラ構築したいのですがみなさんなんか
ナイスなノウハウ持ってませんか?たぶんARMでも3種類チップ使い分けられて
いるので、1個環境作って終わりーとかならないと踏んでいます。
492名無しさん:04/12/22 11:27:22
gccでは実機では動かせなかった。
Cで絵を一枚表示する程度の簡単なプログラムなら動いたのだが。
実際に必要なのはC++(javaからの移植だから)で、こっちはどうやってもだめ
だった。
プログラムの起動もしない。

使ったのはこれ
http://sourceforge.net/projects/gnude/
493デフォルトの名無しさん:04/12/22 15:13:39
>>491-492
公式見れ。

・・・と書こうと思ったが、なんか公式フォーラムトップしかアクセスできないな。
結論から言うと、GNUDEで(C++も)できる。
一部ヘッダファイルの修正とmakefile自前生成が必要なだけ。
makefileのサンプルもヘッダファイルの修正についてもフォーラムにあるので復旧したら見てくれ。

ただ、GCCでやるとmodサイズがarmよりかなりでかくなる=ヒープもその分消費するので注意。
速度はほとんど同じかGCCのほうが早いくらい。
494デフォルトの名無しさん:04/12/22 15:18:46
あ、フォーラム接続できた。
http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=97
がmakefile等の上がっている記事。
http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=75
がヘッダファイルの修正方法。

この辺はテンプレに入れといたほうが良いかもね〜
495名無しさん:04/12/22 15:58:22
>>493
実機で動かしてみた?
C++では動かなかったよ。
Hello worldレベルなら動くんだけどね。
496デフォルトの名無しさん:04/12/22 17:36:49
gnudeでbuild出来るもんなら、実機でも動かせる。
俺のところは、gcc(gnude)でテストして、gnudeで出荷しとるよ。
497デフォルトの名無しさん:04/12/22 17:59:07
>>495
うちとこは商用レベルのものをGNUDEで動かしております。
勿論実機動作確認済み。

しかし.modのサイズが増えるのはいかんともしがたい…早くARMコンパイラください o rz
498名無しさん:04/12/22 18:52:30
>>496,497
C++ですか?
当方のテストはCだと動くけど、C++はだめ。
499496:04/12/22 19:16:13
C++だよ
500497:04/12/22 21:43:50
同じくC++。社内ライブラリにクラス使ってたりするので動く、間違いなく。継承・仮想関数・純粋仮想関数もろもろOK。

で、>>494にあがってたフォーラム2件見てみたのだが、あそこにあがってるmakefileではC++のコンパイルはとおるだろうが実機じゃ動かないと思われ。
コンパイラフラグとして
-fno-exceptions -fno-unwind-tables -fno-rtti -ffunction-sections
の4つ追加が必要(よって例外とか実行時型判別は使えなくなる)。-ffunction-sectionsは無くても動いたかも。
さらに、ソースコード中どこかに
extern "C" void __cxa_pure_virtual(void){}
の関数、リンカフラグに
--cref
追加。
クラスに対してnew/delete使うならクラスのnew/deleteオーバーロードじゃなく、グローバルスコープでnew/delete/new[]/delete[]をオーバーロードしてやればOK。
うちはこれに気づかず、クラスのnew/deleteオーバーロードしてんのにARMコンパイラ使用時や実機でエラー吐かれるて嵌ったorz

あと、元々GNUDEでのBREWバイナリコンパイルは英BREWフォーラムのtyndal氏の記事が元(だと思う)。
http://brewforums.qualcomm.com/showthread.php?s=bb18a6bbfdca41e8baab0de92c686daa&threadid=1601
ここと、記事に載ってるリンク先を見れば必要な情報は揃うはず(うちはそれでC++環境構築できた)。
501名無しさん:04/12/22 22:43:23
>>497
動かしてみる、感謝。
502名無しさん:04/12/22 22:44:00
まちがえた。

>>500
ありがとう。
503デフォルトの名無しさん:04/12/26 02:48:55
enraタン復活。
504デフォルトの名無しさん:04/12/27 11:31:38
>>500
フォーラムのmakefileのままで実機(au端末)でも動いたよ。C++ね。
まあ、ワーニングは沢山出るけど。

もともとARMで成功していたソースにPACKEDなんかの修正入れただけだけど。
コード的には、virtualは使用、例外実行時型判定は非使用。

ちなみに、その辺の情報持ってるなら公式にもRESしといてあげれば〜
ここだけだと過去ログ見れない人もかなり多いだろうし。
505デフォルトの名無しさん:04/12/29 02:29:38
ワーニング
506デフォルトの名無しさん:04/12/29 11:40:36
「ウォーニング」と発音する人ってほとんどいないな
「Award」→「アウォード」も


♪せぶん でいず わー、たたかーうーよー
507デフォルトの名無しさん:04/12/29 18:10:14
>506
ノシ
でも会話してると、相手は「ワーニング」、漏れ一人「ウォーニング」orz
508デフォルトの名無しさん:04/12/30 20:23:32
BREW開発支援サイト落ちてる?
正月休み?
509デフォルトの名無しさん:04/12/30 21:00:42
いつも落ちてる
510デフォルトの名無しさん:04/12/30 22:27:45
C++で書いてる人に質問。
容量足りなくなりませんか?
ゲーム作ってるけど、C++では、容量的に難しい・・・
511デフォルトの名無しさん:04/12/30 23:17:40
>>510
例外処理機構とRTTIを切ってないのか?
それ以外ならCとたいして違わんはず。
512デフォルトの名無しさん:04/12/31 11:13:08
>>506-507
ま、ウォーニングでもワーニングでもないがな。IPAで書くと…
513デフォルトの名無しさん:04/12/31 13:00:40
ウォーニングと言うとダビスタしか思い出せないんだが…
514デフォルトの名無しさん:05/01/01 03:02:10
>>506
発音はウァーニング、筆記はワーニング

こういうのって普段プログラムの話しない人は知らないくて仕方ないよね
515あけおめ:05/01/01 10:52:35
コンピューラっとは言いにくい

>>510
俺はARMコンパイラだけど、>>511と同じように
そんなに差は無い気がする。

テンプレート使いすぎてんじゃないの?
516デフォルトの名無しさん:05/01/01 13:29:15
ていうか、大体の事はmapファイル吐かせれば分かる。
517デフォルトの名無しさん:05/01/02 23:42:15
新年早々すいません。
AEEApplet_Newでインスタンス作成したときにIAppletのa.m_pIShellに
明らかに不正な「1」という数字が代入されて例外で落ちる現象で悩んでます。
(NULLでないのが始末悪い)
似たような現象で悩んだことのある人いませんでしょうか?
518Q:05/01/03 01:59:28
>>517
AEEAppGen.hへのパスが正しいかどうか、使用しているAEEAppGen.cと
一致しているかどうかを確認してください。
 
2.0以前と2.1以降ではAEEAppGen・AEEModGenのソースが異なり、
バージョン間で互換性がありません。
2.0のヘッダは2.0のソースと、2.1のヘッダは2.1のソースと一緒に使ってください。
 
2.1のAEEAppletの定義
struct _AEEApplet
{
  DECLARE_VTBL(IApplet)
  AEECLSID clsID;
  uint32 m_nRefs;// Applet reference counter
  IShell * m_pIShell; // pointer to IShell
  /*以下略*/
};
 
2.0での定義
struct _AEEApplet
{
  DECLARE_VTBL(IApplet)
  AEEModObj * pNext;
  AEECLSID clsID;
  uint32 m_nRefs;// Applet reference counter
  IShell * m_pIShell; // pointer to IShell
  /* 以下略 */
};
519517:05/01/03 02:52:45
>>518
ありがとうございます。まさにそれでした。
要するにポインタがずれてリファレンスカウンタの値かなんかに化けてたわけですね。
AEEAppGen.cが2.0相当のものがコンパイルされていたようです。
BREW Switcherのテストしたときにしくじったままになってたのではないかと思います。
お騒がせいたしました。
520デフォルトの名無しさん:05/01/05 18:43:13
BREWでRPGゲーム作成に挑戦したいのですが、
マルチスレッドなしで、ユーザーが操作するキャラクター以外を
動き回すことって可能なんでしょうか?

ゲーム初心者なのでよくわかってませんが、
あれはシングルスレッドでも十分なのでしょうか?
521デフォルトの名無しさん:05/01/05 18:55:32
>>520
すまないがその質問はBREW自体とはあんまり関係ないんで、
↓で教えてくれそうなスレを探すことをお勧めする。

ゲ製作技術
http://pc5.2ch.net/gamedev/
522デフォルトの名無しさん:05/01/06 10:12:22
タイマで刻めばいいやん
523デフォルトの名無しさん:05/01/06 10:48:56
それ以前にBREWの開発環境が無いと見ているがどうだろう
524デフォルトの名無しさん:05/01/06 18:08:40
ちょっと教えてください
アプリからWebページを開きたいのですが、
IWebを使わないとだめでしょうか?

Win32のShellExcuteみたいなのがあれば
教えていただきたいです。
525デフォルトの名無しさん:05/01/06 20:34:25
ISHELL_BrouseURL() つかいなはれ。
526デフォルトの名無しさん:05/01/06 23:59:32
携帯で使うにはAUの承認がいるんですか?
527デフォルトの名無しさん:05/01/07 00:48:02
>>526
とりあえずBREWでAUの携帯向けに出すためにはKDDIの企画採用審査が必要で、
詳しくは↓のページを参考にするといいかもしれないです。

ttp://www.au.kddi.com/ezfactory/tec/spec/brew.html
528524じゃないが便乗:05/01/07 03:07:57
ISHELL_BrouseURL() でブラウザ連携したいのですが。

プログラミングガイドとほぼおんなじソースで
ISHELL_BrouseURL() 使ってみたのですが、全く何にもなし。
実機で試してもメッセージひとつ飛んでこないんですが、
何かありがちなミスとかあったりしますか?
関数は通ってるようなのですがエラーも何も出ず、
何事も無かったように動き続けます・・・
サスペンドメッセージも飛んでこないでどうしたものかと・・・
529デフォルトの名無しさん:05/01/07 11:36:40
ブラウザ連携はキャリア独自の仕様だから、KDDIならKDDI仕様に準じた方法をとらないとできないよ。
KDDIの日本向けパッチに含まれてるサンプルにあったと思うが。
それともKDDI仕様でやってもだめだってことなのかな?だったら分からんが・・・

ちなみに漏れは主に海外端末のお仕事なので結局これは使えなかった。
から詳しくはしらない。
#結局IWebでアプリ内にブラウザ機能仕込みました 細かいこと考えなきゃかなり楽に実装はできる
530524:05/01/07 12:22:10
ありがとうございます。
とても、いいものを教えてもらいました(゜∀゜)アヒャ

リファレンス見ると、まさにShellExcuteですね。
でも、ブラウザ以外使わないから、必要ないけど。

ところで、エミュの設定いじって試すこと出来ませんか?
実機では確認取れたのですが。。。。
531デフォルトの名無しさん:05/01/09 01:38:36
>>545
それは消費税込みでつか?
532デフォルトの名無しさん:05/01/09 01:44:50
545に期待
533デフォルトの名無しさん:05/01/09 03:41:57
IWEB_GetResponse()を使ってます。
URLには
192.168.0.1/test.jpg
という感じで5KBの画像を取り込もうとしてますが、
ISOURCE_Read()を使っても1300byteまでしか読み込めません。
原因わかりますでしょうか?

534デフォルトの名無しさん:05/01/09 04:03:24
>>533
ISOURCE_Exhausted() がTRUE返すまでコールバック続けるべし。
535デフォルトの名無しさん:05/01/10 20:15:35
既出だったらすいません。
BREW初心者なんですが、三角関数を使いたいときって
どうしたらよいのでしょうか?時間がないのでとりあえずは
スクリプトで対応表(0°〜359°)を出力して、
ソースに埋め込もうと思ってますが。
536デフォルトの名無しさん:05/01/10 20:20:48
BREWの事情は知らないけど、C++なら #include <cmath> std::sin std::cos じゃないの?
537デフォルトの名無しさん:05/01/10 21:08:37
無さそうだったので漏れは作った。
538デフォルトの名無しさん:05/01/10 21:14:43
>>536 Cで書いてます。
BREWでは一般的に標準Cライブラリが使えないんですが、
C++では使えるんでしょうか?

>>537
そうですよね。したいのは描画位置の計算なんで、
ルックアップテーブルにしといたほうがどっちみち
速いんですが。
どうもありがとござんした。
539デフォルトの名無しさん:05/01/10 22:04:02
>>537
三角関数を作ったの?
540537:05/01/10 22:29:16
いやいや、>535と同じでsin()の出力結果をテーブル化して、それを返してるだけ。
ワールド座標を画面中央に固定すれば、多少精度が低くても携帯の画面じゃわからないしね。
541535:05/01/10 22:34:23
関連するところでまたお聞きしたいんですが、
浮動小数点について。ドキュメントを見る限り、
「doubleの変数自体を扱うことはできるが、
 (ヘルパーを使わないと)演算はできない」
という解釈でよいんでしょうか。
542537:05/01/10 22:44:57
>>535
どぞー
http://brewforums.qualcomm.com/ja/showthread.php?s=10866a5abc0b6168f002c015e2caf3bc&threadid=271

漏れは全部整数で計算してるんで、その辺よく知らない。
それと、まだ検証通したわけじゃないんでNGかもしれないが、
__int64 なる64bit変数があるんで、最悪これ使ってる。
実機で動作も確認してるんだが、ダメだったら地獄だろうなw
543535:05/01/10 23:04:37
>537
情報thxです
_| ̄|○
座標なんで、はじめから整数だけ使って
計算のときは100倍してとかして乗り切るしかないっすね。
544デフォルトの名無しさん:05/01/11 06:14:21
>>542
がーん、int64 って使えたんだ。
int32+int32 でクラス作っちゃったよ…。
545デフォルトの名無しさん:05/01/11 11:25:49
「int64」じゃなくて「__int64」ね。
SPRINTFの%dとかは32bitまでしか表現してくれなかったから、
その辺は自分で作った。

尚、当方VC++6.0で確認してます。
gccはわからん
546デフォルトの名無しさん:05/01/11 15:08:11
JAVAだろうとBREWだろうと携帯ならルックアップテーブル使うのが常識でしょうに…。
547デフォルトの名無しさん:05/01/12 00:21:51
ヘェ
548デフォルトの名無しさん:05/01/12 00:47:42
>>535
自前で実装汁

『C言語による最新アルゴリズム事典』とかに載ってる
http://www.vector.co.jp/soft/data/prog/se002453.html
ソースは古いので適当にあわせる&BREW用に直す


速度求めるなら固定少数、テーブル化しちゃえ
549デフォルトの名無しさん:05/01/12 00:48:43
>>541
そそ。

math系は全部自前になる
550デフォルトの名無しさん:05/01/12 01:23:24
>>548
速度求めるなら全部整数化してシフト演算だろ
遅いハードで少数使おうとするのがそもそも間違い。
可能ならば乗除算も控えてシフト演算で代用するのがベター。
BREWのCPU仕様わからんからコレが正解かどうかはわからんけど。

それとURLのソース見てみたけど、これ16bitCPU用だよね・・?
551デフォルトの名無しさん:05/01/12 10:55:30
>>550
そらぶん回しの部分はね。
552デフォルトの名無しさん:05/01/12 12:48:16
>>550
ARM7コアなら積和演算くらいは遅くない(レイテンシ1〜2cycle)と思う。
定数倍なんかは近代的なコンパイラならシフト+加算に展開されるし。

ARMだと除算命令無いから、定数以外での除算はできるだけ避けるが吉。
グッと遅くなる。
553デフォルトの名無しさん:05/01/12 19:21:51
基本的な事かもしれないんですが、
midi でBGM鳴らして、それに音声をかぶせて
同時再生させる事は brew で可能ですか?
qcp ファイル被せてみてるんですが、qcp を
再生すると midi が止まってしまいます。
同じチャンネルで音声再生させようとしてる
せいでしょうか・・・すいませんがアドバイス
お願いします。ちなみにエミュレータ環境です。
554デフォルトの名無しさん:05/01/13 00:21:36
不可能じゃない?
555デフォルトの名無しさん:05/01/13 03:13:48
556デフォルトの名無しさん:05/01/13 05:22:20
557デフォルトの名無しさん:05/01/13 08:24:19
Forumはいつykuboさんがブチ切れるか心配になる瞬間があるね。

>>553
エミュはともかく実機での同時再生についてなら、各端末仕様書に表が載ってるから
それを参考にすることをオススメ。
558デフォルトの名無しさん:05/01/13 08:42:38
生暖かく見守ろう
559デフォルトの名無しさん:05/01/13 10:28:53
553です。
>>555、557 両氏 ありがとうございます。
brew初めて一週間経ってないんで指針すらわからず
困ってました。助かりました。
560デフォルトの名無しさん:05/01/13 20:13:03
>>557
ykuboさんは確かに仕事とはいえ耐えに耐えてるって感じだな。
561デフォルトの名無しさん:05/01/13 21:06:31
正方形のPNG画像があるのですが、これを90度、180度、270度回転させ、
4つを組み合わせて1つの画像を作りたいのですが、可能でしょうか?
ITransformインタフェースを使えば
Bitmap画像を回転できるということはわかったのですが・・・。

1.回転させたPNG画像を4つ用意する。
2.Bitmap画像を用意して回転させる。
3.他の方法を探す。

のどれが正解なんでしょうか?
1や2は画像ファイルのサイズが大きくなるので、できれば避けたいです。
562デフォルトの名無しさん:05/01/13 22:39:00
>>561
DIB取ってきて自分で回転させるなり、ITransformやるなりすれば
良いんでねーの?

http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=175
563デフォルトの名無しさん:05/01/14 00:34:16
1.PNG画像を普通にIIMAGEで開く
2.PNG画像と同サイズのBMPをIBITMAP_CreateCompatibleBitmapで作成
 (引数のpIBitmapはディスプレイのBMPポインタで)
3.2で作成したBMPに対してPNG画像を書き込み
4.倍サイズのBMPをIBITMAP_CreateCompatibleBitmapで作成
5.3のBMPをITransform使って書き込み

これでできるよ。
564561:05/01/14 00:39:53
>>562、563

おぉう!ありがとうございます!!!
565デフォルトの名無しさん:05/01/14 14:26:16
BREWAppLoader ですが、W21SまたはW22Hとの接続に、
au製のWIN用USBケーブルを使用してやった方いますか?
今やってみたら接続できなかったので。
566デフォルトの名無しさん:05/01/14 14:30:35
IFileインタフェース利用時の確認画面について質問です。
ファイル保存操作をする際は確認メッセージを表示する事になっていたと思います。
ここで「以後確認しない」を選択したとして、その情報をファイルに保存する場合。
次回起動時、ファイルを開かないと確認画面を表示すべきかどうか確認できない、
しかしファイルを開く前に確認画面を出さないといけないのでは?

というところで詰まってしまいました。
根本的にやり方が間違っているような気がするのですが、
どなたか処方箋お願いします。
567デフォルトの名無しさん:05/01/14 14:41:43
>>566
データフォルダにコピーするとき(IFileCp)は必要だったような気がするけど、
普通にファイルを保存する(IFile)のに確認画面は必須じゃないんじゃなかったっけ?

「EZアプリ(BREW)サービスガイドver.2.1.pdf」の
「9.5.6.ストレージエリア内ファイル操作時」を見てみるといいかも。
568デフォルトの名無しさん:05/01/14 14:49:08
>>566
ストレージエリアに弄るときは確認は必須ではないよ。
でも、Sharedを弄る場合は必須になってる。
569デフォルトの名無しさん:05/01/14 14:51:17
>>566
物凄くマジメな人なのか?

IFILE_Write()を行わなければ「保存操作」じゃないんだから、_OFM_READWRITEでOpenして
設定を読むことは確認ダイアログ抜きにできるのでは...。
いったん _OFM_READ で開いて設定読み込んで閉じてまた開く、でもいいけどさ。

ロックディレクトリ(orファイル)みたいな発想で、空ファイルを作って、そのファイルがあれば
「確認しない」なければ「確認する」みたいな処理でもいいけど、クラスタサイズが大きい
端末もあるからこれは避けたい。
応用版で設定ファイル名そのものを使い分ける手もあるけど、バグ出しそうだからやりたくないな。
570566:05/01/14 14:58:27
皆様レス感謝です。
勘違いしてデータフォルダ内ファイル操作の項目を見て必須だと思い込んでました。

通信設定等の保存にしか使わないので、確認画面無しで行きます。
いやー、助かったー
571デフォルトの名無しさん:05/01/15 01:16:15
BREWのDBって糞だな。学生作った作品並に悪いよ。もうこんな糞環境で開発止めたい。
パフォーマンスでねぇし。そんなことで明日も明後日も会社で仕事だよ。
572デフォルトの名無しさん:05/01/15 02:08:29
ドラゴンボールが糞だと?
573デフォルトの名無しさん:05/01/15 02:22:27
>>572 あれ、モトローラの石で動くBREW実装ってあるの?
574デフォルトの名無しさん:05/01/15 03:51:04
575デフォルトの名無しさん:05/01/15 10:46:08
IFILEの非同期読み込みやろうかと思ってるんだけど、
コールバック関数って読み込みが完了した時点で呼ばれないの?
576デフォルトの名無しさん:05/01/15 15:36:44
>>555
 のリンク先見る限りだと、AudioPhrase使えなそうなんですけど、
日本のBREW端末でBGM+音声ってできないんでしょうか?
577デフォルトの名無しさん:05/01/15 15:54:47
578デフォルトの名無しさん:05/01/15 16:26:14
>>575
Callbackの意味わかってんの?
579デフォルトの名無しさん:05/01/15 16:58:51
>>577
 どうも。あの表以上のことはできないんですよね。
JAVAゲー完全移植は無理か・・・。
580デフォルトの名無しさん:05/01/15 17:41:06
>>579
どうせみんな音消してやってるから問題ない
581デフォルトの名無しさん:05/01/15 17:52:01
そうでもないはず。家でやる人結構多いみたいだし。
http://www.itmedia.co.jp/mobile/0304/15/n_infop.html
582デフォルトの名無しさん:05/01/15 18:32:20
2003年4月15日 06:44 PM 更新
583デフォルトの名無しさん:05/01/15 18:38:00
いやいや、確かに古いけど今はもっと増えてると考えるのが自然じゃないの。
584デフォルトの名無しさん:05/01/15 18:58:35
漏れは家でももっぱらマナーですがなにか
585デフォルトの名無しさん:05/01/15 19:40:44
家でやるときくらい、音だしてやれよ。
プログラマーも苦労してんだからYO
586デフォルトの名無しさん:05/01/15 20:00:27
つーか家で携帯アプリなんてヤッテランネ
587デフォルトの名無しさん:05/01/15 20:14:45

                |
                |
                |
                |
     /V\       ◎ ←>>575
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
588デフォルトの名無しさん:05/01/15 22:27:07
腹減ってんだろ誰も見てないよ
589デフォルトの名無しさん:05/01/16 00:56:12
とりあえず、575はコールバックを100回声に出して読むべきだと思う
590デフォルトの名無しさん:05/01/16 01:08:45

                |
                |
                |
                |
     /V\       ◎ ←>>581
    /◎;;;,;,,,,ヽ
 _ ム::::(;;゚Д゚)::| ジー
ヽツ.(ノ::::::::::.:::::.:..|)
  ヾソ:::::::::::::::::.:ノ
   ` ー U'"U'
591デフォルトの名無しさん:05/01/16 16:59:28
>>581は労働金庫
592デフォルトの名無しさん:05/01/16 21:23:36
散々読んだが未だに >>572-573 の流れが読めない(;´д⊂
593デフォルトの名無しさん:05/01/16 21:28:19
>>592
「ドラゴンボール」「モトローラ」でググってみた。

ドラゴンボール【DragonBall】 初代Palmに搭載されていたモトローラのMPU。

だそうだ。
594デフォルトの名無しさん:05/01/17 02:53:43
すみません、QVGA機種のサスペンドについて質問です。

EVT_APP_SUSPENDは実装しているんですけど、
ここにイベントが入ってこないんです。

INFOBOADとかは、電源キーが押されると、勝手にメニューが開いて
ここで「中断」を押すとアプリにEVT_APP_SUSPENDは入ってくるんで、
どう考えても、アプリ側で処理するべき事では無いような気がします・・・

でも、なぜQVGAの機種達はメニューを開かないのかが、分かりません。

どなたかご存知の方がいればお教え頂けないでしょうか?
595デフォルトの名無しさん:05/01/17 03:36:44
とりあえずサスペンドイベントはアプリキーで発生するはず。
それと電話かけてみるとか。

ただ例外があるようで、何をやってもサスペンドが発生しない
タイミングがあるのはこちらも確認してます。
EZナビウォークとかはサスペンド無視してるようにも見えるし、
深く考えない方がいいのかも…
596デフォルトの名無しさん:05/01/17 08:59:16
>>595
回答ありがとうございます。
2.1のQVGA機で、サスペンドさせても中断メニューが
表示されないのは何が原因でしょうか?
2.0は普通にいきます。
597デフォルトの名無しさん:05/01/17 12:19:07
QVGA機ってのが具体的にどのメーカーのどの機種を指してるのか
わからないと答えようが無い気がするが・・・

でも、手元にあるBREW2.1のW21KとA5501Tだと電源押せばちゃんと
「アプリを終了します、よろしいですか?」とかいうメッセージが
出るんだけど、中断メニューってこれのことじゃないのか??

BREW2.0でINFOBARだと、メニューが表示された後で「中断」とか押すまで
EVT_APP_SUSPENDが来なかったような覚えがあるけど。

よくわからんが、EVT_APP_SUSPENDでFALSEでも返してるんじゃねーの?
俺は詳しく調べる気は無いから頑張って解決してくれ('A`)ノシ
598デフォルトの名無しさん:05/01/17 16:04:15
IDISPLAY_MeasureTextEx() で nMaxWidth 指定して、
その幅以上のテキスト突っ込んだ時の戻り値って機種依存あるっぽいね。

って既出?
599デフォルトの名無しさん:05/01/17 21:34:17
>>594
機種名くらい書きなさい

もしかして外人?
600デフォルトの名無しさん:05/01/17 23:21:25
>>598
機種依存ってかフォントサイズ違うんだからあたりまえじゃね?
601598:05/01/17 23:40:27
とりあえず5504TとA5307STで確認。

AECHAR str[] = "01234567890123456789"; (STREXPANDで変換したって事で…)
w = IDISPLAY_MeasureTextEx(a->m_pIDisplay, AEE_FONT_NORMAL, str, -1, 100, &len);

で得たwとlenの値

A5504T : w = 440(22*20), len = 10
A5307ST : w = 280(14*20), len = 20
エミュ : w = 95(19*5), len = 5(マシンのフォントサイズに依存)

こんな感じになりますた。
多分SAはエミュと同じ動きしてるっぽい。
602598:05/01/17 23:45:01
一部訂正。
誤:A5504T : w = 440(22*20), len = 10
正:A5504T : w = 440(22*20), len = 4

もう何がなんだか・・・
603デフォルトの名無しさん:05/01/18 03:11:27
まともなエミュが欲しい…
604600:05/01/18 04:33:38
戻り値が機種依存とか聞いて勘違いしたスマン
その3つの比較を見るとエミュレータが示すような結果を実機でも期待したいもんだな
自分もIDISPLAY_MeasureTextEx()を多用しているが戻り値wは使っていない
605デフォルトの名無しさん:05/01/18 04:42:39
通常起動か待受起動か判定する方法教えて
606デフォルトの名無しさん:05/01/18 17:35:57
エミュ上で brew ってるんですけど、プログラムを
動かしっぱなしで放置しておくと、突然処理速度が
ガタ落ちになってしまいます。何か(エミュ上で
有効な)キーを押してやると元の処理速度に戻りま
すが、また一定時間経つと処理速度が落ちる・・・
これってエミュだけの問題でしょうか?それとも
実機で発生する(と思われる)省電力モードのエミュ
レーション機能でしょうか?後者だった場合、この
モードに移行させないようにすることはできますか?
実機で動かせる環境にないので、お手数ですがご教授
ください。

あ、あと、エミュで dll が 200kB 近くあるんですが
実機用にコンパイルすると小さくなるのかな?
607デフォルトの名無しさん:05/01/18 17:47:05
>>606
処理落ちは EVT_APP_NO_SLEEP で FALSE を返していることが原因だと思うので、
ここで TRUE を返してやれば処理落ちしなくなる。
ただし、KDDIのチェックの時には EVT_APP_NO_SLEEP で
FALSE を返さないといけないってチェックがあるので注意が必要。

実機の時はARMコンパイラで作成したmodファイルで、
エミュのdllとは別物なので基本的には問題無し。
608デフォルトの名無しさん:05/01/19 10:20:35
>607
 なるほど。EVT_APP_NO_SLEEP ですね。
 ありがとうございます。やってみます。
 mod サイズについてもわかりました。
 具体的には何割くらい小さくなるんだ
 ろう・・・実機用にコンパイルできれば
 一発なんだけど、そのための試作プログ
 ラム中なもので(^^;)
609デフォルトの名無しさん:05/01/19 14:56:07
BrewSDKは企業に所属してないと手に入らないのでしょうか?
610デフォルトの名無しさん:05/01/19 15:07:05
>>609
そんなこと無いはず。
>>1のQUALCOMM BREWホームで落とせる。
611デフォルトの名無しさん:05/01/19 18:48:43
>>608
modはdllの1/10ぐらいになるという話をきいたけど、
あまりあてにならない。
612デフォルトの名無しさん:05/01/19 20:38:54
何かフォーラムがすげーくだらない質問で埋まってくね・・・
ykuboさんご愁傷様。
613デフォルトの名無しさん:05/01/19 22:21:28
ファイルの書き込みなんだけど、
実機でタイムアウトしないものなんだろうか?
エミュだとやたら怒られるんだけど
614Callback:05/01/20 00:54:12
俺を忘れてもらっちゃ困るぜ
615デフォルトの名無しさん:05/01/20 01:01:40
後ろから呼ばれると驚きます
616デフォルトの名無しさん:05/01/20 10:06:48
617デフォルトの名無しさん:05/01/20 11:10:23
>>612
っというか、なんであんなに日本フォーラムに
機械翻訳したような日本語の質問が多いんだろ?
海外に投げまくってるのかね?CP
618デフォルトの名無しさん:05/01/20 16:30:22
CONVERTBMP()でIBitmapを取り出す際に *pbRealloc がTRUEになった場合の
解放について教えてください。

1)IBITMAP_Release()を呼ぶ
2)SYSFREE()で解放する
3)両方

のどれになるんでしょ?
ドキュメントによればSYSFREE()を呼べ、ってなってるけれど・・・
619デフォルトの名無しさん:05/01/21 01:10:02
4)やってみて問題ないものを選ぶ
620デフォルトの名無しさん:05/01/21 01:22:25
WebOptsについて調べたいのですが、いい資料はないでしょうか。
SDKについてるAPIドキュメントを見ましたが、役に立ちません。
621デフォルトの名無しさん:05/01/21 04:27:08
622デフォルトの名無しさん:05/01/21 07:07:34
>>618
CONVERTBMPはIBitmap*なんか返さないが…。
SYSFREEで開放しなければならない「何かのメモリブロック」が返ってくるだけだよ。
その正体が何かについては一切分からない。
623618:05/01/21 12:53:44
>>619
エミュレータでは、SYSFREE()での解放でうまく行ってる。
実機に持っていったときにまた調べてみます。

>>622
AEEDisp.h の IDISPLAY_BitBlt() の解説を読んでみて。
BREW 1.2以降では、IBitmapインタフェースのポインタが返るそうな。
(型は void* だけど)
624デフォルトの名無しさん:05/01/21 13:24:27
>>618
多分1,2どっちでも問題ない。両方やったらNG。
WSTRDUP() とかも解放関数がFREEOBJ()と指定されてるけど、
FREE()で解放しても問題ないっぽい。
(そのまま検証に出したわけじゃないから詳しくは知らん)

てかBMP使ってるの・・?
PNGやJPEGでも>>563の1〜3でDDB作れると思うんだが。
625618:05/01/21 14:42:48
>>624
ありがd

BMPを使ってるのには特に深い理由はなくて、いま開発の初期なんでいろいろ
試してみてるとこなんです。gzip圧縮すればファイルサイズ自体はあまり変わら
ないので。

>>563の方法も試してみます。
PNG/JPEG展開とCONVERTBMP()のオーバーヘッドがどのぐらい違うのかで、
どっちを使うか決めますわ。

626デフォルトの名無しさん:05/01/21 15:47:50
BREWって64ビット整数扱えますか?
32x2を作らないとだめ?
627デフォルトの名無しさん:05/01/21 16:38:00
100レスくらい過去ログ読んでから質問しろと
628デフォルトの名無しさん:05/01/21 16:44:05
W21SAのEZナビウォークって標準のアプリだけ、
電源ボタン押しても中断メニュー無いんだけど、
これってどうやってるの?
629デフォルトの名無しさん:05/01/21 17:09:09
>>627
読み飛ばしてました。Thx

あとARM7のint幅は16ビットですか・・・?
630デフォルトの名無しさん:05/01/21 17:13:55
携帯かEZナビウォークのバグ。
どっちかは自分で考えてくれ
631デフォルトの名無しさん:05/01/21 17:34:56
標準で付いてるアプリだと公開されてない方法とか使ってたりするんじゃないか?

つーか、携帯標準で付いてるアプリはまともに検証すらして無い気がする
03SAについてたラジオのアプリも起動時のメモリチェックしてない感じだったし。
632デフォルトの名無しさん:05/01/21 18:17:11
初心者です。見当はずれな質問していたらすみません。
brewSDKのエミュレータでカメラは使用できるのでしょうか?
たとえば、PC上にUSBカメラを接続してその画像を
エミュレーター上で写すことはできるのでしょうか?
よろしくお願いします。
633デフォルトの名無しさん:05/01/21 18:25:10
>>632
出来ない。

でも、エミュ上でならなんでも使えるからDirectShowで
真似事みたいなのは作れる。っというか作った

>>629
モードによって違うと思うが、普通(ARMモード)は32bitです。
634デフォルトの名無しさん:05/01/21 18:25:45
>>632
無理ぽです。
あと、ICameraはBREWプログラマの敵です。
早急に実機でテストできる環境を整備すべきです。
635デフォルトの名無しさん:05/01/21 18:26:31
>>625
必要なワーキングメモリも違う事に注意。
618の方が少なくて済むよ。画像サイズによりけりだけど。
636デフォルトの名無しさん:05/01/21 18:40:53
>>633
>>634

やはり使えないんですね〜。
や早速の返事ありがとうございました。
637デフォルトの名無しさん:05/01/21 21:20:37
カメラアプリで便乗質問。
カメラを使う上で要注意の端末があれば教えてください。
(有名なバグがある、組み方にちょっと工夫が必要となる、など)
特にBREW2.1、QVGA対応端末で。
638デフォルトの名無しさん:05/01/21 22:44:43
>>637
コールバックされる順番が機種によって全然違う。気がする。
639デフォルトの名無しさん:05/01/22 00:28:36
>>637
とりあえず、○ニーは注意してやった方が良いかも

>>638
俺はパラメータ別にあるGetParamの呼べるタイミングの
違いかなぁ
640620:05/01/22 00:53:22
>>621
遅くなりましたがサンクスっ!
ばっちり設定できましたっ
641デフォルトの名無しさん:05/01/22 01:21:05
ソフィアのゲームエンジンより安いライセンス製品知りませんか?
642デフォルトの名無しさん:05/01/22 03:30:41
>>641
自社開発。
643デフォルトの名無しさん:05/01/22 10:10:06
auのBREWアプリでポリモーフィズム使ってる人いる?
容量とか処理速度とか問題にならない?

BREWアプリを外注したらif文だらけのコードがあがってきたんだが、
これって普通?
644デフォルトの名無しさん:05/01/22 10:43:32
>>643
マルチUzee
645デフォルトの名無しさん:05/01/22 11:41:08
どうでもいいけどKDDIって韓国のBREW系HPに質問しまくりだな。
自分らで解らないこといっぱい聞いてるなぁ。
 いっぱい書き込みあるなぁ。もうだめじゃん
646デフォルトの名無しさん:05/01/22 14:16:12
今日こんなのがあるなんて初めて知って、興奮してたら…
俺がやりたかったことは見事 >>5 のFAQで儚く散った…
自分の携帯にすら入れられないとは…ちぇっ.
647デフォルトの名無しさん:05/01/22 15:23:00
>>643
仮想関数呼び出しのメカニズムから勉強し直せ。
648デフォルトの名無しさん:05/01/22 15:26:04
> 自分の携帯にすら

BREWはさ、HDDレコーダとかカーナビとかのような、ちょっと電子部品が多めの
家電製品の一部であって、KもQも携帯マニアの楽しみなんて考えてないからな。
元々エンドユーザがプログラムするもんじゃないんだよ。

アプリの自作も、発表の手段も、持ち歩くことも、手段は他にいくらでも有んだから、
必ずしも全キャリアの端末が自作アプリ置き場である必要はないだろ。そこを敢えて
ハッキングする!(←語源の方のハックね)というひとなら尊敬もされようが、自分の
活動環境があらかじめ用意されていないから失望した、なんてのは創造性がねえよ。

BREW導入開始当初なら兎も角、今更、こんな板にまで出張して愚痴たれられても…
649デフォルトの名無しさん:05/01/22 15:33:43
てかちょっとでも悪用すると、便利な盗撮道具や
ウィルスまがいのアプリが出来上がりってのは笑えないね。
もうちょい考えて環境整えろと。
650646:05/01/22 17:50:00
まぁただの愚痴だったんで、住人の皆様の気分を害したならごめんなさい。
情報見付けた時に「おぉっ!」っと思ったんで、ちとがっかりしただけでして…。
大人しく今まで通りJavaいじってます。所詮趣味でプログラム書いてるだけなんで…。
C++の方が好きなんですけどね…。
651デフォルトの名無しさん:05/01/22 17:52:01
>>647
>>643はiアプリから移植したからそうなってるんじゃないのか?
652デフォルトの名無しさん:05/01/22 18:30:45
よし、Cの標準関数移植するぞぉがんばるぞぉ。
653デフォルトの名無しさん:05/01/22 19:33:59
>>652
ヘルパー関数使えやヴァカ
654デフォルトの名無しさん:05/01/23 02:31:57
>>650
648だけど、言い過ぎだった。
「新製品なのになんで動かないんだよ」「非対応は怠慢」から始まって
「自由に作らせろ」「Java VM乗せればいいじゃん」「無料にしろよボケ」まで
数々の有り難いご意見を、毎日毎日毎日毎日毎日頂戴しているせいか
過剰反応してやってしまった。今は反省している。

色んなしがらみが有って「うちはキャリアでも端末メーカーでもないよう」
程度の弁解すらなかなか言えんのよ。
655デフォルトの名無しさん:05/01/23 15:27:42
遅RESだが。

>>625
PNGからの展開よりもCONVERTBMPの動作のほうが10倍以上速いよ。
#メモリ上のデータから画面に描画するまでで
端末にもよるがARM9端末なら大抵は。

JPEGは問題外。
速度は端末によってかなりバラバラ、さらにデコード待ちのコールバックがTIMERコールバックより優先度が低いらしく発生しない。

>>643
過去にも検証があった気がするがそんなに遅くは無い。
もちろん不要なところまでvirtual入れないようにはしといたほうが良いだろうが。

>>631
検証って行ってもKDDIの基準はQUALCOMMの基準より大分厳しいからな。
標準アプリはKDDIの基準ではNGでもQUALCOMM基準ではOKって可能性も多分にある。
てか、KDDIの基準は厳しすぎ。
656デフォルトの名無しさん:05/01/24 02:03:51
神経質ユーザー対策のため、日本仕様になってるんだろう審査
657デフォルトの名無しさん:05/01/24 16:41:10
実際にIDIBをサポートしないIBitmap実装を使ってる実機ってあるのかな。
手持ちの実機のDeviceBitmapもQueryInterfaceするまでもなく中身はIDIBだったし。
658デフォルトの名無しさん:05/01/24 16:44:25
>>655
ファイルならISHELL_LoadBitmapがお手軽。
gzipかましてるなら、展開時間と展開前バッファとIDIBのコストを考慮。
DDBでいいならIDIBいらないけど、ヒープ余裕なのかな?
659デフォルトの名無しさん:05/01/24 17:06:54
>>643
大量のif文(switch-caseに置き換えられないんだろうか?)を書くのと、virtualを使って書くのと。
果たしてどっちがコードサイズ小さくなるんだろうね?

うちは問題になるほど差は無いと思うし、最適化でジャンプテーブル化される余地のあるswitch-caseならともかく
大量のif-else書いて毎回分岐するくらいならvirtualで実装した方が速い気がする。

参考:Efficient C++
660デフォルトの名無しさん:05/01/24 20:45:54
SMALL_FONTって、実機じゃないと動作しなかったりしますか?
エミュだと ISHELL_CreateInstance() でのポインタの中身が0なんですけど。。。
661デフォルトの名無しさん:05/01/24 20:49:21
662660:05/01/24 21:20:16
>>661
ああっ、フォーラムにあったのか、手間取らせて申し訳です。
663デフォルトの名無しさん:05/01/24 21:20:22
IStaticインタフェースを使用して、テキストと小さな画像を同時に表示して
(テキストの続きに画像がきて、またテキストが続く)、その画面をスクロール
したりとかは可能でしょうか?
なんとなく無理そうだと感じてはいますが。
また、APIリファレンスを見ると、IStaticインタフェースでもIImageインタフェース
から読み込んでる画像が表示できるらしいのですが、やり方がよくわかりません。
BREW SDK 3.1を使用しています。
664デフォルトの名無しさん:05/01/24 22:28:49
> IStaticインタフェースを使用して、テキストと小さな画像を同時に表示して
> (テキストの続きに画像がきて、またテキストが続く)、その画面をスクロール
> したりとかは可能でしょうか?

IStatic単体では無理です。

> なんとなく無理そうだと感じてはいますが。
> また、APIリファレンスを見ると、IStaticインタフェースでもIImageインタフェース
> から読み込んでる画像が表示できるらしいのですが、やり方がよくわかりません。

いや、そんなことは出来ないはずです。

> BREW SDK 3.1を使用しています。

3.1で作ってもまだ対応する端末が無いですよ...。

やりたいことに一番近いのはIHTMLViewerでしょうね。
ゲーム以外でならそこそこ使いでのあるインタフェースです。
(というよりIControl/IDialogは総じて役に立ちません)
665デフォルトの名無しさん:05/01/25 00:56:46
IHTMLViewerすらだめだ。自力でGeckoエンジン移植したい。
2D描画について詳しく書かれた文献はないですか?自分でWindow作ったり
メニュー作ったりするので必要なのです。
DreixtX4以来振りなので何もかも忘れてしまってます。助けてください。
666デフォルトの名無しさん:05/01/25 01:41:51
だいぶパニクってるようだがまず落ち着け
何を質問したいのか整理して
667デフォルトの名無しさん:05/01/25 01:47:33
描画から入力まで
全て自前で用意するのが
間違いがなくていいだろうな。
668デフォルトの名無しさん:05/01/25 02:09:56
でも標準フォント横最小10文字の世界で何をしたいのだろう…
669デフォルトの名無しさん:05/01/25 09:33:39
>>664
ありがとうございました。やはり、無理なのですね。

>いや、そんなことは出来ないはずです。
APIリファレンス(SDK 3.0.1 日本語版) IStaticインタフェースの項の
--
3. BREWのリソースファイル、またはコード内に記述されたテキスト文字列
から、タイトル用テキストとテキストメッセージ文字列を取得します。テキ
ストメッセージの代わりにビットマップを使用する場合は、ビットマップを
読み込み、IIMAGE_SetParm()関数を使用してアニメーションのプロパティ
(フレーム数やアニメーションの速度など)を設定します。
--
ここの記述の意図は何なのでしょうか?
英語のフォーラムに似たようなことをやろうとしている方の投稿があった
のですが、フォローがついてなかったです。

>3.1で作ってもまだ対応する端末が無いですよ...。
3.1搭載の端末の開発を行っているものですから。
IHTMLViewerの方を調べてみます。
それでは、ありがとうございました。
670664:05/01/25 11:09:18
>>669
すみません、調べてみたら出来るみたいです...ただ使い道と使い勝手は「?」ですが。
文字かイメージかの二者択一なので、混ぜてスクローリングはやっぱり無理です。
ここではさすがに回答できないので公式へポストしていただければゴニョゴニョ...。
671デフォルトの名無しさん:05/01/26 02:35:49
BREWに戻りたいので必要もないのに保守してみる
672デフォルトの名無しさん:05/01/26 12:00:09
検定不合格になるとどうなるんでしょうか?
それを考えるとビクビクして、寝られません。
673デフォルトの名無しさん:05/01/26 12:30:11
>>672
たしか優良コンテンツプロバイダの場合は2回落ちると優良コンテンツプロバイダからを降ろされちゃうんだっけ?
674デフォルトの名無しさん:05/01/26 12:39:29
>>672
2回目までは無料。
3回目からは有料になる。

この検証不合格のカウントも機種単位じゃなくて、アプリ単位で数えるとか聞いたような覚えがある。
つまりはW21Kで1回不合格出すと、別機種でのチェックでは2回目からのカウントになるとか・・・
聞いた話だから信憑性は微妙だがな。
675デフォルトの名無しさん:05/01/26 21:00:41
>>673
一発で優良が外れて、復帰には三連続合格が必要だったとおもた。
676デフォルトの名無しさん:05/01/26 21:56:56
BREWってPCMの多重再生ってきますか?
677デフォルトの名無しさん:05/01/26 21:58:02
間違えました。
BREWってPCMの多重再生って出来ますか?
678デフォルトの名無しさん:05/01/26 22:18:18
>>677
端末によるけど、日本の機種はダメだったような気がする
679598:05/01/26 22:37:41
更に他の機種もやってみた。

A5306ST : w = 96(12*8), len = 8 正常。
A1304T : w = 280(14*20), len = 7 w不正。

もう自前で関数用意するの飽きたよ(´д`)
680デフォルトの名無しさん:05/01/27 01:08:23
>>674
有料っていくら?

>>679
681デフォルトの名無しさん:05/01/27 10:26:22
>>680
20万

詳しくはKDDIに聞いてくれ('A`)
682デフォルトの名無しさん:05/01/27 16:36:14
>>232
ここで聞いた症状だと、ブラウザじゃなくてBREWのIHTMLVIEWのバグですよ。
アプリカタログ内で詳細とか表示してるのは、OpenWaveのブラウザじゃなくて
BREWのIHTMLVIEWだから(Qualcomm製)。
683682:05/01/27 16:38:27
誤爆した。
http://hobby7.2ch.net/test/read.cgi/phs/1106706121/ へのレスでした。
684デフォルトの名無しさん:05/01/27 17:39:22
あれっ、W21Tで ezurlto: がうまくいかない。。。
一瞬アイコンが砂時計に変わるけどすぐ消える。
なんだろ、謎だ。ez2urlto: 使うかー。
あー、機種判定して動作わけるのマンドクセ。
685デフォルトの名無しさん:05/01/27 17:49:07


   ま   た   T   か
686デフォルトの名無しさん:05/01/27 21:58:10
今日のビックリ新発見

ITransform で TRANSFORM_FLIP_X を指定したら
絵の上下が逆になった。
687デフォルトの名無しさん:05/01/27 22:03:30
Σ(*゚ー゚)
688デフォルトの名無しさん:05/01/27 22:59:38
他とスペック全然違ったり、おかしな動作したり、一体何がしたいんだT芝。
689デフォルトの名無しさん:05/01/27 23:05:33
>>686
X軸でフリップするからそれで正しいのではw
690デフォルトの名無しさん:05/01/28 13:06:07
10台の男の子なりたい職業第一位「プログラマー」
http://www.athill.com/INFO/NEWS/main_041222.html

さぁ語れ
691デフォルトの名無しさん:05/01/28 13:29:08
>>689
言われてみたらそうかもな〜

でも、いままで触ったことのある環境では、FLIP_Xでは左右反転だったんで
面食らったw
692デフォルトの名無しさん:05/01/28 13:30:59
こ・・・これは、堀江効果か?
ちょっと経営側とプログラマーを勘違いしてるのかも・・・

しかし、情報系に興味持ってくれている子どもが多いってのは良い事だ
たとえ最終的に文型職に進んだとしてもきっと役に立つだろうし
693デフォルトの名無しさん:05/01/28 15:47:14
>>692
どう考えても標本になる人数少なすぎるだろ
694デフォルトの名無しさん:05/01/28 16:56:53
>>693の言うとおりだと思うが、笑いのネタとして受け取るなら
   1位…プログラマー
  20位…ゲームプログラマー
項目を分けた基準が何なのかってことと、順位差の原因が気になるかな?

人気(順位)よりも具体的にどういうイメージを持っているのかに興味があるな。
10代男子が思い浮かべるプログラマー像、システムエンジニア像、クリエイター像、
他、「コンピューター関係」は具体的に何を思い浮かべるのか。
695デフォルトの名無しさん:05/01/28 22:31:52
brewプログラミング実践バイブルの本のスケジューラアプリのサンプルプログラムを
試しているのですがstatusというインターフェイスがなくてエラーが出てしまいます。
これは何なのでしょうか?誰か教えていただけませんか?ちなみにp104です。
696デフォルトの名無しさん:05/01/28 22:40:19
>>695
ここらに記載されているサンプルは自前のクラスを使うので(つまりStatusはBREW標準のクラスではないので)、このソースだけコンパイルしようとしても通らないはず。
本(6ページ)に記載されてるURLからサンプルを丸ごと落とせば解るんじゃないか?
697デフォルトの名無しさん:05/01/29 04:08:32
>>695
あの本はかなり前のページから内容引きずってるんで、
一部分だけソースコピってもマトモに動かないよ。
各章の頭から必要な関数やらを引っ張り出して、足りない部分補足しないと動かない。

で、それが出来るなら最初から見ない方が早いと思うw
698デフォルトの名無しさん:05/01/29 05:41:05
アプリケーションからAPIなりを使用して、アプリケーションを更新(起動後
に最新版のアプリをダウンロードして、そのまま処理を続行する)すること
は可能でしょうか?
iアプリにはそういう機能があるらしく、BREWアプリでもできると助かるので
すが。あるとしたらIShellインタフェースとかかと思い、APIリファレンスを
みてみましたが、見つかりませんでした。
自分自身のバージョンを取得する関数はあるので、なんらかの仕組みはあるの
かなぁと思っているのですが...。
699デフォルトの名無しさん:05/01/29 07:56:03
>iアプリにはそういう機能があるらしく
ねーよw 何ふきこまれたんだ

iアプリでやれるのは
1.ダウンロード済みのアプリを、ユーザーが再度ダウンロードしようとした場合、
 日付を判定してそれが新しいものだったら上書きでダウンロード(バージョンアップ)する。
2.動作中のアプリから別の(ダウンロード済みの)アプリを呼び出して、自分自身は終了する。

で、どの道、BREWでもアプリのダウンロードを指示するAPIはないし、
実行中のアプリを書き換えることができるはずもない。
700デフォルトの名無しさん:05/01/30 16:46:21
ちょっとお尋ねしたいんですが、、、
新機種対応する時に、文字サイズが違う時は、
A.あらかじめ、色んなフォントサイズに合わせるようプログラミング
B.文字サイズがちがう機種ごとに新バイナリで対応
のどちらが一般的でしょうか?

私、携帯のアプリ開発に初めて回されまして、
A.を提案したのですが、携帯はB.だよとメンバーに総叩きにあいましたw
701デフォルトの名無しさん:05/01/30 18:33:19
>>700 特にこのスレ向きの質問ってことでもないようだが。

一般的にどちらってのは特にないんじゃないか。ケース・バイ・ケースで。
レイアウトやデザイン主体ならBかもしれないし、テキスト主体ならAかもしれないし。
というよりその問題はフォントサイズだけ見て決まることじゃないと思う。
702デフォルトの名無しさん:05/01/30 19:18:58
金や暇があるならBでやれば?
703デフォルトの名無しさん:05/01/30 19:33:25
>>699
どうもです。

iアプリでは、動作中のアプリから新しいアプリをダウンロードして、
古いほうは終了、新しい方を起動(引数?わたしで継続実行)みたい
なことができると(そういう仕様のアプリを作る予定)聞いたのです
が、BREWアプリでは難しいのでしょうか? iアプリの方はそういう
仕掛けがあるのかなぁと思ったのですが。

>2.動作中のアプリから別の(ダウンロード済みの)アプリを呼び出して、自分自身は終了する。

(ダウンロード済みの)アプリというのが、この場合新しいバージョンのアプリをダウンロードするアプリ
(標準でそういうのがあるのかな)になるのと思ったのですが。
今ちょっと調べてみたのですが(すみません)、iアプリ更新機能連携起動に相当する仕組み
がBREWアプリで(簡単に)できそうかな? というのが知りたいです。
704デフォルトの名無しさん:05/01/30 20:26:58
BREWのフォントサイズひどくない? 端末メーカー自由奔放に作りすぎ
下請的にはBは考えられませんね。メッセージ等は自動調整。メニュー等は画像で持つのがいいな。
705デフォルトの名無しさん:05/01/30 21:21:34
699です。
>>703
iアプリではアプリ実行中に新しいバージョンをダウンロードさせて再起動することができる。
失礼した。再起動後に途中から開始する(ように見せかける)のは作り込み次第で。
BREWアプリでは、サービスガイドやプログラミングガイドを見る限り同様の仕組みはない。

料金体系のことがあるしアプリマネージャーからの操作以外にバージョンアップさせる方法
はないような気が。EZアプリカタログを通す以外のダウンロード方法もないし。

いまいち役に立たない解答でスマン。フォローできる人いたらよろしく頼む。
706デフォルトの名無しさん:05/01/31 10:49:56
ていうかアプリマネージャからの自動verうpじゃいけない理由があるのかと。
もし自前でDLしようとしても、認証関係で落とされるんじゃないか?
707デフォルトの名無しさん:05/01/31 11:45:04
アプリマネージャからユーザが手動でバージョンアップさせにいくのではなくて、
アプリから自動でバージョンアップさせたいと考えています。

ですが、仕組みそのものがなさそうですし、認証とかはいるとなると難しいそう
ですね。
せめて、アプリのバージョンアップを誘導できればいいと思うのですが、アプリ
からEZアプリカタログに最新版があるかどうか調べる手段はあるのでしょうか?
(やはり、これも認証とかが絡んでしまう?)
708デフォルトの名無しさん:05/01/31 12:27:25
>>707
アプリカタログはあれはあれで一つのBREWアプリなので。
最新版の有無とかの確認が必要なら、自前でサーバ用意しておいてやるのが良いんじゃなかろうか。
まあ通信の必要が無いアプリだとそのためだけに通信させるのは馬鹿げてる気がするけどね。
709707:05/01/31 13:32:25
もし自分で書き換えたいならアプリマネージャーのようなものを
自分で作って対象アプリ書き換える必要があるが、
KDDIの資料を(少しでも)読んでいるなら、
他のアプリのフォルダにアクセスするのは無理だとわかるだろう。

自分でローダーを作って、実行ファイルを自前でメモリに展開して実行すれば
もちろん実行できるが、KDDIの認証で落とされる。

最新版か確認するだけなら自分とこでVer確認する鯖作れば?
710709:05/01/31 13:33:31
名前間違えたごめんなさい
711デフォルトの名無しさん:05/01/31 13:53:33
>704
同意。
docomoの方がフォント関連は楽だよナァ
というかT端末文字デカ杉(;´Д⊂)

もし端末開発の中の人見てたらアプリ制作現場からのお願いです。
各社端末仕様は出来るだけ統一してください。
ホントお願いします。
712デフォルトの名無しさん:05/01/31 14:01:04
>>711
Tのフォントがでかかったり03SAのsmallがDocomoのtinyサイズだったりするしな。

だが、携帯端末開発者スレは俺も見てるけど中の人も大変らしいぞ

もういや 携帯電話開発 お前ら元気ですか Phase8
ttp://pc5.2ch.net/test/read.cgi/prog/1106234370/
713デフォルトの名無しさん:05/01/31 15:29:43
自分で書き換えたいと言うよりは、自アプリを契機に
して更新したい方向です。(わかりづらくてすいません)
最新バージョンは、サーバ経由で取得できそうですの
で、アプリカタログに誘導できれば、最低ラインには
到達できそうです。
WAPブラウザからは、アプリカタログまでは誘導できる
ようですが、IHtmlViewer等でできるといいですけど。
(最悪、手動で更新してくださいとメッセージがだせれ
ばよいですが)
ちなみに、初回ダウンロード時には、生成されてない
ファイルなどは、更新時に引き継げるのでしょうか?
Start with Brew というドキュメントには、MIFやフォルダ
名は、数字の名前に置き換わるみたいな記述があり
ますが。(同じフォルダにダウンロードされる?)
714デフォルトの名無しさん:05/01/31 15:52:03
>>713
どうでもいいがそんなもんぁKDDIに聞け
こんなとこでうだうだやるより早かろ
書けない情報もあるだろうしな
715デフォルトの名無しさん:05/01/31 22:42:56
いい加減引っかかりそうだしな
716デフォルトの名無しさん:05/01/31 22:58:29
ちゃんと資料読んでりゃ、答えが書いてあるしな。
717デフォルトの名無しさん:05/02/01 11:53:47
ところで、ヘッダには使い方まで説明してあるけど、
KDDIのリファレンスには無いAPIとかってどこまで使用していいの?
こういうのも全部聞かないといけないのかね。
718デフォルトの名無しさん:05/02/01 14:44:59
クライアントに資料ちゃんとそろえて貰いなさいょ

KDDIのCP資料にだいたい書かれてる

ところでBREW用のOpenGLを詳しく解説したサイトない?
なんかもう英語しかなくて逝きそうなんだが
719デフォルトの名無しさん:05/02/01 14:59:54
そもそもBREWって時点で日本語解説サイトがほとんど無かった覚えが・・・
仕事でやってる奴がほとんどってのが問題なんだろうけど。
720デフォルトの名無しさん:05/02/01 15:58:03
>>718
いや、CP資料に書かれてないAPIなんだけどね。
(うちの)実機でも動く。

ちなみにBREW3.0でアプリ側からアップロード指示できるようになるぞ。
よかったね>>713
721デフォルトの名無しさん:05/02/01 16:00:05
>>718
あなたが↓のページの作者でないならば役に立つかも。
http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=201
722デフォルトの名無しさん:05/02/01 16:49:26
>>700
レベル低い職場だと大変だね。
723デフォルトの名無しさん:05/02/01 16:55:16
>>700
(ノД`)かわいそー
724デフォルトの名無しさん:05/02/01 17:01:56
>>684
ez2系の方がパラメータ渡すのが楽だし、端末仕様でOKならそっち優先すべきじゃないかな。

>>700
技術レベルが低い職場だと大変だね。
Tだけ分けるって手もあるけど、コードサイズ大して変わらない気がする。
725デフォルトの名無しさん:05/02/01 18:09:52
こんな現象起きた方おりませんでしょうか?(ノД`)

検証端末はW21Sが2つ。どちらも製造ロット2004年8月。
で次の動作を行います。
・あるゲームアプリを起動しサスペンドにする。
・(名前を言っていいものか分らんので)あるツールアプリを一発起動させAlermを選択し、ゲームアプリに戻る。
・Alermでツールアプリが起動されるまで放置。
・ツールアプリが起動されたら終了させ、ゲームアプリに戻る。
この動作を繰り返し行うと
1つ目のW21Sではゲームアプリの処理速度が落ちます…orz。
もう1つのW21Sでは何回やっても処理速度が落ちません。
当然、どちらも同一バイナリです。

後、処理速度の落ちた端末をしばらく放置しておくと
なぜか元の処理速度に戻ります。

誰かご教授お願いします(´人`)
726デフォルトの名無しさん:05/02/01 18:18:48
馬鹿な自分ではわからないのですが・・
現在私はHTMLVIEWERを用いてプログラムやっています。
その後、ファイル処理のプログラム(sample.txtファイル作成しデータを書き込む関数を追加しました)
を追加したのですが、
アプリケーションエラー「Priv Violation」sample.txt
と出てプログラムがとまってしまうんです。
どういうことでしょうか?教えてください。
727デフォルトの名無しさん:05/02/01 18:26:10
>>725
見なかった振りしとけ。

>>726
ソース出せ。
ココには張るなよ。
728デフォルトの名無しさん:05/02/01 18:38:44
永遠の企業をめざして
ttp://dblog.dreamgate.gr.jp/user/e008/e008/
729684:05/02/01 18:47:25
>>724
あー、EVT_APP_SUSPEND で true 返してないだけだった罠。
恥ずかしくて結果報告も出来なかったよ。w

>>725
Alerm って使用禁止じゃなかったっけか。

>>726
9割方MIFファイルが原因だと思う。
730725:05/02/01 18:53:56
>>727
(`・ω・´)ヾらぢゃーです 隊ちょー
そのまま、検証へぶちこみます

>>729
いえいえ、ゲームアプリ自体では当然使用してないですよ〜
(正確には待受アプリで使っちゃ駄目なんじゃなかったっけかな?)
731デフォルトの名無しさん :05/02/02 00:15:25
>>727
>>729
お返事助かります。
そのソースですが、
かなり面倒な説明で申し訳ないのですが。そしてお手数ですが・・・
↓これをベースにして。
http://www.k-jbs.co.jp/jbscgi/dlcounter.cgi?url=http://k-jbs.dnsalias.net/coworkers/fukumitu/brewsample/CalcJoule.zip&name=brewsample

↓これのファイル書き込みのところだけ組み込んでみました
http://www.s-cradle.com/developer/technicalnotes/tnzn/0001/filesystem.zip

ベースとしているプログラムは、
HTMLVIEWERを使い数字を入力して何かの速度を計算する、
というものになっています。
私が試したのは、計算結果をtxtに書き込むという処理です。
732デフォルトの名無しさん:05/02/02 00:21:10
すいません↑のベースにしたファイルですが、
http://k-jbs.dnsalias.net/coworkers/fukumitu/brewsample/
このページの本サンプルプログラムソース
のリンクで落としました。
733デフォルトの名無しさん:05/02/02 01:22:00
>>732
確認したいんだけど「特権レベル(Privilege Level)」という単語を知ってる?
734デフォルトの名無しさん:05/02/02 01:40:45
>>732
ソフィのサンプル貼られてもねぇ・・・

とりあえずサービスガイド一通り目を通せ。
そんなんじゃ今後ずっと躓くぞ?
735725:05/02/02 12:21:52
検証だそうとしたら
上司にぬっコロされそうになった(ノД`)あいーん
だって原因わかんないんだもん

別機種から対応するか…
(T_T )...トボトボ
736デフォルトの名無しさん:05/02/02 13:17:22
>>735
どうしても駄目ならKDDIに聞け。
KDDIの方から端末メーカーに原因を聞きに行ってくれたりするぞ。

結果、糞仕様が明らかになる可能性も高いんだが('A`)
737デフォルトの名無しさん:05/02/02 14:00:43
特権レベルですか・・・・
どのように権限がかけられているかわかるはずもなく、
1から自分で作りたいと思います。
経験不足でした。
皆様に感謝いたします。
738デフォルトの名無しさん:05/02/02 14:22:18
>>729 がわざわざ「9割方MIFファイルが原因だと思う。」と書いてくれてるんだから先ずMIFファイルを開いて
隅から隅まで穴があくほど見てみれ。
それでも分からなければ二つのサンプルのMIFファイルを見比べてみれ。
739デフォルトの名無しさん:05/02/02 17:05:25
IWebでネットアクセスした後ってアクセス終了した後もしばらく重くなる端末多いですよね。
アクセス終了後にIWebをリリースしたりしても回避できないし。
この辺の解決方法知ってる人いませんか?
740デフォルトの名無しさん:05/02/02 17:43:00
>>739
( ̄∇ ̄)え!?
通信した後、重くなる端末ってけっこうあるんすか?
おいらが試した端末は
A5306STとW21Sですが重くならなかったですよー。
W21Sは通信中も重くならないっす。
741デフォルトの名無しさん:05/02/02 17:44:10
>>739
何かよく聞く話な気がするけど、漏れそういう現象見たこと無いんだけど…
具体的に遅くなる端末教えてもらえませんか?

ちなみにIWebその他全部、通信周りは利用ごとに解放してます。
742741=598:05/02/02 17:54:27
使用機種は A5306ST、A1304T、A5504T、A5307ST、A5505SAかな。
ダウンロード直後に画面全体ポリライン描きまくって描画速度を出してるけど、
特に遅いと感じた事は無い。

蛇足だけど IDISPLAY_MeasureTextEx() の機種依存情報、
いくつか既出だったのね。オハズカシイ(´∩ω∩`)
743デフォルトの名無しさん:05/02/02 18:02:37
IWebじゃないけど、テスト用にフレーム数表示するだけの
アプリを動かした時に重くなったことがある。
そのときは、画像を読み込んだら軽くなった。

原因は不明・・・
744713:05/02/02 18:04:15
更新ダウンロードの件、サービスガイドに載っていました。すいませんでした。
>>720
3.0のリリースノートを見てみたのですが、アップロード指定の件、見つからなかった
のですが、もし可能でしたらどちらに記載されていたか教えていただけないでしょうか?
(話の流れだと、3.0のヘッダーファイルになるのでしょうか?)
745デフォルトの名無しさん:05/02/02 23:59:13
ネットに繋げられない/ブラウザの使えないPCにBrew SDK2.1.1を入れたくてインストール済みのPCから
フォルダ \BREW SDK v2.1.1 Ja と \BREW Addinsをコピーして、\BREW Addins\vs60の中身をVS6の
\Common\MSDev98\Template にコピーしました。
新規作成ダイアログの途中、MIFファイルの作成で環境変数が未設定だとわかったので
BREWDIR SDKをコピーしたフォルダ
BREWSDK SDKをコピーしたフォルダ
BREWSDK210JA SDKをコピーしたフォルダ
BREWADDINS アドインのフォルダ
を設定しましたが、それでもMIFエディタが立ち上がりません。
またMIFの作成をパスして終了したらAEEAPPGEN.C等のファイルが
..\..\..\..\..\..\..\SRC\AEEAPPGEN.C となっており実在するファイルへリンクが繋がっていません。
ウェブからのインストールと同じ状態にするには他に何を設定すればいいかご存知の方がいたら教えてください。
746デフォルトの名無しさん:05/02/03 00:09:41
>>725
がんがってください。俺にいれるのはこれだけでつ。
あとはなにか分かったらここに報告してくれると
他の人が助かるかもしれないのでよろしくおながいします。

つーか遅くなるほうの機体が壊れてるんじゃねーの?

>>745
インストール済みのPCとHDDを取り替えれば?
747デフォルトの名無しさん:05/02/03 01:14:33
yくぼさん改行忘れてるよ

怒ってるのかな?
748デフォルトの名無しさん:05/02/03 13:11:30
>>740-741

とりあえず現象が確実に出るのがinfobar。
他にも海外端末(具体的に言うとモトローラV810とか)でも出ているらしいです。
限界速度近くで動かしているのもあり、微妙な速度低下でもFPSが落ちちゃって困ってるんですよね;;

あと、IWebアクセス中、アクセス後はQCELPの再生時にIMediaの状態がPLAYに
なっても実際音が鳴り始めるのが遅れるとか言う現象もあったり。

インジケータを見ていると、通信中のアイコン点滅がアクセス後も10秒くらい
続いているので、内部的に通信してる=チップセットに負荷が掛かるってことな
んだと思うんですが。
749725:05/02/03 13:36:40
>>746
ふぁーい(´ω`)ノ
何かわかったら書込みしまっす〜
機種が壊れて…おれもそう思いたいっすけどね〜
CPにあるテスト機3機種で起きるみたいなのよね
おれの持ってる市販のW21Sだけ起きないw

>>748
INFOBARって中身A5306STだって噂を聞いたことあるけど
通信で重くなるって違いがあるってことは
その噂は間違いなのか…φ(._. )フムフム
750デフォルトの名無しさん:05/02/03 14:06:55
噂ってオマエ…
751デフォルトの名無しさん:05/02/03 18:24:14
ITRANSFORM_TransformBltSimpleを使用する前にしなければいけないことってありますか?
TRANSFORM_*を指定するとA5503SAにて、上3分の1ほど描画されません。
他の機種では正常に描画されます。
わかるかたいらっしゃいますか?
752デフォルトの名無しさん:05/02/03 19:17:13
>>751
ITRANSFORM_TransformBltSimple()は特に必要とする前処理はない。
そのカキコだけでは何とも言えないが、引数と元にする画像を再度チェックしてみてはどうか。
753デフォルトの名無しさん:05/02/03 19:43:20
レスありがとうございます。

表示したいのはIBITMAP_CreateCompatibleBitmapで作った240*240画像です。
(そこにIImageを描画しています)

ITRANSFORM_TransformBltSimple(m_pITransform,0,0,img,0,0,240,240,0,COMPOSITE_KEYCOLOR);
では正常に表示され
ITRANSFORM_TransformBltSimple(m_pITransform,0,0,img,0,0,240,240,TRANSFORM_FLIP_X,COMPOSITE_KEYCOLOR);
などでは上3分の1ほど表示されません。
エミュでもA5501Tなど他の機種でも正常なのです。
今回はアプリでは使わなそうなので良いんですが…わけわかりません。
754デフォルトの名無しさん:05/02/03 21:00:15
>>753
IBITMAP_Invalidate()かな
755デフォルトの名無しさん:05/02/04 11:52:10
>>754
ありがとうございます。
しかしながら、マニュアルからこの関数の使い方がいまいちわかりません。

1) 240*240のIBitmapを作る
2) 1)で作ったIBitmapにIImageを描画
3) ITRANSFORM_TransformBltSimpleでIBitmapを描画

ですと、2)の後に使用すればいいんでしょうか?
756デフォルトの名無しさん:05/02/04 12:19:59
>>755
あえて言うなら 3) の後
2) でも問題はない
(要はIDISPLAY_Update()までにターゲットのDDBのdirty rectを拡げときゃいいんだから)
757デフォルトの名無しさん:05/02/04 13:05:18
>>756
ありがとうございます。
今日はできないようなので、来週にでも試してみたいと思います。
758デフォルトの名無しさん:05/02/04 16:00:31
アプリ終了と同時にブラウザ起動で、指定URLに飛ぶ処理ってできます?
759デフォルトの名無しさん:05/02/04 16:15:39
>>758
ez2urlto: 使えば出来るんちゃうか?
ezurlto: だと、アプリ終了時にメモリ解放しちゃうから駄目ぽ。
760デフォルトの名無しさん:05/02/04 16:42:05
ez2urlto??

ググっても出てこないんですけど、KDDI拡張とか?かな。。
761デフォルトの名無しさん:05/02/04 19:23:42
>>760
あー、まさにその通り。
ISHELL_BrouseURL() の KDDI仕様です。
762デフォルトの名無しさん:05/02/04 19:24:13
↑ISHELL_BrowseURL() のまちがい。
763デフォルトの名無しさん:05/02/07 09:41:06
あらっ、今週は誰も休日出勤してないのね保全。
764デフォルトの名無しさん:05/02/07 13:04:45
みんなちゃんと寝たか?
FFはやったか?
765デフォルトの名無しさん:05/02/07 23:41:15
何かの役にたてば・・・全然関係なかったらスマヌ


http://hobby7.2ch.net/test/read.cgi/appli/1106984938/

868 名前:非通知さん@アプリ起動中 投稿日:05/02/07 22:05:12 ID:2bpJt0lw
今発見したんだが、どうやらWebのキャッシュがたまってるとアプリの動作が遅くなるみたいだ。
電源切ってキャッシュ消した後にロックマンやったら動作が速くなった。
既出だったらスマン。


869 名前:非通知さん@アプリ起動中 投稿日:05/02/07 22:08:09 ID:6mA9h/9J
>>868
外出というより常識かと思われ。
ただし、W21CAなどのハイエンド機種では大差は無い。
766デフォルトの名無しさん:05/02/08 14:37:35
>>761
ありがとうございます。調べてみますー
767デフォルトの名無しさん:05/02/08 15:59:21
768デフォルトの名無しさん:05/02/08 16:11:42
>>767
で、そのインフォヴァー('A`)にはBREWは乗るのか?
769766:05/02/08 16:51:36
>>761
何度もすみません。
ISHELL_BrowseURL(app->a.m_pIShell,"http://www.yahoo.co.jp");

こんな感じで使うんですよね?
エミュ、実機共に何も起きなくて悩んでおります。。
これらのドキュメントは、もしやCPしか見られないんですかね?

こまりんこ
770デフォルトの名無しさん:05/02/08 17:00:25
>>766
>ISHELL_BrowseURL(app->a.m_pIShell,"http://www.yahoo.co.jp/");
惜しいけど違う。
いずれにせよそんなんじゃ検証通る訳無いんで、CPに資料貰って来い。
771デフォルトの名無しさん:05/02/08 17:01:06
>>769
エミュは何も起きない。でも、渡されたURLを確認することは出来た気がする。
というか、BREWの実装としてはシェルにURLを渡したらその先の実装はネイティブに依存。
URLがブラウザで見れるインターネットのサイトかどうかもわからん。

KDDIの端末ではブラウザを起動することも出来るが、
その詳細についてはCPにならないと教えてもらえない。

っていうか、そんなんだから優秀な学生プログラマがBREWに興味持ってくれないんだ。ヽ(`Д´)ノ
772771:05/02/08 17:20:37
>っていうか、そんなんだから優秀な学生プログラマがBREWに興味持ってくれないんだ。ヽ(`Д´)ノ
あ〜、769をけなしてるんじゃないよ。
qualcommがBREW有料にするからイクナイって言いたい訳。
773デフォルトの名無しさん:05/02/08 18:45:19
>769-772

ezfactoryで配布しているプログラミングリファレンスにコードまで載ってる
4.1.1 ISHELLの(43)
774デフォルトの名無しさん:05/02/08 18:49:49
と思ったらezurltoしか載ってないじゃんorz
スマンカッタ
775デフォルトの名無しさん:05/02/09 15:30:11
そうだ!スタートイベント時にこっそりデバックプリントフ"ぬるぽ"て書いとかないか?
776766:05/02/09 16:12:42
なんどもx2すみません。
ブラウザは起動は無事成功いたしました。感謝

で、BREWアプリは終了させてブラウザのみ動いてほしいのですが
こういうのは。。どうなんでしょう。
アプリを終了させると、ブラウザも終わってしまうので。
777デフォルトの名無しさん:05/02/09 16:23:50
>>776 できない
778デフォルトの名無しさん:05/02/09 17:31:59
>>777
>>759
どっちが正解だ?
ブラウザ起動させてアプリ終了て不可能?
779デフォルトの名無しさん:05/02/09 18:18:33
>778
ezurltoだと不可でez2urltoだとOKだな多分。
プログラミングガイド精読しる
780779:05/02/09 18:24:41
いやそれは勘違いか...単に待ち受けで使えるだけか...?
漏れは使ってないからワカンネ。
781777:05/02/09 19:18:26
サービスガイドに書いてあることを要約すると、
・待ち受けアプリでezurltoを使ってブラウザ起動すると、
 呼び出し元のアプリが終了してしまい、無事にアプリに戻れなくなる。
・ez2urltoを使うと、待ち受けアプリからでもアプリを終了させずに
 ブラウザ起動できるようになる。

このことから、ezurltoもez2urltoも『アプリからブラウザを呼び出しても、
元のアプリに無事戻ってこられるように』という考えで用意されてると言える。

つまり、待ち受けでも待ち受けでなくても、ezurltoでもez2urltoでも、
「ブラウザを起動してアプリは終了させる」という動作はできない、と。
(わざわざ、そういう操作をできないようにしているのだと)

…と、自分は理解しているんだが。マチガエテル?
782デフォルトの名無しさん:05/02/09 22:44:31
ret_evt に EVT_APP_STOPを入れておいて、
ブラウザ終了時にアプリも終了させるのはダメ?
783デフォルトの名無しさん:05/02/10 02:10:27
>>782
だめ。
まあカスタムイベント受信→イベントハンドラ内でISHELL_CloseApplet()で見た目としては閉じられそうだけど。
784デフォルトの名無しさん:05/02/10 02:51:58
サービスガイドでezurlto周りの説明覚えてないが、
ezurlto使ってプログラミングガイド通りの記述をすると、
アプリはサスペンドに入るっぽいんだが。

サスペンドイベント捕まえてISHELL_CloseApplet()呼んでもアプリは終了しなかった。
ez2urltoは試してないんでわからん。
785デフォルトの名無しさん:05/02/10 09:54:01
ez2urlto で ISHELL_BrowseURL() して、即 ISHELL_CloseApplet() じゃだめなん?


・・・自分で試してみれって話だな。w
786766:05/02/10 16:56:09
>>785
いっしょにブラウザも終わってしまいますねー。

一応それっぽいことはできました。
ブラウザ起動で、サスペンド中は待機。
で、アプリに戻ってきた場合は、終了するclassに入っていく・・ような。
一瞬の間はできてしまいますが。

検証とおるかなー
787デフォルトの名無しさん:05/02/13 23:43:47
なんだよみんな連休かよバーカ
788デフォルトの名無しさん:05/02/13 23:59:03
(゚∀゚)アヒャヒャヒャヒャ 休日出勤頑張れ!
789デフォルトの名無しさん:05/02/14 10:44:14
今はKDDI検証が渋滞中らしいからみんな暇なんかね?
790デフォルトの名無しさん:05/02/14 14:12:29
ぶりゅっ
791デフォルトの名無しさん:05/02/14 15:04:04
漏れも渋滞待ち ノ

今思えば、ちゃんと休み取っとくんだった・・・
792デフォルトの名無しさん:05/02/14 16:17:18
乙。代休は取れへんのか?
793デフォルトの名無しさん:05/02/15 20:35:18
話は変わるが、アプリゲットでBREWアプリも登録出来るようになったらしいね。
ttp://ac-admin.appget.com/
794デフォルトの名無しさん:05/02/16 13:13:28
795デフォルトの名無しさん:05/02/16 13:36:02
誰が作ったかわかんないBREWアプリなんて
どうせ怖くて落とせないだろうし無問題。
796デフォルトの名無しさん:05/02/16 20:10:01
>795
いや、アプリゲットは公式コンテンツへもリンクできるから、公式コンテンツを宣伝できるってことでしょ。
勝手アプリなんて今のBREWでできるわけないし。
797637:05/02/16 21:51:48
カメラの道は”無駄に”厳しいっす
端末仕様書に嘘が書いてあったりヘッダファイルにバグがあったり
おまいら本当にCPにアプリ作らせる気があるのかと>K,Q
798デフォルトの名無しさん:05/02/16 21:57:43
>>797
禿しく同意w
機種毎にフォントが違うのはどーにかするが、
カメラまわりの機種依存処理はホントひどいな。
799デフォルトの名無しさん:05/02/16 23:12:58
半年ぶりにBREWに戻れそうです。おまいら、よろしく。
ところで半透明くらい使えるようになった?
800デフォルトの名無しさん:05/02/16 23:34:20
おまいの脳内の中ではバリバリ半透明使えるぜ
801デフォルトの名無しさん:05/02/17 11:04:13
アルファブレンディングくらい自分で書けと。

ところで、DBGPRINTFを使ってる人ってリリース時にどうやって削除してる?
ILoggerはマクロで抑制できるけど、DBGPRINTFは無理だよね?
可変長引数を取るマクロってARMコンパイラで使えるの?
802デフォルトの名無しさん:05/02/17 12:52:35
>>801
マクロじゃなくて置換で

#ifdef _DEBUG
#define TRACE DBGPRINTF
#else
#define TRACE if(0)DBGPRINTF
#endif

if(0)DBGPRINTFの方は常に偽なので最適化で削除される。
あまり誉められたやり方じゃないが、ARMコンパイラで警告出さずにやる方法はこれしか思いつかん
かった。#else〜#define TRACE〜#endifの空宣言にすると意味の無い文字列やシンボルがあります
とか警告出るのよね。
803801:05/02/17 13:11:16
>>802
おーありがとう。
今は
#if defined(DBGPRINTF) && !defined(_DEBUG)
#undef DBGPRINTF
#define DBGPRINTF
#endif
ってやってて、Warningでまくってたわw
#define DBGPRINTF(fmt, ...)
が使えればいいんだけどねぇ。
804デフォルトの名無しさん:05/02/17 13:44:10
>>802
BREW環境はよく知らない通りすがりですが
TRACE((fmt, ...));
と書いとけば
#ifdef _DEBUG
#define TRACE(args) DBGPRINTF args
#else
#define TRACE(args)
#endif
でいけるような。
805802:05/02/17 15:41:35
>>804
なるほど、()で引数1つに纏めるわけですか。

しかしこれ、DBGPRINTFの第一引数はchar *固定なわけですがARMコンパイラだと
TRACE(("nullpo %d", 100));

DBGPRINTF(("nullpo %d", 100));
と展開しようとしてキャストエラー吐かれます(非0なconst intをポインタに変換できない)。

同様の手法でやるなら、IWEB_GetResponseの引数みたいに
#ifdef _DEBUG
#define TRACE(fmt, arg) DBGPRINTF(fmt, arg)
#else
#define TRACE(fmt, arg) /* nop */
#endif
と定義して、呼び出し側で
TRACE("ぬるぽ %sx%d", ("ガッ", 256));
みたいに呼ぶしかないんじゃないでしょうか。
806デフォルトの名無しさん:05/02/17 16:57:23
>>805
> DBGPRINTF(("nullpo %d", 100));
 TRACE(("nullpo %d", 100));
  ↓
 #define TRACE(args) DBGPRINTF args
  ↓
 DBGPRINTF ("nullpo %d", 100);
を期待したんですがARMのプリプロセッサの仕様かもしれないですね。
引数2つだとfmtだけのTRACEが書けないので、うーん。

一応確認ですがDBGPRINTFの後のargsに()は付けないんですよー。
807802:05/02/17 17:07:47
#defie TRACE DBGPRINTF args
でうまくいきました(*´д`)ゞ

あーハズカシ…
808デフォルトの名無しさん:05/02/17 17:42:29
おし、この勢いで行けばMIDPスレを超える!('з')
809デフォルトの名無しさん:05/02/17 20:38:27
漏れの場合

#ifdef _DEBUG
#define _DPRT0(fmt)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__);
#define _DPPRT1(fmt,a)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a);
#define _DPPRT2(fmt,a,b)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a,b);
#define _DPPRT3(fmt,a,b,c)DBGPRINTF("%s(%d):"fmt,_BN(__FILE__),__LINE__,a,b,c);
#else
#define _DPRT0(fmt)
#define _DPRT1(fmt,a)
#define _DPRT2(fmt,a,b)
#define _DPRT3(fmt,a,b,c)
#endif
見たいな感じにしてる。
ファイル名と行番号を自動で同じ行に出したいので、可変引数一括り方式だとうまく行かなくてね。
まあ3つ以上も引数とることなんてまず無いのでこれで用は足りるがほしければ定義増やせば良いだけだし。

ちなみに_BNはbasename的な機能を持たせたマクロね。
810デフォルトの名無しさん:05/02/17 23:03:32
>>801
ごめん。ちょっと質問させて。
アルファブレンドを直接書いて、使い物になる速度って出ます?
たいがい広範囲にかぶせますよね?アルファ付きのものって
811810=(799):05/02/17 23:09:37
>>801
自分はこんな感じでやってます。
誰も書かないってことは、もしかして推奨されない方法?
それともトンデモ勘違いやらかしてる?

int debugprint(char* str,...)
{

#ifdef DEBUGLOG
 va_list  ap;
 GP*   gp;
    gp = (GP*)(GETAPPINSTANCE());
    va_start(ap,str);
    VSNPRINTF(gp->gvarsDebugbuffer,128,str,ap);
    va_end(ap);
    DBGPRINTF(gp->gvarsDebugbuffer);
#endif
    return(0);
}
812811:05/02/18 01:28:44
悪い、トンデモ勘違いだった。
>>811は忘れておくれ
813デフォルトの名無しさん:05/02/18 01:36:31
javaに移植するとき面倒だからprintf構文を直接使うのはやめました
814デフォルトの名無しさん:05/02/18 01:54:18
BREW→Javaって移植あるん?
815デフォルトの名無しさん:05/02/18 08:53:33
#define TRACE !DEBUG ? (void)0 : DBGPRINTF
816デフォルトの名無しさん:05/02/18 10:02:24
>>814
スペック的に不可能かと・・・
817デフォルトの名無しさん:05/02/18 10:08:01
>>814
やったことあるよー、ゲーム下請けだけど
iアプリ→BREW→iアプリ
とか微妙な仕様変更付きでやったことがある。
当然iアプリ移植のときにサイズオーバーしたら仕様削減とか
してもらわんと入らないわけだが。
818デフォルトの名無しさん:05/02/18 14:58:58
(,,゚Д゚)∩先生質問です

ちょっとまえぐらいのレスでブラウザ起動について参考にさせていただきました。
で、W21Kなんですけど、起動しないんですよね。W21SとW21SAはできてるんです。

W21Kも、まったくできないわけでなく、電源を入れた直後ならできるという。。
メモリ周りなのか、ブラウザの履歴もおかしいような感じです。

ソースは、リファレンスのほとんどそのままです。

何か注意点あります?
819デフォルトの名無しさん:05/02/18 16:32:42
>>818
メモリ周りっぽいなぁ。
EVT_APP_SUSPEND あたりで FALSE 返してるとか。
W21K だと ezurlto だから、ブラウザが起動してる間は
ShimBrowserInfo 構造体のヒープは解放しちゃいけないよん。

W21S と W21SA でうまくいってるのは、たまたま解放された
ヒープの内容が書き換えられてないだけだと思う。
820デフォルトの名無しさん:05/02/18 19:28:20
>>725
あーウチと同じ症状だ。
CPからバグレポ着たとき「なんか見たことあるなぁ」と思ったら725さんの書き込みですた。
とりあえずW21Sのレジューム復帰後の処理落ち対処方法わかったけど
KDDIに確認するからってCPから検証止められた。


・・・・というか725さんと同じCPな気がする_| ̄|〇
821デフォルトの名無しさん:05/02/18 20:13:07
質問お願いします。
端末のフォントサイズやフォントの種類を変更した場合
IHTMLVIEWERで作成した画面のテキストのフォントは追従し
てくれますでしょうか?
こういうのは機種(メーカー)依存?
822デフォルトの名無しさん:05/02/19 00:37:26
ダイアログの作成をしようとしてますが、

ISHELL_CreateDialog(pi->a.m_pIShell, "dialog.bar", 6001, NULL);

の戻り値がSUCCESSとなりません(コンパイル自体はできます)。
リソースIDやファイル名も合ってます。
ダイアログを作成するに留意する点ありませんでしょうか?



823中の糞:05/02/19 02:08:29
>822
EVT_DIALOG_INIT, EVT_DIALOG_START イベントにTRUEを返す。

IDialogは仕様が激しく糞であり、利用はまったく以ってオススメできません。
特にITextCtlを貼った場合、その動作ははっきり言って予測不能です。
824デフォルトの名無しさん:05/02/20 00:43:35
IWEB_GetResponse()を使って同じLAN内のWEBサーバから画像を表示させようと
しておりますが、表示に5秒ぐらい時間がかかってしまいます。
BREW出力ウィンドウを見ると、IWEB_GetResponse()を実行した後に
==>AEETAPI_cbCallEvent
と表示され3秒ぐらい後にもう一回
==>AEETAPI_cbCallEvent
と表示されてます。

関数はこんな感じで実行してます。
IWEB_GetResponse(pi->web,
(pi->web, &pi->piWResp, &pi->cb, pi->purl,
WEBOPT_HEADER, "X-Method: GET\r\n",
WEBOPT_METHOD, "GET",
WEBOPT_END));
表示速度を速める方法ありませんでしょうか?
825デフォルトの名無しさん:05/02/20 04:36:30
先読みするぐらいしか考えつかないなあ。
事前にアクセスしといてメモリに置いとくのがいいのではないかと。
その場その場でネットワークからロードはオーバヘッドが大きすぎる気が。
ただGETでアクセスするだけでもIWebは時間がかかる。
ISocket使ってコネクション確立してhogehogeとやったほうがいいかも。
826デフォルトの名無しさん:05/02/20 04:37:33
ああ…でも、ISocketでもその場その場でロードは
実用に耐えるか試したことないので、分からないな。
素直に先読みするのが賢いんではなかろうか。
827デフォルトの名無しさん:05/02/20 09:13:51
っというか初回は遅いので空のドキュメントでもGET
しとけばいいんじゃないの?
828デフォルトの名無しさん:05/02/21 05:20:41
SDKをダウンロードできなかった!何故だ! …坊やだからか?

そんなわけでこの↓FAQを次スレからは是非加えてホスィ
http://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=71

入力時の注意事項とかエラーの詳細とか、
そのくらい書いといてくれよな…
意図はわからなくもないけど qualcomm のこの姿勢にはめっさ腹立つんですけど。
829デフォルトの名無しさん:05/02/21 08:14:25
例えば、IBitmapからjpgファイルを出力するときってどうやってる?
830デフォルトの名無しさん:05/02/21 10:25:57
831デフォルトの名無しさん:05/02/21 12:42:38
>>828
こんにちは、坊や。
>>829
ピクセル参照してYUVに変換して8x8ブロックに切り出して、
DCTかけてACスキャンしてハフマン圧縮すればいいんじゃないか?
832デフォルトの名無しさん:05/02/21 14:13:49
>>819
メモリの開放はしていないんです。
で、ブラウザが起動しないというよりは

接続できません
しばらくたってからリトライしてください

が出るんですよね。
画面には最後に表示したページのキャッシュ。
キャッシュを消して同じことをすると
延々とConnectingしているような感じです。
833デフォルトの名無しさん:05/02/22 01:36:48
WindowsみたいにBitmapのボタンを作ろうとしているのですが、
簡単な方法ございませんでしょうか?
834デフォルトの名無しさん:05/02/22 01:58:41
ボタン押とボタン通常の2パターン画像を用意する
835デフォルトの名無しさん:05/02/22 02:07:19
プログラムで動的にアニメBCIを作りたいんですが、BCIフォーマットの説明資料
とかってどっかにないですかね?
836デフォルトの名無しさん:05/02/22 02:26:14
>>833
Buttonクラスのようなものはないから、enabled/disabled、通常状態/押下状態
など各Bitmapを用意して自力で表示を切り替えて。

通常状態/押下状態の表現だけならBitmapで用意しなくても
IDISPLAY_FrameButton()でできる。これも表示の切り替えは自力でやるんだけど。
837デフォルトの名無しさん:05/02/22 10:26:19
流れをぶった切って質問。
Extensionの中でイベントを処理したいときってどうすればいいの?
イベントを受け取りたいExtensionをIAppletから継承すればいいのかね。
838デフォルトの名無しさん:05/02/22 10:37:47
>>835
BCIの詳細な情報は非開示です。

>>837
AEE_* のイベントをExtensionが直接受け取ることは出来ません。
(イベントはアプレットのHandleEventに渡されるので)
アプレットからExtensionに渡す処理が必要になります。
(アプレットがIMENUCTL_HandleEvent()を呼び出すのと同じことです)

コールバックなら直接受け取ることも出来ますが...。
839デフォルトの名無しさん:05/02/22 17:44:30
>>838
さんくす。
やっぱり
>(アプレットがIMENUCTL_HandleEvent()を呼び出すのと同じことです)
みたいなことしないといけないのか。
840デフォルトの名無しさん:05/02/22 19:34:21
>>819
818じゃない別人ですが、質問です。
ShimBrowserInfo構造体の定義が見つからないんで、自分で定義しちゃいました。
とりあえずブラウザ起動したんですが、自分で定義するもんですか?
決められた構造体なのに、なんか気持ち悪いです・・・
841デフォルトの名無しさん:05/02/22 19:37:56
>>840
普通に aeekddi.h に書いてあるように見えるのだが。
842デフォルトの名無しさん:05/02/23 10:32:53
https://secsvr.net/brewjapan.com/tech/form.html
BREW Technical Tips更新されてますぞ
843デフォルトの名無しさん:05/02/23 16:00:06
サンプルのFakeRPGのソース見ても理解できなかったので教えてください。
ISpriteインターフェースのタイルマッピング機能を使うと、
画面におさまらないほどのMAPでも管理してくれて、
さらに、スプライトする画像を動かすだけで、表示されてない部分に
移動したときでも、周り(MAP)も描画してくれますか?

それとも、毎回毎回、
画面に表示できるだけのMAPデータをセットしないといけないのでしょうか?
844デフォルトの名無しさん:05/02/23 16:19:26
端末のユーザー別のユニークなIDを取得する方法ってありますか?
マニュアルを調べているんですけどなかなか見つからなくって。
845デフォルトの名無しさん:05/02/23 16:29:22
>>844
IKDDIPHONESYSTEM_GetSubscriberID()
ではどうだろうか?
846デフォルトの名無しさん:05/02/23 17:15:03
>>841
ありがとうございます。
ShimSample内に入っていたので、サンプルいらないから入れてませんでした。
サンプルは必ずインストールせよ、ってことですかね?
やはり、気持ち悪い・・・
847デフォルトの名無しさん:05/02/23 17:44:20
>>844
ITAPI_GgetStatusのszMobileIDは?
一応電話番号を基本とするID取れるけど。(KDDIではまんま電話番号)
ただ、一度通信しないとこれが取れない端末とかあるけどね。
InfobarとかInfobarとかInfobarとか・・・
848デフォルトの名無しさん:05/02/24 09:32:38
>>844
サブスクライバIDか端末電話番号か、e-mailアドレスのどれかだね。
849844:05/02/24 12:45:37
>>845,847,848
ありがとうございます。
早速試してみます。

850デフォルトの名無しさん:05/02/24 15:12:43
質問です。
AEEClsCreateInstanceで作ったIApplet/AEEAppletのポインタを取得できる関数があった気がするのですが名前が思い出せません。
たしかヘッダーで g_pvtXXXX か何かを返していたと記憶していたのですが grep で見つけられませんでした(見つかったのはGET_HELPERのみ)。
どなたか教えてください。
851850:05/02/24 15:15:48
事故レスです。すみません。
GETAPPINSTANCE()でした。書き込んだ後すぐに見つけました。以後気をつけます。
852デフォルトの名無しさん:05/02/24 15:56:09
あー・・・

GETAPPINSTANCE()の存在知らずにずっとポインタ渡してたよorz

まぁ・・・いっか
853デフォルトの名無しさん:05/02/24 17:04:21
BREWなんか動きゃいんだよ
854デフォルトの名無しさん:05/02/24 17:28:04
>>851-852
GETAPPINSTANCE()に関しては某機種の某コールバック中で正常に動作しない不具合が...。
なので過信しない方がいいっす。
855デフォルトの名無しさん:05/02/24 17:51:54
>>854
どうせなら報告もかねてちゃんと機種を晒してくれw
856デフォルトの名無しさん:05/02/24 18:03:25
>>855
いやKDDIのFAQに出とるし。ヒントは2.0端末。
GETAPPINSTANCE()で探せば出るでしょ。
857デフォルトの名無しさん:05/02/24 18:19:44
BREWはCP通さないと落ちてこない情報とか特に多いから
面倒だよなぁ・・
858デフォルトの名無しさん:05/02/24 22:30:17
>GETAPPINSTANCE()の存在知らずにずっとポインタ渡してたよorz
逆にその方がわかりやすい構造になる罠w

安易にどっからでもポインタを参照するよりはクラス(Cなら構造体)の
結び付きとか意識した設計になるっしょ。

…一概には言えないかな?
859デフォルトの名無しさん:05/02/25 02:01:40
>>858
普段はそれでいいけど・・・
コールバック使うクラスはメンバにAEEAppletのポインタを持つ謎仕様orz
860デフォルトの名無しさん:05/02/25 20:15:27
エミュでMA5のSMAFを再生するのは不可能でしょうか。
何も鳴らない・・・。
アプリにはそこまで必要ないってことなのか・・・。
861デフォルトの名無しさん:05/02/25 21:02:53
3Dの表示をやっているんですがIMICRO3D_Render_drawFigure()が
失敗してるっぽい感じでモデルデータが表示されません。
失敗する原因、いくつかあると思いますが、
もし知っている方がいれば教えてもらえないでしょうか?
862デフォルトの名無しさん:05/02/25 21:59:28
>>861
カメラがあさっての方向を向いてるんじゃないの?
もしくは遠すぎるか。
863862:05/02/25 22:01:41
あと、MascotCapsuleの描画領域はdirtyと判定されないようだから、
背景を何か描くか、明示的にIBITMAP_Invalidate()を呼ばないと駄目だった
気がする。
864デフォルトの名無しさん:05/02/25 23:00:09
試験用端末を全部窓から投げ捨てろ!
865デフォルトの名無しさん:05/02/25 23:32:19
iMona使えてる人いる?
866デフォルトの名無しさん:05/02/25 23:47:23
iMonaって、JAVAアプリじゃないの?
移植して自分の端末だけに入れて楽しむの?
867デフォルトの名無しさん:05/02/26 19:14:24
デスマの人手挙げてー?
868デフォルトの名無しさん:05/02/26 22:27:19
869デフォルトの名無しさん:05/02/26 22:35:48
          ∧_∧
        ⊂(´・ω・`)つ-、
      ///   /_/:::::/   大変だねぇ
      |:::|/⊂ヽノ|:::| /」
    / ̄ ̄旦 ̄ ̄ ̄/|
  /______/ | |
  | |-----------| |
870デフォルトの名無しさん:05/02/26 23:07:15
がんがれよ




検証マダー?
871デフォルトの名無しさん:05/02/28 00:51:39
*と+をあっちこっちで記述ミス発見。
あはははははははははははfはふぉあうydfさhsdfpふじこp;@

渋滞させてくれたみんな、サン糞!
872861:05/02/28 11:54:05
>>862
レスありがとうございます。
IMICRO3D_Render_drawFigureの返値調べたらHI_FALSEになってるみたいです。
で、ちょっと質問なんですがFigureに正常にロードできてるか見る方法ってありますか?
あとdrawFigureをする前にしなきゃいけないこととかあります?
873デフォルトの名無しさん:05/02/28 14:03:44
>>872
IMICRO3D_Figure_loadMbacDataの戻り値じゃなくて?
これでHI_TRUEが返ってれば大丈夫だと思うけど。

あとはサンプルのファイル名(とテクスチャ名)だけ差し替えてテストしてみるとか。

drawFigureの前ってカメラの行列設定くらいしか無かったような。場合によっては
setPattern/setTextureとか。
874861:05/02/28 16:34:45
それがロードはできてるみたいなんですよ。
IMICRO3D_Figure_loadMbacDataではHI_TRUE返ってきてます。
Figure構造体の中のいくつかの変数見たんですが、ロード直後とIMICRO3D_Render_drawFigureの直前の数値が一緒でした。
なのでロードの失敗はないと思います。
この状況でIMICRO3D_Render_drawFigureを失敗するっていうのは何が原因なんでしょうか・・・orz
875デフォルトの名無しさん:05/02/28 16:45:22
>>874
そんじゃ、やっぱしテクスチャがセットできてないとか、Renderの設定がおかしい
(setVramのあたりとか)じゃない?
876デフォルトの名無しさん:05/02/28 16:46:22
アプリでフルブラウザあるじゃん
ttp://appget.com/ez/pc/apview_023553.htm
877861:05/02/28 17:24:31
アドバイスありがとうございました。なんとかできました。
なんとIMICRO3D_Render_initializeしてなかったです・・・。
たったこれだけで丸1日かけてしまっくぁwせdrftgyふじこlp;@:「
878デフォルトの名無しさん:05/02/28 18:59:37
barファイル(もしくはbriファイル)の内部構造ってどっかに説明ころがってませんかね?
多言語対応でメッセージをすべてリソースから読むのは良いのですが、メッセージの種類が
増えたときとか、5つも6つもすべてのリソースに追加するのってかなり面倒で・・・
フォーマットが分かればCSVとかで用意して自動生成できるんですけどね〜
まあおそらく非公開なんだとは思いますが・・・
879デフォルトの名無しさん:05/02/28 19:41:08
>>878
ttp://brewforums.qualcomm.com/ja/showthread.php?s=&threadid=323
に、BARファイルのフォーマットは公開してないって書いてある。

ちなみに俺は適当なキーマクロ使ってリソース追加してる。
880デフォルトの名無しさん:05/02/28 22:25:36
>878
ResourceEditor3.0から、中間フォーマットをXMLで吐くようになり、これから(コマンドラインで)barファイルを生成可能です。
XMLのフォーマットは見ればだいたい分かるものなので、推測して生成することはできると思います。

SDK3.0 インストールして使ってみてください...
881デフォルトの名無しさん:05/02/28 22:40:56
いやまて、実際にどう動くかとかは使って無いからわからないけど、
コマンドラインでのbar生成ってQのサイトに以前から無かったか?
勘違いかな?
882デフォルトの名無しさん:05/02/28 22:55:21
じゃあURLを書きなさい
883デフォルトの名無しさん:05/02/28 22:56:07
>>881
以前
 bri (フォーマット未公開、バイナリで解読困難)→bar
現在
 bfx(フォーマット未公開だけどXMLベース、何とか解る)→bar

そんな訳で少しは使い易くなったはずです。
884デフォルトの名無しさん:05/03/01 09:54:10
>>883
ちょくちょく情報サンクス
885デフォルトの名無しさん:05/03/01 12:44:46
>>880-883
ありがとうございます〜
SDK3.0だとXMLなんですね。
それは知りませんでした。
XMLならかなりやりようがあるので、それで対応したいと思います。

>>879
ありがとうございます。
既存リソースファイル郡に1つだけ項目追加とかには今までWSHのsendkey
で対処してたんですが、中国語とか入ってくるともうだめぽって感じだったんで。

しかし、海外向けだと結構端末の癖があって泣かされますね。
#それでもJAVAよりはましだけど
電波はいらないと動かない端末とかあるし、サーバ連携周りはどうしても現地じゃ
ないとテストできないし。
886デフォルトの名無しさん:05/03/01 23:05:55
例えばJAVAとBrewでftpソフトのような通信関連のアプリを作った場合
理想的にはどれくらい速度の差が出るのでしょうか?
887デフォルトの名無しさん:05/03/01 23:27:58
BREW Browserのインストールディレクトリ\tools\barc.exe
がコマンドライン版のbar生成ツールかなと思う
現在はもうサイトにも無い様子
888デフォルトの名無しさん:05/03/02 00:15:53
BREWのリソース作成環境は嫌がらせとしか思えないよね。
889883:05/03/02 01:12:00
>>887
BREW SDK 3.0には brewrc.exe が含まれており、こいつが883で書いたXML→barのコンバータです。
(883ではXMLファイルを.bfxと書きましたが .brxの間違いでした)

SDK3.0 の SDK User's Guide のリソースエディタ→BREWリソースファイルのコンパイル→
コマンドを入力してBREWリソースファイルをコンパイルする のページを参照してください。
890デフォルトの名無しさん:05/03/02 07:38:16
BREW2.0とか2.1からでも、3.0で作ったbarを読み込んでも
問題無いもの?
891デフォルトの名無しさん:05/03/02 11:00:48
>>890
RESTYPE_BINARY使わなければ大丈夫です...多分
RESTYPE_IMAGE、RESTYPE_STRINGは変わっていないです
892デフォルトの名無しさん:05/03/02 12:26:02
>>890-891
とりあえず、SDK2.1のリソースエディタで作ったbriファイルを、SDK3.0のリソース
エディタで読み込みbrxで保存、brxをテキストエディタで修正してSDK3.0でbarを作っ
てみましたが、BREW2.1端末で普通に読めました。
おそらくIMAGEとSTRINGだけしか使わなければ大丈夫そうです。
893デフォルトの名無しさん:05/03/03 02:16:00
やっと実機が来たので、とりあえず認証ファイルを取得しようとしたの
ですが、0xaabbccddのフォーマットのESNが見当たらないです。
四角で囲ったアルファベットの後に、IDっぽいのが2行あるのですが、
これのうちのどちらかがそうなのでしょうか?
あきらかに0xaabbccddのフォーマットではないのですけど。
894デフォルトの名無しさん:05/03/03 02:28:57
>>893
TestSig取得のことか? 開発ツールガイドに出てるぞ。
895デフォルトの名無しさん:05/03/03 09:18:35
>894
すみません。載ってました。
はずかしいなぁ。
896デフォルトの名無しさん:05/03/03 13:16:42
IDATECTLで、YYYY/MM/DDのフォーマットで表示したいのですが、
IDATECTL_SetProperties( pMe->MyDate, DFMT_YYYY_MM_DD );
としても「3月 3, 2005」という表示になってしまいます。
他のフォーマットを指定しても表示が変わらないのですが、
何か見落としていると思われる点がありましたらご指摘願います。

環境
WinXP Pro SP2
VC++ 6.0
BREW SDK 2.1.1
端末:W21S
897デフォルトの名無しさん:05/03/03 15:04:24
BREW2.0の機種なんか見捨てようと思います。
898デフォルトの名無しさん:05/03/03 15:38:09
ちょっと聞きたいのですが
サスペンドしたときに開放するメモリは
MALLOCした部分だけでいいんですか?
たとえば読み込んだbmpなども、一旦手放して
読み込みなおしですか?
899デフォルトの名無しさん:05/03/03 15:44:24
回答:BMP含め不要なものは全て

解答:実際何が「必要」で何が「不要」かの判断はプログラマによるところなので
    全部必要と思えば解放しなくて良いw
900デフォルトの名無しさん:05/03/03 15:50:08
おお。じゃぁ開放できないんです!って粘ればおk?ウホホイ
901デフォルトの名無しさん:05/03/03 16:20:18
開放するとリジューム時に不安定になります(゚∀゚)

とか言う。
902デフォルトの名無しさん:05/03/03 16:23:58
IMEDIAとかIWEBは握りっぱなしじゃまずいだろ
903デフォルトの名無しさん:05/03/03 16:29:33
@以下のインスタンスは、サスペンド時に必ず解放しなければならない。
・IFILE,IPOSDET,IKDDIPPP,IWEB,ISOCKET,INETMGR,IDNS,IMEDIA,ISOUND
(通信系、サウンド系インタフェース全般)
・IKDDIPPP
・Extension
A以下のインスタンスは、開放してはならない。
・IFileCp,ITextCtl
B以下の処理をしている場合は、必ずその処理を終了(停止)しなければならない。
・サウンド(メロディ、ビープなど)
・アニメーション
・バイブレート
・バックライト
・ISHELL_SetTimer()したコールバック関数(キャンセルはISHELL_CancelTimer())
・ファイル処理中[読み込み/書込み時](オープンされているファイルはクローズする)
Cレジュームイベント中にしなければならない処理
・レジューム要求”EVT_APP_RESUME”に対し、返却値として”必ず”TRUE”を返して下さい。
”FALSE”を返却すると”EVT_APP_STOP”が送出されBREW アプリは終了してしまい、
BREW アプリは再起動されてしまします。
904デフォルトの名無しさん:05/03/03 17:29:29
サービスガイドの「サスペンドとレジュームにおける留意点」を読んで判断せよ
少なくとも粘って言い張るとか言い訳を用意するとかそういうレベルの話じゃない
905デフォルトの名無しさん:05/03/03 21:17:44
んだんだ。
最低限やらなきゃ行けない処理だけ施せばとりあえず検証は通る。
あとはレジューム時に上手くエラー処理しながら復元するぐらいかと。
906デフォルトの名無しさん:05/03/04 07:26:03
int/long/int16/int32のsizeofを見て勘違いに気付く。Cで
 short または int といえば 'short int' のことで 2byte
 long といえば 'long int' のことで 4byte
だと思ってたのでBREWでは
 int16(はshortだから) = int = 2byte
 int32(はlongだから) = 4byte
であろうと…

いやー int = long = 4byte だったとは。
4byteでありたい整数は律儀に全部 int32 と書いていたけどこれからは
普通に int でいいな。'int32'って書くの何か気持ち悪かったんだ実は。


…スンマセン
白状すると16bitCPU時代に身に付いたint=2byteの先入観がありました orz
907デフォルトの名無しさん:05/03/04 15:22:37
あ"ぅーCPのチェックが通らないぃぃぃぃ
何でうちでチェックしたMAXヒープと向こうがチェックしたMAXヒープ違うんだ_| ̄|〇
しかも某チェックツールで確保したメモリも勝手に解放しちゃうし・・・
某3Dくのいちゲーでも勝手に解放してたからBREW(というか某チェックツール?)の仕様なんじゃないかと・・・
しょうがない、もう一個の振る振るツールでチェックするか(;´Д⊂)
908デフォルトの名無しさん:05/03/04 15:58:58
某チェックツールってのがK某だったら、奴はメモリ少なくなると落ちるぞ。
そういう時はS某を使うといいらしい。
909デフォルトの名無しさん:05/03/04 18:48:26
ソフィアクレイドルのBREW圧縮ツールみたいなものを作りたいんですが、
それを作るために必要なBREW AEEの仕様みたいな資料は手に入らないでしょうか?
ご存知の方いらっしゃいましたら、よろしくお願いします。
910デフォルトの名無しさん:05/03/04 19:01:37
>>907>>908
事前検証手順書、メモリ不足の備考欄。
退避起動でツールKが終了してしまう場合はツールSを使えと。
ツールSの振る舞いはサービスガイドP76に。
検証のメモリチェックはいくつかやればコツ覚えるから。がんばれ。
911デフォルトの名無しさん:05/03/04 20:24:49
>>908さん >>910さん
ありがとうございました。
やっぱりそれですよね。
ガイドとかサイトのFAQ読んでたんで知ってはいたんですが・・・
説明したらCPも納得したようなので問題解決です。
初回はすんなり検証通ったのに機種移植の段階でこんなに苦労するとは(;´Д⊂)
担当者がかわ(ごにょごにょ
912デフォルトの名無しさん:05/03/04 20:41:08
担当者が可愛いのか。うらやますぃ。
913デフォルトの名無しさん:05/03/05 01:29:08
1.ISHELL_SetTimer()でタイマーコールバックをセットする
2.別の処理Aを行う
3.処理Aの途中で1.でセットしたタイマーが作動する
4.3.で作動したコールバックが終了後、処理Aの途中から再開する

タイマーを使えば普通にこういうことができると思ってたんですが、
処理Aの途中ではタイマーが作動しません。
イベントループに入って初めてタイマーが作動するようなんですが
こういうものなんでしょうか。
もし1.〜4.のようなことができる方法ご存知でしたらお願いします。


914デフォルトの名無しさん:05/03/05 01:32:16
できたらこまるでしょ
915デフォルトの名無しさん:05/03/05 02:30:33
>>906
幾ら何でも古すぎるぞ。
916デフォルトの名無しさん:05/03/05 04:41:43
>>915 いやお恥ずかしい。
int32のtypedefがlongじゃなくてintだったら勘違いもなかったと思う。って言い訳だなw
917デフォルトの名無しさん:05/03/07 06:32:58
アプリ内で生成したIBitmapオブジェクトをアプリ終了時にファイル保存し、
次回起動時にそのファイルを読み込んでIBitmapオブジェクトを得る、
という処理を考えています。やり方についてアドバイス願います。

読み込み時にISHELL_LoadBitmap()を使おうとする場合、IFILE_Write()の引数とする
「バッファとその長さ」と、保存しようとしているIBitmapの結び付けが思いつきません。
IBitmapを、ISHELL_LoadBitmap()で読み込める形のファイルで出力する場合、
どんなやり方になるでしょうか。
---
 ISHELL_LoadBitmap()で読み込めるフォーマットってWindowsのBMP形式ですよね。
 ということはIBitmapオブジェクトからWindowsのBMP形式を作り出して、それを保存
 するということになりそうですが、手っ取り早くやるにはどうすれば…
 (実は上手い方法なんてなくて、皆さん自力で変換処理を組んでいるのでしょうか)

また、読み込みでISHELL_LoadBitmap()にこだわらないなら、他にどのような
やり方が考えられるでしょうか(どのインターフェイスが利用できるでしょうか)。
918デフォルトの名無しさん:05/03/07 10:29:47
>>917
IBITMAP_QueryInterface()でIDIBを生成
IDIBからBMPファイルに保存する
って方法を取ってます

ヘッダを自分で生成したりしなくちゃいけないからめんどかったけど。。
919デフォルトの名無しさん:05/03/07 10:56:52
>>913
割り込みじゃないからね。
Windowsのタイマーイベントだって基本的には同じでしょ。
それに、BREWは短い周期でフレームワークに処理を戻さないとウォッチドック
タイマに引っかかるからそれほど問題ないと思うし。
#もともとそんな高精度のタイマを期待しちゃいかんし

>>918
LoadBitmapとか使うのが前提じゃなければヘッダはなくてもいいんでない?
まあファイル読込処理は非同期で面倒だからヘッダ作ったほうが楽そうでは歩けど。
920デフォルトの名無しさん:05/03/07 11:09:26
>>919
BREWの中だけでつかうのならヘッダはなくてもよかったのかな?
PC上で確認するためにはデータ部分だけじゃだめだったから
ヘッダ付与したりしてました・・・
921デフォルトの名無しさん:05/03/07 19:17:12
ビルボードの作り方がわからない・・・_| ̄|○
正方行列じゃないから逆行列使えないし。
どうすりゃいいんだろ?
922デフォルトの名無しさん:05/03/08 01:46:14
>>921
ポイントスプライト使えばいいじゃない
923921:05/03/08 11:16:34
>>922
ポイントスプライトってなんかまずいことないのん?重くなるとか。
DirectXとかだと汎用性があんまりないというかビルボードの方がいいとか言われてるっぽいんだが。
924デフォルトの名無しさん:05/03/08 12:23:01
>>923
特に重いってことはないなぁ。

・自由変形ができない
・制御点がスプライトパターンの中心に固定

が不便じゃなきゃ、素直にポイントスプライトにしとくのが楽じゃないかなぁ。
頂点座標も計算しなくていいし、視点変換行列もワールドでいいし。
925デフォルトの名無しさん:05/03/08 15:31:47
ちょっとお聞きしたいのですが、IMEDIA_Playで音楽を再生するときに
かならず一瞬動作が遅くなるのですが、これはプログラムの書き方が
悪いからなのでしょうか?
勉強の一環でBREWでゲームをつくっているのですが、同時再生をする
ことはできたのですが、効果音を鳴らすたびに一瞬動作が重くなるの
はつらいので・・・
926デフォルトの名無しさん:05/03/08 15:42:21
>>925
エミュレータ環境だとウチの所も曲のループの時とか処理落ちするね。
実機だったら、まず機種を言ってくれると助かる。
927デフォルトの名無しさん:05/03/08 15:50:11
>>926
あ、やっぱりエミュレータだと処理落ちするみたいですね。
学生なので実機テストを行うことができませんので機種をいうことは
できないのですが、実機だとそのへんも普通に動くのでしょうか?
928デフォルトの名無しさん:05/03/08 18:23:10
アイコンサイズって、26x26と16x16(一覧用)なの?
アプリ選択時に表示される画像サイズは80x40くらい?

いろいろ書かれてあって、どれが正しいのやらわからん。
BREW2.1以上だと、どのくらいですか?
929デフォルトの名無しさん:05/03/08 18:31:52
>>928
端末仕様書のアイコンサイズ参照のこと
930デフォルトの名無しさん:05/03/08 19:09:59
端末仕様書とMIFエディタで表記違うのややこしいよね(´・ω・`)

余談だがアイコンサイズの限界に挑戦すると結構面白いぞ。
37ピクセルでOK、38ピクセルでNGとか訳わからん機種が結構ある。
Infobarは100ピクセルでも表示できる。

そーいうトコロだけ力入れんでも良いんだぞと。
931928:05/03/08 19:21:05
>>929,930 みんなBREWの環境で苦労してんだね。
932デフォルトの名無しさん:05/03/09 09:11:46
環境はまだまだ発展途上でしょ
933デフォルトの名無しさん:05/03/09 10:29:16
>>927
とりあえず、ウチの所の実機では問題出てない。

>>928
BREW2.1になって今のところアイコンサイズは1種類で
対応できてるような気がする。
BREW2.0の時は2種類用意してたけど。
934デフォルトの名無しさん:05/03/09 13:31:13
>>434
うーん、俺もデバッグできないな。
書いてあるとおりやってるんだが・・・
自分はVS .NET 2003。
「(パス)\BREW_Emulator.exe'にはデバッグ情報がありません。
 続行する場合は[OK]を押してください」
のダイアログは俺も出た。
ソースはウィザードで作ったHelloBREW。
デバッガ起動すると、ブレークポイントがクエスチョンマークになる。
で、そこで止まってくれない。
935934:05/03/09 13:32:12
BREWのバージョンはBREW SDK v2.1.1 Jaでつ。
936934:05/03/09 14:33:03
アプレットディレクトリの変更を忘れてた・・・
あとmifを置くパスもサンプルと違った。解決。
チラシの裏日記でした(・∀・)
937917:05/03/09 17:06:16
アドバイスありがとうございました。
ISHELL_LoadBitmap()は使わず、独自フォーマットのファイル読み書きで対処しました。
PCとのやり取りは不要なのでBMヘッダはなくても問題ありません。
基本的にはIBitmapから生成したIDIBをシリアライズして出力です。
938927:05/03/10 09:12:54
>>933
そうですか、やっぱり実機テストができないとだめですね。
就職した先で必要となったらまたBREWを勉強しようと思います。
ありがとうございました。
939デフォルトの名無しさん:05/03/10 15:19:28
>>933
A5502Kだと実機でも問題でましたよ;;
940デフォルトの名無しさん:05/03/10 17:07:00
>>939
メモリ1M端末は相手にしn(ry
嘘です、ごめんなさい。

そういえばガイド読むとBREWフォルダ3M以上ならアプリサイズ600kまでオケー
3M以下なら300kだと思ったんだがタ○ムクラ○シスとか○言朱とかA5503SA(2M端末)で
300k超えてるんだけど・・・ええの?
ウチも最近アプリサイズが厳しいんだけど、300kの壁越えられるなら超えたい
941デフォルトの名無しさん:05/03/10 20:32:10
>>940
大人の事情。本音と建前。

手っ取り早く300KBの壁を越えるための手段としてはgzip圧縮(IUnzipAStream)か。
リード&展開でローディング時間が増大、辞書のために瞬間的に40KBほどメモリ食うのが難点だけど。
.barファイルからだとgzip圧縮済みデータと展開後データで2重にメモリ使ってしまうのも嫌なところ。
逆にいえば.barからではなくファイルから直接読み込めば解決するけど、KDDIとしてはアプリ中で使う
データはできるだけ.barに置いて欲しいらしい。しかし絶対.barに収めなきゃいけないってわけでもないの
で交渉次第。

既にgzipまで組み込んでるならスマソ。
942デフォルトの名無しさん:05/03/11 01:17:41
>>941
IUnzipAStream使ってみればわかるけど、展開は速いよ。
943デフォルトの名無しさん:05/03/11 06:04:31
なんつーか、300kに抑える→300kなりのボリュームでつくる。
ってのが携帯ゲー製作のお手軽さ・楽しさじゃないかな?
少なくとも、うちみたいな弱小CPには、この制限はありがたいよ。
944デフォルトの名無しさん:05/03/11 08:45:45
いいえ
945940:05/03/11 13:21:49
>>941さん
gzipですか。
たまに使いますが基本的に画像は絞りに絞ったPNG、数値データやテキスト系のデータはバイナリなのでほとんど圧縮されないので効果はイマイチなんですよね。
ファイルヘッダーの分だけ軽くなったりするけど劇的には減らないし・・・

>>943さん
ゲームの種類によるんですよね。
パズルなんか300kもあれば十分なんですけどウチのジャンル的に
SRPGとかシミュレーション、ADVとかでリソースがデカイので苦戦中なんですよ。
946デフォルトの名無しさん:05/03/11 14:27:13
PNGなんて使ったら、展開が遅くてかなわん。
BMP+gzipが一番バランスがいいと思った。微妙にサイズは増えるが。
947デフォルトの名無しさん:05/03/11 17:35:34
>>925
コールバックちゃんとしてる?
948デフォルトの名無しさん:05/03/11 23:21:11
>PNGなんて使ったら、展開が遅くてかなわん。
どんなアプリ作ってんの?

ゲームでは問題ないけど。
949デフォルトの名無しさん:05/03/12 00:02:03
>>948
起動に10秒待つのを問題があると考えるかどうか、だな。
950デフォルトの名無しさん:05/03/12 01:35:09
>>949
なにそれ・・・
起動時にゆうに数十枚の画像開いて閉じてやってるが、
1秒もかかる機種見た事無いんだが。

pngの展開が遅いのも、gzipの展開が早いのも認めるが、
10倍以上も差がつくとは言えないと思う。

それ以前にやり方に問題があるに5000ガバス
951デフォルトの名無しさん:05/03/12 02:06:25
>>950
いや、もちろん自分が作るものは、1秒かからず起動するように作るよ。
でも、作り方がまずくて10秒かかってるアプリを見ることもあるわけで。
952デフォルトの名無しさん:05/03/12 03:07:14
ん〜?
俺はBMPでもPNGでも変わらないんだけど・・・

PNGの容量でもでかいのか?
953デフォルトの名無しさん:05/03/12 04:53:15
>>951
その10秒の内訳が、PNG の展開処理であるのは確定なのか?
ソースを見れる立場ならば指摘してあげないのか?
954デフォルトの名無しさん:05/03/12 11:18:07
このスレ的にはbciって使わないもの?
955デフォルトの名無しさん:05/03/12 13:34:10
PNGもgzipも同じアルゴリズムなわけだが。
956デフォルトの名無しさん:05/03/13 21:08:03
質問があるんだけどISHELL_BrowseURLを使ってアプリからwebブラウザに飛ばすのはどれが正しいの?
urlto・ezurlto・ez2urltoがあるのは分かったのだが、どれを使えば分からない
それとブラウザが起動したらSUSPENDが呼ばれるらしいんだが、呼ばれてないみたいだし…
実機で試せる環境じゃないからエミュで動かしてるんだけど、エミュだと詳しく分からないから教えてほしい…
957デフォルトの名無しさん:05/03/14 00:11:03
>>956
>>684-
958デフォルトの名無しさん:05/03/14 00:46:09
>>951
フルスクリーンサイズのPNGをARM7端末で展開しても1秒間に10枚くらいはいけるけどね。
これで10秒って言うと100枚以上デコードさせてるってことかね?
ヒープが足りなくなる悪寒。
959デフォルトの名無しさん:05/03/14 09:57:57
それ以前に10秒も処理占有したら、電源落ちる機種が大半だと思うが
960デフォルトの名無しさん:05/03/14 12:57:07
普通は必要に応じて処理するよな
読み込み中でも同期とるようにするとか

せめて"なぅろーでぃんぐ"ぐらいは出してるんだろな
961デフォルトの名無しさん:05/03/14 13:41:52
すいません、質問です。
アプリ起動時のInitAppData()で、barからjpegファイルをロードするようにしているのですが、
jpegをロードするときはコールバック関数を使って、コールバック関数が呼ばれたら描画すると
なってますよね(SONY端末以外はそんなことしなくても描画できますけど)。
複数jpegを起動時に一気読みしたいのですが、コールバック関数内で次のjpegをISHELL_LoadResImage()
とIIMAGE_Notify()をする(を画像分コールバック関数用意して繰り返す)のではだめなのでしょうか。
実機で動かすと、リセット掛かるんですが・・・
よい方法がありましたら、教えてください。
962961:05/03/14 13:46:10
追記です。
InitAppData()以外の場所(ある画面の描画時)に、コールバックで描画するのはでできました。
InitAppdata()内では、1画像だけコールバックで受け取るようにしてもリセットがかかりました。

よろしくお願いします・・・
963デフォルトの名無しさん:05/03/14 14:21:39
全く自信ないが。
InitAppData()内でjpeg以外にbarから何か読み込み行ってるのとぶつかってるのかな・・?
964デフォルトの名無しさん:05/03/14 17:56:18
いきなりInitAppdata()って言われても分からないぞw
多分スケルトンモデルで自動生成されるやつのことを言ってるのだろうけど。

で、それはCreateInstance()から呼ばれてるだろ。
この関数ってつまりコンストラクタだから、その中ではコールバックが必要な処理や
通信処理などはやらないもんだ。

起動時のタイミングでjpegが必要なら、(InitAppdata()を呼び出してる)CreateInstance()
を抜けた後で読み込むようにするのが正解じゃないかな。
965961:05/03/14 18:20:24
963さん>
ありがとうございます。
barからの読み込みは、jpegロード以外に文字列を読み込んでいます。
でも、文字列ロード後にjpegをロードするようにしているので、ぶつかるということは
ないかと思いますが、あっていますか?

964さん>
たしかに!InitAppData()である必要は無いわけで・・・スマソ。
おっしゃるとおり、AEEClsCreateInstance()から呼ばれてます。
アドバイスのとおり、AEEClsCreateInstance()をAEE_SUCCESSで抜けたあとに処理を
いれてみます。
場所としては、EVT_APP_STARTが適当ですかね。
ありがとうございました、結果はまたご報告します。
966963:05/03/14 19:16:12
>>961
漏れの勘違いかもしれないが、機種によりぶつかる場合があるらしい。
状況が違うが、ファイルの読み込みとリソースの読み込みでぶつかった事ある。

AEE_SUCCESSに処理全部移して再現しないなら違うかな。
967デフォルトの名無しさん:05/03/14 23:37:41
読み込みは非同期だったような…それで同時にアクセスして落ちてるのかな
それはネットワーク関係だけだっけ?
968デフォルトの名無しさん:05/03/15 01:01:43
終了時にどのメモリを解放するのか分からんorz
今までJavaやってきてメモリなんて気にした事ないからなぁ…
MALLOCしたのは使わなくなったらFREE。イメージとかはRelease。
IWebはサスペンドの時にReleaseするとリジュム後に何故か使えなくなるorz
ISHELL_CreateInstanceもどうすればいいのか分からんirz
誰かメモリ関係初心者に愛の鞭を…
969デフォルトの名無しさん:05/03/15 01:32:42
プログラミングガイドでも読めば?
970デフォルトの名無しさん:05/03/15 05:58:35
>>968

EVT_APP_SUSPENDでIWebをリリースした後、EVT_APP_RESUMEイベントで
ちゃんと、ISHELL_CreateInstance でIWebのインスタンスを作成している?
しかし、ヒープを理解していないのは BREWでは致命的。
971デフォルトの名無しさん:05/03/15 10:00:33
そろそろ次スレの予感
972デフォルトの名無しさん:05/03/15 13:31:05
>>970
>しかし、ヒープを理解していないのは BREWでは致命的
BREWどころかC系全般で致命的かと。
昔、JAVA上がりの香具師が作ったC++アプリを引き継いだらdeleteまったくして
なくて大変な目にあったよ…
973デフォルトの名無しさん:05/03/15 13:32:52
むしろヒープがわからんとかってプログラマとして致命的だろう。
最近はJavaしか出来ないとかってPGが多いのか?

っていうか、ソケットのコールバック、
インタフェース解放した後も呼ばれるんですが orz
解放→NULL代入→コールバック呼ばれる→NULLポインタにアクセス→リセット orz

これってNULLで一度初期化するより、適当なデバッグ用関数に飛ぶようにしたほうがいいんじゃないだろうか?
974デフォルトの名無しさん:05/03/15 13:47:04
コールバックでぬるぽチェックすりゃいいだけじゃね?
975デフォルトの名無しさん:05/03/15 15:04:38
>>974
nullpoはチェックしてるけど、インスタンスをMALLOCで確保したりすると
解放した領域を他のとこで使われてnullpoじゃ無くなったりするじゃん?
こーいう場合はどうしようもないでしょ。
976デフォルトの名無しさん:05/03/15 15:31:21
確認。
ISOCKET_Cancel 呼んでもダメって事?
977デフォルトの名無しさん:05/03/15 16:42:27
>>973
うーん、ちょっとありえないですね。

ちなみに、ISocketのインスタンスを解放した時点で、ISocketに関する Connect、Readable、Writeableの
コールバックは解放されるはずです。(ISOCKET_Cancel()をコールする必要はないです。)

ただし、INetMgrレベルのコールバックはこの時点では解放されないので、INETMGR_OnEvent()の
SO_CLOSING/SO_CLOSED イベントは、旧ISocketポインタと共に通知されます。
(ここで通知されるISocketポインタの指す先は有効とは限らない、と3.1.2のAPIリファレンス
 PFNNETMGREVENT のページに書いてあります)
978デフォルトの名無しさん:05/03/15 17:31:44
>>977
エミュでは問題なく動いた(解放した後はコールバックが呼ばれない)
W21SAでは呼ばれる。
979デフォルトの名無しさん:05/03/15 18:18:58
>>978
うーん、やっぱり「有り得ない」ですね。

どのコールバックが来ていますか?
IIMAGE_SetStream()とか、ISOURCEUTIL_SourceFromSocket()とかでリファレンスカウントが増えてたりしませんか?
980デフォルトの名無しさん:05/03/15 19:38:33
>>979
Writeableだけ来るよ。
Refカウント増えてるんだったらエミュの時点で問題が出るはず。
981デフォルトの名無しさん:05/03/15 20:24:14
>>980
いや、IImageのパフォーマンスとか実機とエミュで違うので、IImageの解放とISocketの解放の
順番が変わったりしているかと思いまして。

とりあえず、ISOCKET_Cancel( , NULL, NULL) を明示的に呼んで、あとリファレンスカウントが
本当に0になっているかどうかも戻り値で確認して、それでも直らないようであれば
BREWヘルプデスクに質問してください。
982デフォルトの名無しさん:05/03/15 22:33:14
SUSPEND時についての質問です。

みなさん画像の開放してますか?

ヒープ内の画像を全部開放してみたところ

着信時にて端末がおちるのですが・・・
983デフォルトの名無しさん:05/03/15 22:42:51
>>982
画像を解放するかどうかはこのスレで同じ話出てるから読んでみて。

>着信時にて端末がおちるのですが・・・
画像を解放すること自体とは無関係。プログラムのどこか別の点に問題がある。
984956:05/03/16 00:34:24
何とかエミュでI am Browser(URL付き)が表示されるようになったよ。
フォーラムを見てみたらエミュではurlto、実機ではez2urltoを使うといいみたいだな。
でも別の場所で問題っぽい事が起きて困っている。
ブラウザが起動する際にはSUSPENDが送られて、ブラウザを終了したらRESUMEされると思うんだが
エミュでISHELL_BrowseURLを呼ぶとSUSPENDされて一度RESUMEに戻ってからSUSPENDされてブラウザが
起動してるみたいなんだ…
ブラウザを起動させたらアプリを終了させたかったんだけど、過去ログを見ると無理っぽいから
ブラウザから帰ってきてRESUMEされたらアプリを終了する形にしたいんだが
上記の動きをして望みの結果が得られない…
原因や対処方法が分かる人は教えて欲しい…
985デフォルトの名無しさん:05/03/16 01:44:18
ブラウザ起動時に時間保存。2秒以上経ったら終了。ez2urltoは初期QVGA機は対応してないけどいいのかな。
986デフォルトの名無しさん:05/03/16 22:00:56
なぁ、提出用の状態遷移表って、どんぐらい真面目に書けばいいもの?
ゲーム中の状態とか、真面目に書いたらえらいことになるんだが・・・

ステート何百あると思ってるんだよ!!>KDDI
987デフォルトの名無しさん:05/03/16 23:03:04
起動及び読み込み及び初期化→タイトル→ゲーム→ゲームオーバー
                              ↓       ↓
                             クリア→エンディング→終了処理
                                        ↓
                                     タイトルへ戻る
988デフォルトの名無しさん:05/03/17 00:06:02
細かく書け
989デフォルトの名無しさん:05/03/17 00:40:22
>>986
マジでシューティングとかカードゲームとかRPGとか、まともに書いてると気が狂います。
987さんの遷移にエラー画面とサウンド処理を入れたレベルで何とかなりますよ。
990デフォルトの名無しさん:05/03/17 00:51:20
全面ノーミスだと隠しステージとかいう鬼難易度の遷移を作ると
デバッガーを泣かせることができるらしいという噂。
991デフォルトの名無しさん:05/03/17 01:14:03
###2でNetDebugToolってのが起動するんですが(エミュでも確認できます)
これの表示の意味ってどっかに載ってます?
色々探したけど見つからなくて・・・

ご存知の方いましたらよろしくです〜
992デフォルトの名無しさん:05/03/17 01:29:06
>>991
載ってません。
993デフォルトの名無しさん:05/03/17 08:12:23
誰か次スレを頼む
テンプレ自体は>>1-6(2除外)で変更ないかな
994デフォルトの名無しさん:05/03/17 12:01:11
立ててみた

BREW(Binary Runtime Environment for Wireless) 4
http://pc5.2ch.net/test/read.cgi/tech/1111028365/

ギコナビ使って立てられねぇ_| ̄|○
995デフォルトの名無しさん:05/03/17 12:05:29
せっかくテンプレがあるので1にはテンプレを、
他いくつかコピっときました。

ミスってたらスマソ
996ume:05/03/17 12:59:29
ume
997:05/03/17 13:02:30
998産め:05/03/17 13:02:58
産め
999膿め:05/03/17 13:03:19
膿め
1000デフォルトの名無しさん:05/03/17 13:03:40
1000っと
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。