: [1] : [2] : [3] : [4] : [5] : [6] : [7] : [8] :

다음 튜토리얼문서를 참고해서 작성했다.
http://www.psp-programming.com/tutorials/c/lesson06.htm
libmad - MPEG audio decoder 설치
svn 소스받기
svn checkout svn://svn.ps2dev.org/psp/trunk/libmad
설치하기
cd libmad
make
make install

이 프로그램에 필요한 mp3 player 헤더파일
Source code

코드보기


Makefile
TARGET = mp3
OBJS = mp3player.o main.o
CFLAGS = -O2 -G0 -Wall
CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti
ASFLAGS = $(CFLAGS)
LIBDIR =

LIBS = -lmad -lpspaudiolib -lpspaudio -lpsppower
LDFLAGS =
EXTRA_TARGETS = EBOOT.PBP
PSP_EBOOT_TITLE = MP3 Player Example
PSPSDK=$(shell psp-config --pspsdk-path)
include $(PSPSDK)/lib/build.mak
2007/01/14 13:39 2007/01/14 13:39

펭귄이닷!

개발/psp 2007/01/13 14:12

튜토리얼 보고 하나씩 차근차근 익혀가는중...
http://www.psp-programming.com/tutorials/c/lesson04.htm

[CODE type="c"]
int main() {
[tab]char buffer[200];
[tab]Image* ourImage;
 
[tab]pspDebugScreenInit();
[tab]SetupCallbacks();
[tab]initGraphics();
[tab]sprintf(buffer, "ourImage.png");
[tab]ourImage = loadImage(buffer);
 
[tab]if (!ourImage) { //Image load failed
[tab][tab]printf("Image load failed!\n");
[tab]}
[tab]else {
[tab][tab]int x = 0;
[tab][tab]int y = 0;
[tab][tab]sceDisplayWaitVblankStart();

[tab][tab]while (x < 480) {
[tab][tab][tab]while (y < 272) {
[tab][tab][tab][tab]blitAlphaImageToScreen(0 ,0 ,100 , 100, ourImage, x, y);
[tab][tab][tab][tab]y += 100;
[tab][tab][tab]}
     
[tab][tab][tab]x += 100;
[tab][tab][tab]y = 0;
[tab][tab]}
[tab][tab]flipScreen();       
[tab]}
[tab]sceKernelSleepThread();
[tab]return 0;
}
[/HTML][/CODE]
2007/01/13 14:12 2007/01/13 14:12

psptoolchain 스크립트를 실행하는데 정말 많은 시간이 걸렸다
이거 뭐 -_-;;
svn 으로 소스 받아다가 컴파일해서 직접 pspdev 를 구성을 하는 방식
젠투 사용하시는분들 정말 대단하십니다

아래 사진은 소스코드 일부
간단하게 PSP의 data type 의 크기가 어떨까하고 만들어보았다.

오오오 Hello World :D

프로그램 시작 하기전에 나오는 PSP 로고 화면 ㅡ.,ㅡ

결과는 아래 사진에서 보는거와 같이 나왔다.
int 4, short int 2 , long 4, long long 8 float 4 , double 8, char 1 바이트
2007/01/13 04:24 2007/01/13 04:24

pspsdk 라는게 있다길래
최근 관심을 가지고 있던지라
설치해 보았다

관련자료를 찾아보면 대부분이
윈도우환경에 시그윈을 설치하는 방법이 설명이 되어있었다.

하지만 리눅스가 깔려있는데 굳이 덩치큰 시그윈 설치를 할필요가없으니,
리눅스 (Ubuntu Dapper)로 부팅해서 설치를 시작했다.


psptoolchain 을 받은뒤에

toolchain.sh 를 실행하기 전에 다음과 같은 패키지들이 설치 되어 있는지 확인한다.
build-essential
subversion
automake1.9
autoconf
libncurses5-dev
flex


automake 같은 경우는 old package 로 깔려있어 1.9(최신)으로 설치를 해 준뒤
update-alternatives --set automake /usr/bin/automake-1.9
를 해 주었다

안해주면 위 스크립을 실행하다가 에러메세지를 뱉는다 ㅡ,.ㅡ

위 패키지들이 준비가 되었으면
toolchain.sh 를 root 권한으로 실행을 해준다

오랜시간이 걸린다 ...
설치된 경로는 /usr/local/pspdev/ 이다.
2007/01/12 16:38 2007/01/12 16:38

한글입력기

개발/Java 2006/12/21 17:59
텀프로젝트로 만든 한글입력기..

2006/12/21 17:59 2006/12/21 17:59

관련자료를 찾기위해 한참을 찾아헤맸다

결과는 너무나도 허무한 -_-;

# SndPlaySound
WORD sndPlaySound( LPSTR lpszSound,   : 출력할 사운드 이름(파일이름, ID)
UINT  fsSound );   : 설정 플래그( |연산가능)

       fsSound   :  SND_ASYNC - 재생시 다른 작업 허용하는 비동기식 작동
                          SND_SYNC  - 재생 끝날 때까지 다른 작업 허용안함.
                          SND_LOOP  - 재상 끝나면 처음으로 가서 다시 재생.
                          SND_NODEFAULT - 재생 실패시 DEFAULT 소리 차단.
                          SND_MEMORY - 리소스에 등록된 이름을 메모리에 올려 사용.
                        ( SND_MEMORY를 제외하면 파일에 관한 처리)

VS6 Visual C++

프로젝트 setting -> link -> modules 부분에 winmm.lib 추가

[CODE type="c++"]
#include <windows.h>
#include <MMsystem.h>

int main(int argc, char* argv[])
{
[tab]if(argc<1){
[tab][tab]cout<<"wplay foo.wav"<<endl;
[tab][tab]return 1;
[tab]}
[tab]sndPlaySound(argv[1], SND_ASYNC);
[tab]return 0;
}[/HTML][/CODE]

VS.net  C++

[CODE type="c++"]
#include <windows.h>
#include <MMsystem.h>
#include <tchar.h>
#pragma comment (lib ,"winmm.lib")
int main(int argc, char* argv[])
{
[tab]if(argc<1){
[tab][tab]cout<<"wplay foo.wav"<<endl;
[tab][tab]return 1;
[tab]}
[tab]sndPlaySound(_T(argv[1]), SND_ASYNC);  // type casting !!
[tab]return 0;
}[/HTML][/CODE]

2006/12/14 03:01 2006/12/14 03:01

알고리즘 과제를 하느라 밤을 지새고 있는데
옆 학생이 하는걸 보고 있노라니

이런 프로그램을 짜고있었다 @.@

stdin으로 문장을 입력받는데, 알파벳만 카운팅을 할것이며
입력종료조건은 라인의 첫문자가 !이면 종료

5분만에 만든코드 -_
[CODE type="c++"] #include<iostream>
#include<cstdio>

using namespace std;

int main(){

[tab]char buf[255];
[tab]int length[31] = {0, };
[tab]int i;

[tab]int pos, count;

[tab]while(1){
[tab][tab]pos = count = 0;
[tab][tab]cin.getline(buf,255);
[tab][tab]if(buf[0]=='!')
[tab][tab][tab]break;

[tab][tab]while(buf[pos]!='\0'){
[tab][tab][tab]if((buf[pos]>='a' && buf[pos]<='z' )||(buf[pos]>='A' && buf[pos]<='Z'))
[tab][tab][tab][tab]count++;
[tab][tab][tab]else
[tab][tab][tab]{
[tab][tab][tab][tab]length[count]++;
[tab][tab][tab][tab]count =0;
[tab][tab][tab]}
[tab][tab][tab]pos++;
[tab][tab]}[tab][tab]
[tab]}

[tab]//output
[tab]for(i=0;i<31;i++){
[tab][tab]if(length[i])
[tab][tab][tab]cout << "length(" << i << ") = " << length[i] << endl;
[tab]}

[tab]return 0;
}

[/HTML][/CODE]

2006/10/25 05:14 2006/10/25 05:14

다음과 같은 언어를 인식하는 DFA를 만드시오.




손으로 DFA를 그려봤다 -_-;;
정말 이대로 하면 되는지 의심이 들어
코드로 옮겨봤다.

[CODE type="java"] public class hw2_6a {
[tab]public static int state = -1;
[tab]public static void trans(char c){
[tab][tab]switch (state) {
[tab][tab]case -1:
[tab][tab][tab]state = (c=='0') ? 0:1;[tab][tab][tab]
[tab][tab][tab]break;
[tab][tab]case 0:
[tab][tab][tab]state = (c=='0') ? 0:1;[tab][tab][tab]
[tab][tab][tab]break;
[tab][tab]case 1:
[tab][tab][tab]state = (c=='0') ? 2:3;[tab][tab][tab]
[tab][tab][tab]break;
[tab][tab]case 2:
[tab][tab][tab]state = (c=='0') ? 0:1;[tab][tab][tab]
[tab][tab][tab]break;
[tab][tab]case 3:
[tab][tab][tab]state = (c=='0') ? 2:1;[tab][tab][tab]
[tab][tab][tab]break;[tab][tab][tab]
[tab][tab]}[tab][tab]
[tab]}
[tab]
[tab]public static boolean auto(String input){
[tab][tab][tab][tab]
[tab][tab]for(int i=0;i<input.length();i++)
[tab][tab][tab]trans(input.charAt(i));[tab]
[tab][tab]if(state==0)
[tab][tab][tab]return true;
[tab][tab]return false;
[tab]}

[tab]public static void main(String args[]){
[tab][tab]String is;
[tab][tab]for(int input=0;input<30;input++){
[tab][tab][tab]is = Integer.toBinaryString(input);
[tab][tab][tab]System.out.println( input + " " + is + " " + auto(is));
[tab][tab]}[tab]
[tab]}
}[/HTML][/CODE]

0 0 true
1 1 false
2 10 false
3 11 false
4 100 true
5 101 false
6 110 false
7 111 false
8 1000 true
9 1001 false
10 1010 false
11 1011 false
12 1100 true
13 1101 false
14 1110 false
15 1111 false
16 10000 true
17 10001 false
18 10010 false
19 10011 false
20 10100 true
21 10101 false
22 10110 false
23 10111 false
24 11000 true
25 11001 false
26 11010 false
27 11011 false
28 11100 true
29 11101 false
오! 되잖아!!
2006/10/14 02:20 2006/10/14 02:20

재미있는???

개발/HTML,JS 2006/10/09 12:35
이미지가 많이 떠 있는 웹 페이지에서
주소창에 아래 코드를 붙여넣어보자 :D
재미있는 현상이 +_+

javascript    :  이 앞부분에 자꾸 빠져서 이쪽에 적어놓음

R=0; x1=.1; y1=.05; x2=.25; y2=.24; x3=1.6; y3=.24; x4=300; y4=200; x5=300; y5=200; DI=document.images; DIL=DI.length; function A(){for(i=0; i-DIL; i++){DIS=DI[ i ].style; DIS.position='absolute'; DIS.left=Math.sin(R*x1+i*x2+x3)*x4+x5; DIS.top=Math.cos(R*y1+i*y2+y3)*y4+y5}R++}setInterval('A()',5); void(0);


출처 : irc #ubuntu 채널 가루군
2006/10/09 12:35 2006/10/09 12:35

윈도우에서 잘 돌아갔던 자바 프로그램을
우분투 리눅스에서 돌려봤다.

java가 플랫홈인디팬던트언어니 문제 없이 잘 돌아갈거라 생각했었다
그런데 으응?

프로그램상에서 출력하는 부분은 한글이 잘 나오는데,
소켓으로 주고받는곳에서 이상하게 깨져나왔다 @.@

한참을 삽질했다 ..

하다하다 안되서 어떤분에게 물어봤더니
getBytes() 에 캐릭터셋을 지정 안해주면 시스템 기본으로 읽는다더라..
라는 말에

다음과 같은 소스를 작성해 리눅스와 윈도우에서 돌려보았다
[CODE type="java"]
class test
{
               public static void main(String args[]){
                               System.out.println("file.encoding=" + System.getProperty("file.encoding"));
               }
}
[/HTML][/CODE]


리눅스
$ java test
file.encoding=UTF-8

윈도우
java test
file.encoding=MS949
-_-;;;
다음과같이 고쳐줬다

소켓에서 읽어오는 부분...
[CODE type="java"]
      return new String(inbuf.toByteArray(),"MS949");
[/HTML][/CODE]

소켓으로 보내는 부분...
[CODE type="java"]
  out.write(ws.getBytes("MS949"));
[/HTML][/CODE]
2006/09/10 13:49 2006/09/10 13:49

: [1] : [2] : [3] : [4] : [5] : [6] : [7] : [8] :