기존소스를 수정중인데 이런건 어떻게..
글쓴이: nekoko / 작성시간: 화, 2011/07/19 - 2:16오후
live555라는 RTSP 라이브러리를 수정중인데요.
보통 한가지 영상에 대해서 처리되고 있는 코드인데
여러 채널 영상을 받으려고 합니다.
다른 곳에서 이에 대해 수정한 코드를 받아보니
기존 함수명이나 변수 뒤에 1,2,3,4 ... 식으로
숫자를 붙이고 파일도 openRTSP1.cpp openRTSP2.cpp...
이런 식으로 해서 채널을 4개까지 늘려놨더라구요?
왜이렇게 했나 궁금했는데 손대려다보니,
함수포인터를 할당하는 부분도 있고 해서 간단하게 하려고
이렇게 수정했던 것 같네요..
예를 들면
void startPlaying(PlayingFunc* afterFunc) {
fAfterFunc = afterFunc;
}
과 같은 함수가 있고
startPlaying(subsessionAfterPlaying1);
라는 식으로 호출을 합니다. 여기서 인자로 넣어주는 함수를 보시면
뒤에 숫자가 붙어있잖아요? 저는 이걸 없애고 숫자값(영상번호를 의미)을 따로 인자로
넣어주는 식으로 하고 싶은데..
startPlaying() 함수 안에서 함수포인터를 할당할 때, 이 인자값은 어떻게 같이
묶어줄 수 있는지.. 궁금하네요.
질문이 지저분한데 이해하셨는지 모르겠습니다.
이해하신 분은 답글을, 아니면 뒤로가기 버튼을 눌러주세요..
Forums:
그럴 방법은 없습니다.
그럴 방법은 없습니다.
------------------------------
How many legs does a dog have?
그그런
!?
"I'm convinced that the only thing that kept me going was that I loved what I did." - Steve Jobs 1955-2011
전문용어로 currying이라고 합니다. (담부터는
전문용어로 currying이라고 합니다. (담부터는 그냥 c/c++에서 currying을 어떻게 하나요 라고 질문하시면 됩니다)
function currying (c++) 등으로 한번 검색해 보시면 도움이 될지도 모르겠네요.
음;
찾아보니 무슨 논문같은게..
대충 봐선 잘 모르겠는데 좀 복잡해보여서
제 코드에 적용할 수 있을런지 모르겠네요..
아무튼 답변 고맙습니다.
"I'm convinced that the only thing that kept me going was that I loved what I did." - Steve Jobs 1955-2011
미리 함수포인터의 어레이를 만들어서, 매핑을
미리 함수포인터의 어레이를 만들어서, 매핑을 해놓고,
나중에는 그 인덱스로 함수포인터를 가져오는게
원하시는게 아닌가요?
startPlaying()에서 숫자값(영상번호를
startPlaying()에서 숫자값(영상번호를 의미)만을 인자로 받는 것은 어떤가요?
startPlaying(1);
PlayingFunc* funcArray[4];
funcArray[0] = subsessionAfterPlaying1;
funcArray[1] = subsessionAfterPlaying2;
startPlaying(int index)
{
funcArray
();
}
댓글 달기