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