개요
무엇을?
어플간 상호연동
어디위에?
Windows Mobile
FAF
LGT Phase2
Cubic 37
누구와?
파일뷰어
동영상뷰어
제약사항
BTB에서 제작한 LGT Application Manager 사용
개발 완료되지 않았음
스펙이 명확하지 않음
현시점 구현안되어 있는 내용 있음
구현이 필요함
서버연동 메세지를 저장할 QUEUE
외부 플레이어를 background로 작동시키는 시나리오
새로운 STATUS정의 필요
시나리오
초기 구동 시나리오
어플시작
AM 연계 가동
BTB SOI DLL 로딩
LGT Application Manager 핸들 체크
실행중이 아니라면 AM 런칭
위 과정 실행중 실패시 어플 구동 취소
연동시나리오
서버에서 EVAPPWITHURL 도착
연동 QUEUE에 일단 저장한다
연동어플 체크
동영상뷰어
AM을 통해서 동영상뷰어 런칭
RUNEXVIEWER STATUS진입
EVT_APP_READY
Waiting
이벤트 도착
EVT_APP_PLAY
WM_COPYDATA를 통해서, 동영상 URL전달
EVT_APP_STOP
이벤트 도착
EVT_APP_EXIT
더이상 재생할 URL이 없을 때
이벤트 전달
RENDERERDRAW STATUS진입
파일뷰어
AM을 통해서 파일뷰어 런칭
RUNEXVIEWER STATUS진입
foreground로 들어올 경우가 종료된 경우로 생각
의문점.... 여러개가 keep되어 있는 경우는 어떻게 되나요?
연동중 foreground로 들어올 경우
RENDERERDRAW STATUS진입
연동 QUEUE는 클리어하자
추가 STATUS
RUNEXVIEWER STATUS
언제?
WM에서 멀티태스킹으로 외부 뷰어가 돌아갈 때 백그라운드 상황
무엇을?
Ping
네트웍 끊어지는 것 방지
QUEUE
연동 이벤트 저장
대기
웹뷰어 기본기능은 모두 대기중 상태
진입
서버의 연동 이벤트에 의해 시작
종료
웹뷰어가 포그라운드로 올때
EVT_APP_EXIT를 받았을 때
코드구현
구현하면서 문제점 체크
FAFIELGT
APP
Cmd
ServerEventQueue.c
이벤트 큐 구현
스펙
서버 메세지를 그대로 저장할 수 있게 함
Queue 클리어 기능
언제 클리어할 것인가?
Queue 삽입 기능
Queue 인출 기능
상세시나리오
초기 구동
FAF PAL
CE
FAFApp_CE.C
InitInstance
UpdateWindow이후에 코드 삽입
LGT AM 프로세스 확인
없다면 프로세스 실행/런칭
런칭 실패하면 어플 종료함
해당 내용은 FEATURE로 DEFINE해서 분리할 것
연동 시나리오
FAFIELGT
APP
Cmd
ServerEvent.c
ServerEvent_ResultCB
QUEUE에 삽입
현재 상태가 RENDERERDRAW이면 RUNEXVIEWER로 전이
State
State_RunExViewer.c
APP_MSG_STATE_INIT
외부 뷰어 APM을 통해 호출
APP_MSG_STATE_WAITFOREXVIEWER로 전이
Viewport Pause
PING던지면서 대기
APP_MSG_STATE_WAITFOREXVIEWER
FOREGROUND메세지
연동QUEUE 클리어
RendererDraw상태로 전이
EVT_MSG_READY
WM_COPY로 동영상 정보 전달
EVT_MSG_STOP
QUEUE가 비었으면 EVT_MSG_EXIT 전달
포그라운드 상태로 만들기
QUEUE에 정보가 있으면 WM_COPY로 동영상 정보 전달