したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

beditor Carbon(仮称)

1高嶺ひじり:2004/11/10(水) 19:55
どうも初めまして、高嶺ひじりと言います。
先日、MacBeatOnlineの方でbeditorのソースコードをXcodeにぶち込んで無理矢理Carbon化するみたいな話が出て、実際にやってみようかなと思ったのですがどうもやり方がよく分かりません。
とりあえず、言い出しっぺであるRenoさんにアドバイスを求めた所非常に困難なもので素人は手を出さない方が無難とのこと。
それでもやってみたいのですがRenoさんはサポートできないとの事。
そこでMacBeatをCarbon化した事のあるPugoさんに何かアドバイスがあればお願いしたいのですが。

8ぷご:2005/05/12(木) 22:33:51
beeditorには乗り気しませんが、XcodeでCarbonアプリの作り方でも
解説できたらいいな、とは思っています。

Xcodeも最近触ってないんで忘れてきましたが、Carbonは資料少ないんで
今のうちに情報を残しておかないと未来に困るかもしれない。

9ぷご:2005/06/13(月) 00:13:59
beediterのCarbon化は事実上無理。
やるんだったら1から作る。

10ぷご:2005/06/13(月) 00:22:24
さっきプロジェクトファイル作ろうと思って3分であきらめました。
beeditorを参考にすらせず、1から作った方がいいかも。
1からできるかというと、そんな人もいないので、やっぱり無理。

11Reno:2005/06/26(日) 12:30:21
CW9で4時間ほど挑戦。う〜ん、確かにちょっとダメっぽい。
移植上ネックなのは、
0.ソースの整理
  ヘッダーがインクルードされていない、main.h作らないとダメ、プロトタイプ無い等々、
  GCCでは怒られそうな文法エラーが結構ある〜。
1.Windowマネージャ、Dialogマネージャの書き換え
 ー>BediterはWindowRef,ControlRef,DialogRefは、構造体でアクセスされているので・・・
   APIで全部置き換えないとダメ。相当量ある。
   (Rect 宣言して、GetPort...で拾って、の繰り返し;;)
2.イベント処理の書き換え。
 ー>AEはたいしたことない。しかし問題はWindowとControlのハンドリング。
  殆ど不要なのでばっさり書き直したほうがよい。そのままでは動かないかバグる可能性大。
 ー>Controlは厄介?Controlの状態を参照したり、ContorlにCopyBitsしてたりする。
3.Soundマネージャの書き換え。
 無限ループ再生ができないので、AppleのADCを探してSoundManager部分を書き換える、
 あるいはCoreAudioやQuickTimeで書き換える。
4.ファイル保存ダイアログの実装
 ー>これはCarbonでは刷新されているので、全く流用できません。
5.圧縮・解凍機能は、ネットからMacOSX用のソースをひろってくる必要あり。
6.MoreFileは、AppleのADCから拾ってきて使う。ただし若干修正が必要。

ということで、Carbon使いなれている人で、3〜7日くらい。
そうでない場合は、ちょっと無理かも。

それでもやるのなら、こんなプラン?
1.簡単なCarbonアプリを作る。(メニュー処理、ウィンドウの処理、ファイルの保存ダイアログ処理)
2.サウンド再生部分を作ってみる。
3.Bediterの機能を、図解して、解析してみる。
  Carbonの機能の部分と、BediterのBMS部分とが、どこのソースにあるのかを把握する。
4.1を応用して、3の分析結果をもとに、BMS部分を流用して、作り直してみる。

12Reno:2005/06/26(日) 12:34:29
他にもリソースとか、ユニコード、ユニコードファイルパス、ファイルシステムの違い、などの問題もある。

13ぷご:2005/06/26(日) 22:48:22
Renoさんだ!さすがだ!詳しく書いてある!
これだけやるのはきついですね。

14高嶺ひじり:2005/07/22(金) 01:29:40
Renoさん、乙です。
何かもう絶対一見さんお断りって感じがぷんぷんしますね。

15Reno:2006/01/08(日) 19:12:57
よくよく考えてみれば別にCarbon化は不必要で、バグ取りで良いのか。
・起動直後に出るエラーはSndNewChannel()第3引数が0なので駄目なのでinitStereoを渡す。
・DoFileOpen()関数でNULLのbmsハンドルにアクセスするCopyPStr(spec->name,(**bms).bmsfilename);を削除。
・メモリー割当がデフォルトでは少ないので、40MByteにしてみる。
こんな感じでClassicで動くっぽい。
RenoはCodeWarriorしか持ち合わせてないので、報告だけですが〜


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板