이 기능은 4.0.24 이후에 적용됩니다.

파일 핸들러는 파일을 읽거나 저장할때 일괄적인 편집이 필요할때 사용할수 있는 기능입니다.
기본적으로 제공되는 핸들러는 BR 태그 자동 확장입니다.

핸들러는 기본적으로 2개의 파일로 구성됩니다.

패치 파일: http://nscc4.tistory.com/50




위의 그림처럼 Main.psc 파일과 FileHandler.psl 두개의 파일이 존재합니다.
자세한 관리에 대해서는 아래에서 다루도록 하고 일단 BR 태그를 넣어 보도록 하겠습니다.


먼저 캡션 크리에이터의 프로그램 설정으로 들어갑니다.




4.0.24 부터는 프로그램 설정에서 아래의 빨간박스로 둘러진 기능이 추가된 것을 볼 수 있습니다.





사용법은 지극히 간단한데요 일단 체크를 해줍니다.
다음으로 핸들러 편집 버튼을 눌러주면 아래의 창이 뜨는것을 볼 수 있습니다.





그냥 봐도 간단하지요 오른쪽의 드롭다운 버튼을 눌러주면 팝업 메뉴가 뜨고 여기서 사용/사용안함을 설정해주면
기능의 활성화가 결정됩니다.





핸들러 기능을 켰으면 이제 자막 파일을 다시 파일->스크립트 파일 저장으로 재저장 해주시면 적용이 됩니다.


br 핸들러 사용 전



br 핸들러 사용 후



========================================================================================================
여기서 좀 더 고급의 기능이 필요하다면 수작업으로 기능 추가가 가능합니다.(참고 http://nscc4.tistory.com/102)


지금부터 예제로 저장시에 "안녕하세요" 를 출력해주는 파일 핸들러를 만들어 보도록 하겠습니다.

먼저 캡션 크리에이터가 설치된 폴더 안의 핸들러 폴더 속의 FileHandler.psl 파일을 메모장 등으로 열어줍니다.

US|저장시 자동 BR 태그 넣기=AutoBRInsert

라는 내용이 기록되어 있는 것을 볼수 있습니다.
처음의 3개 문자는 현재 상태와 예약어를 의미합니다.


주목해야될것은 마지막으로 =AutoBRInsert 부분으로

Main.psc 파일을 편집기로 열어보면

procedure AutoBRInsert;
begin
  - 중간생략
end;

라는 부분이 존재하는 것을 볼 수 있습니다.

즉, Main.psc 에 명령을 선언해주고 FileHandler.psl 에 이름과 명령을 기록해주면 파일 핸들러가 추가되는 것입니다.
그럼 안녕하세요를 출력하는 파일 핸들러를 완성해봅시다.

먼저 FileHandler.psl 에 다음 줄을 추가합니다.

US|저장시 안녕하세요 출력=SaveHello

다음으로

Main.psc 의 implementation 과 end. 안에 (각각 3번째 줄과 제일 마지막줄에 존재하지요)

procedure SaveHello;
begin
  showMessage('안녕하세요');
end;

를 넣어주면 완료됩니다~

Posted by 투명인간취급
,

이 기능은 4.0.32 버전에 포함된 KMP 브리지 부터 사용이 가능합니다
브리지만 교체하실 경우 Caption Creator 4.0.22 이상의 버전에서 사용이 가능합니다. 




KMP 브리지의 경우 KMP의 스킨 메세지 명령을 제어가능하게 되어있는데요
이것을 재생기 추가명령과 연동해서 KMP의 좀 더 세부적인 기능들을 재생기 추가 명령으로 추가 가능합니다.

(주의: 재생기 추가명령은 최대 10개까지 추가 가능합니다. 0~9번까지)


먼저 Players 폴더안의 KMPBridge.PLD 파일을 메모장에 드래그해서 열어봅시다.

(아래 명령은 철저하게 대소문자 구별을 합니다)
PldVersion=1.0
Name=The KMPlayer DCC Bridge Version 1.0
Class=TDCCKMPBridge
RunWithCC=1
RunExe=KMPBridge.exe
SupportInternetFile=1
CloseWith=1
SupportFiles=*.avi;*.asf;*mp (길이 관계상 생략합니다.) *.mkv;
SelectMessage=
SelectMessageTitle=알림

(AdditionalFunction)
# "제목 = 전달값"으로 구성됩니다.
현재 화면 캡쳐=340
재생 속도 느리게=116
재생 속도 보통으로=117
재생 속도 빠르게=118

-=0
구간 반복 시작 위치 설정=12411
구간 반복 종료 위치 설정=12412
구간 반복 시작/종료=12413


위와 같은 내용을 보실수 있습니다. 우리가 만져주어야할 부분은 한눈에 들어오시겠지만

(AdditionalFunction)
# "제목 = 전달값"으로 구성됩니다.
현재 화면 캡쳐=340
재생 속도 느리게=116
재생 속도 보통으로=117
재생 속도 빠르게=118

이 부분 입니다. '#' 로 시작하는 라인은 주석 처리되고 그외의 값은 사용자 정의 명령으로 추가되게 됩니다.
메뉴에 추가되는 제목과 KMP SDK 에서 제공하는 명령값을 1:1로 대응시켜주면 작동하는 매우 간단한 구조입니다 ^^

SDK의 어느부분에 존재하는지를 찾기 위해서는 프로그래밍의 지식이 필요하므로
접근 가능한 알려진 명령들 모두를 글 마지막에 나열해드리도록 하고
간단하게 작성법을 말씀드리고 글을 마치겠습니다.


아래에 기록된 명령중 한개를 뽑아보겠습니다.

cOpenURLCmd          = $001A;

라고 선언되어 있지요 이름에서 보시다시피 URL로 파일을 여는 명령임을 짐작으로 알수있습니다.

그럼 우리는 "재생 속도 빠르게=118" 다음의 줄에

URL로 파일열기=26

을 추가하고 새로 실행하거나 재생기를 변경하시면 새 기능이 추가되는것을 보실 수 있습니다 ^^;
왜 26이 되느냐 하면 $001A 가 16진수이기 때문입니다. (앞의 $는 16진수임을 의미하는 기호입니다)

윈도우의 계산기를 프로그래머용 계산기 모드로 변경하면
Hex (16진수) -> Dec(10진수) 기능으로 쉽게 값을 알아내실수 있습니다.


한가지 예를 더 들어보겠습니다.

cScreenFullSize       = $2048;

입니다. 딱봐도 전체화면 기능이죠 ^^;

전체화면으로 변경=8264

이렇게 작성하면 됩니다.


마치겠습니다. 그럼 __;




부록 - KMP에서 사용가능한 명령 일람표 (KMP SDK 참조, 값은 16진수)

cMainMenu            = $0001;
cSystemMenu          = $0002;
cMinCmd              = $0003;
cMaxCmd              = $0004;
cExitCmd             = $0005;
cOpenMenu            = $0006;
cAlbumMenu           = $0007;
cCloseCmd            = $0008;
cWDMMenu             = $0009;
cDVDMenu             = $000A;
cWinampMenu          = $000B;
cScreenMenu          = $000C;
cAdvScreenMenu       = $000D;
cPlaybackMenu        = $000E;
cCaptionMenu         = $000F;
cVideoMenu           = $0010;
cAdvVideoMenu        = $0011;
cAudioMenu           = $0012;
cCaptureMenu         = $0013;
cVisualMenu          = $0014;
cFilterMenu          = $0015;
cBookmarkMenu        = $0016;
cEnvRestoreMenu      = $0017;
cSkinMenu            = $0018;
cOpenFileCmd         = $0019;
cOpenURLCmd          = $001A;
cOpenFolderCmd       = $001B;
cOpenTVOutCmd        = $101B;
cOpenIEMediaCmd      = $001C;
cOpenRecentCmd       = $001D;
cOpenReTryCmd        = $001E;
cOpenWDMCmd          = $001F;
cOpenBaseWDMCmd      = $101F;
cOpenDVDDeviceCmd    = $0020;
cOpenDVDFileCmd      = $0021;
cOpenVCDCmd          = $0022;
cAlbumPrevOpenCmd    = $0023;
cAlbumNextOpenCmd    = $0024;
cWDMTunerMagCmd      = $0025;
cWDMChannelMagCmd    = $0026;
cWDMFirstChannelCmd   = $0027;
cWDMPrevChannelCmd    = $0028;
cWDMNextChannelCmd    = $0029;
cWDMLastChannelCmd    = $002A;
cWDMRegPrevChannelCmd = $002B;
cWDMRegNextChannelCmd = $002C;
cWDMInputChannelCmd   = $002D;
cWDMAntennaInputCmd   = $002E;
cWDMCableInputCmd     = $002F;
cDVDSubpictureMenu    = $0030;
cDVDAudioMenu         = $0031;
cDVDAngleMenu         = $0032;
cDVDMoveMenu          = $0033;
cDVDPrevChapterCmd    = $0034;
cDVDNextChapterCmd    = $0035;
cDVDRootMenuCmd       = $0036;
cDVDTitleMenuCmd      = $0037;
cDVDSubpictureMenuCmd = $0038;
cDVDAudioMenuCmd      = $0039;
cDVDAngleMenuCmd      = $003A;
cDVDChapterMenuCmd    = $003B;
cDVDRestoreMenuCmd    = $003C;
cDVDClosedCaptionCmd  = $003D;
cDVD1XBackwardCmd     = $003E;
cDVD2XBackwardCmd     = $003F;
cDVD4XBackwardCmd     = $0040;
cDVD8XBackwardCmd     = $0041;
cDVD1XForewardCmd     = $0042;
cDVD2XForewardCmd     = $0043;
cDVD4XForewardCmd     = $0044;
cDVD8XForewardCmd     = $0045;
cWinampPluginSetupCmd = $0046;
cWinampPluginInfoCmd  = $0047;
cWinampFileInfoCmd    = $0048;
cScreenKeepBaseRatio  = $0049;
cScreenKeep43Ratio    = $004A;
cScreenKeep169Ratio   = $004B;
cScreenKeep235Ratio   = $124B;
cScreenKeepCurRatio   = $004C;
cScreenCycleRatio     = $304C;
cScreenMinSize        = $704D;
cScreenVisOn          = $704E;
cScreenVisOff         = $704F;
cScreenHalfSize       = $004D;
cScreenNormalSize     = $004E;
cScreenDoubleSize     = $2046;
cScreenMaxSize        = $2047;
cScreenRestoreSize    = $3047;
cScreenFullSize       = $2048;
cScreenDesktopView    = $2166;
cScreenWideSize       = $2266;
cScreenTopLeft        = $2049;
cScreenTopCenter      = $204A;
cScreenTopRight       = $204B;
cScreenMiddleLeft     = $204C;
cScreenMiddleCenter   = $204D;
cScreenMiddleRight    = $204E;
cScreenBottomLeft     = $204F;
cScreenBottomCenter   = $0050;
cScreenBottomRight    = $0051;
cScreenAllwaysOnTop   = $0052;
cScreenPlayingOnTop   = $0053;
cScreenScreenSave     = $0054;
cScreenHideMouse      = $0055;
cAdvScreenRestore     = $0056;
cAdvScreenZoomIn      = $0057;
cAdvScreenZoomOut     = $0058;
cAdvScreenZoomInHori  = $0059;
cAdvScreenZoomOutHori = $005A;
cAdvScreenZoomInVert  = $005B;
cAdvScreenZoomOutVert = $005C;
cAdvScreenMoveLeft    = $005D;
cAdvScreenMoveRight   = $005E;
cAdvScreenMoveUp      = $005F;
cAdvScreenMoveDown    = $0060;
cAdvScreenOffset      = $0061;
cPlayPlayPauseCmd     = $7061;
cPlayPausePlayCmd     = $7062;
cPlayPlayCmd          = $0062;
cPlayStopCmd          = $0063;
cPlayFrameCmd         = $0064;
cPlayPrevFileCmd      = $0065;
cPlayNextFileCmd      = $0066;
cPlayBackward1Cmd     = $0067;
cPlayForward1Cmd      = $0068;
cPlayBackward2Cmd     = $0069;
cPlayForward2Cmd      = $006A;
cPlayBackward3Cmd     = $006B;
cPlayForward3Cmd      = $006C;
cPlayBackward4Cmd     = $006D;
cPlayForward4Cmd      = $006E;
cPlayPrevCapCmd       = $006F;
cPlayNextCapCmd       = $0070;
cPlayStartPosCmd      = $0071;
cPlayMidPosCmd        = $0072;
cPlayLastPosCmd       = $0073;
cPlaySlowerSpeedCmd   = $0074;
cPlayNormalSpeedCmd   = $0075;
cPlayFasterSpeedCmd   = $0076;
cPlaySlowerPitchCmd   = $0077;
cPlayNormalPitchCmd   = $0078;
cPlayFasterPitchCmd   = $0079;
cPlayRepeatMenu       = $007A;
cPlayRepeatSetCmd     = $307A;
cPlayRepeatStartCmd   = $307B;
cPlayRepeatEndCmd     = $307C;
cPlayRepeatUseCmd     = $307D;
cPlayModeMenu         = $007B;
cPlayModeDirDown      = $307E;
cPlayModeDirUp        = $307F;
cPlayModeDirRandom    = $3080;
cPlayModeDirRepeat    = $3081;
cPlayModeAlbumNext    = $3082;
cPlayModeAlbumRepeat  = $3083;
cPlayModeAlbumNone    = $3084;
cPlayModeAlbumExit    = $3085;
cPlayModeAlbumPowerOff= $3086;
cPlayModeAlbumFileClose= $3087;
cPlayMoveMenu          = $3088;
cPlaySkipStartCmd     = $3089;
cPlaySkipIntroCmd     = $308C;
cPlaySkipEndCmd       = $309A;
cPlaySkipSettingCmd   = $309B;
cPlaySaveFilePosCmd   = $309C;
cPlayUseAVIKeyFrameCmd = $309D;
cCaptionFileOpenCmd   = $007C;
cCaptionVisibleCmd    = $007D;
cCaptionSyncInputCmd  = $007E;
cCaptionSyncPrevCmd   = $007F;
cCaptionSyncNextCmd   = $0080;
cCaptionOverlayCmd    = $0081;
cCaptionImageCmd      = $0082;
cCaptionAlignMenu     = $0083;
cCaptionAlignLeftCmd  = $0084;
cCaptionAlignCenterCmd= $0085;
cCaptionAlignRightCmd = $0086;
cCaptionAlignTopCmd    = $2084;
cCaptionAlignMiddleCmd = $2085;
cCaptionAlignBottomCmd = $2086;
cCaptionLanguageMenu  = $0087;
cCaptionMarginMenu    = $0088;
cCaptionMargin0Cmd    = $0089;
cCaptionMargin5Cmd    = $008A;
cCaptionMargin10Cmd   = $008B;
cCaptionMargin15Cmd   = $008C;
cCaptionMargin20Cmd   = $008D;
cCaptionMargin25Cmd   = $008E;
cCaptionMargin30Cmd   = $008F;
cCaptionLargerCmd     = $0090;
cCaptionSmallerCmd    = $0091;
cCaptionNormalCmd     = $0092;
cCaptionBoldCmd       = $0093;
cCaptionItialicCmd    = $0094;
cCaptionAlphaCmd      = $0095;
cCaptionUnderlineCmd  = $0096;
cCaptionFadeCmd       = $0097;
cCaptionShadowCmd     = $0098;
cCaptionOutlineCmd    = $0099;
cCaptionVertCmd       = $009A;
cCaptionAntialiasCmd  = $009B;
cCaptionHTMLCmd       = $009C;
cCaptionMoveDownCmd   = $009D;
cCaptionMoveUpCmd     = $009E;
cCaptionIncMarginCmd  = $009F;
cCaptionDecMarginCmd  = $1100;
cVideoDecBaseBrightCmd= $1101;
cVideoIncBaseBrightCmd= $1102;
cVideoMotionBlurCmd   = $1103;
cVideoLPFilterCmd     = $1104;
cVideoSharpenFilterCmd= $1105;
cVideoMediaBlockCmd   = $1106;
cVideoMediaCrossCmd   = $1107;
cVideoMeanYFilterCmd  = $1108;
cVideoMeanUVFilterCmd = $1109;
cVideoGreyScaleCmd    = $110A;
cVideoAutoLevelCmd    = $110B;
cVideoMirrorCmd       = $110C;
cVideoInInverseCmd    = $110D;
cVideoOutInverseCmd   = $110E;
cVideoSpecialFilterMenu= $210F;
cVideoHPFilterCmd     = $2110;
cVideoLaplaceCmd      = $2101;
cVideoEdgeDetectCmd   = $2102;
cVideoEdgeEnhanceCmd  = $2103;
cVideoColorEmbossCmd  = $2104;
cVideoColorInverseCmd = $2105;
cVideoHistogramCmd    = $2106;
cVideoIgnoreSettingCmd= $2107;
cVideoUsePluginCmd    = $2108;
cAdvVideoLowUseOverSample = $3109;
cAdvVideoAllUseOverSample = $310A;
cAdvVideoNoUseOverSample  = $310B;
cAdvVideoDeInterlaceCmd = $310C;
cAdvVideoPostProcessCmd = $310D;
cAdvVideoPicPropertyCmd = $310E;
cAdvVideoSharpenCmd     = $310F;
cAdvVideoBlurCmd        = $3110;
cAdvVideoGDeNoiseCmd    = $3111;
cAdvVideoLevelControlCmd= $3112;
cAdvVideoFastestModeCmd = $3113;
cAdvVideoFastPresetCmd  = $3114;
cAdvVideoHQPresetCmd    = $3115;
cAdvVideoBasePresetCmd  = $3116;
cAdvVideoHardwareMenu   = $3117;
cAdvVideoSoftwareMenu   = $3118;
cAdvVideoHWIncBrightCmd = $3119;
cAdvVideoHWBaseBrightCmd= $311A;
cAdvVideoHWDecBrightCmd = $311B;
cAdvVideoHWIncSaturatCmd = $311C;
cAdvVideoHWBaseSaturatCmd= $311D;
cAdvVideoHWDecSaturatCmd = $311E;
cAdvVideoHWIncContrastCmd = $311F;
cAdvVideoHWBaseContrastCmd= $3120;
cAdvVideoHWDecContrastCmd = $3121;
cAdvVideoSWIncBrightCmd = $3122;
cAdvVideoSWBaseBrightCmd= $3123;
cAdvVideoSWDecBrightCmd = $3124;
cAdvVideoSWIncSaturatCmd = $3125;
cAdvVideoSWBaseSaturatCmd= $3126;
cAdvVideoSWDecSaturatCmd = $3127;
cAdvVideoSWIncContrastCmd = $3128;
cAdvVideoSWBaseContrastCmd= $3129;
cAdvVideoSWDecContrastCmd = $312A;
cAudioIncVolumeCmd        = $012C;
cAudioDecVolumeCmd        = $012D;
cAudioMuteVolumeCmd       = $012E;
cAudioDecAmpCmd           = $012F;
cAudioIncAmpCmd           = $0130;
cAudioUseEqulizerCmd      = $0131;
cAudioEqulizerPresetMenu  = $0132;
cAudioEqulizerFreqDomain  = $2132;  // 추가 2.3.905...
cAudioEqulizerTimeDomain  = $2133;  // 추가 2.3.905...
cAudioEqulizerDirectX     = $2134;  // 추가 2.3.905...
cAudioRemoveLeftChCmd     = $0133;
cAudioRemoveRightChCmd    = $0134;
cAudioSwapChCmd           = $0135;
cAudioMergeChCmd          = $0136;
cAudioVioceRemoveCmd      = $0137;
cAudioViocePassCmd        = $0138;
cAudioUseDynamicAmpCmd    = $2138; // 추가 2.3.905...
cAudioUseAutoGainCmd      = $3310; // 추가 2.3.905...
cAudioUseEchoCmd          = $2139; // 추가 2.3.905...
cAudioSlowerEchoCmd       = $0139;
cAudioFasterEchoCmd       = $013A;
cAudioUseBandPassCmd      = $223A; // 추가 2.3.905...
cAudioUseTrueBassCmd      = $223B; // 추가 2.3.905...
cAudioUseTrebleEhnCmd     = $223C; // 추가 2.3.905...
cAudioUseTempoCmd         = $023A;
cAudioSlowerPitchCmd      = $014B;
cAudioFasterPitchCmd      = $014C;
cAudioUse3DEffectCmd      = $014D;
cAudioDec3DEffectCmd      = $014E;
cAudioInc3DEffectCmd      = $014F;
cAudioIgnoreSettingCmd    = $0150;
cAudioUsePluginCmd        = $0151;
cCaptureAVIMovieCmd       = $0152;
cCaptureAVIAutoCmd        = $0153;
cCaptureCurScrFileCmd     = $0154;
cCaptureCurScrTimeCmd     = $0155;
cCaptureCurScrClipBoardCmd= $0156;
cCaptureSampleGrabberCmd  = $0157;
cCaptureDesktopCenterCmd  = $0158;
cCaptureDesktopTileCmd    = $0159;
cCaptureDesktopStretchCmd = $015A;
cCaptureSelectFolderCmd   = $015B;
cCaptureOpenFolderCmd     = $015C;
cVisWaveFormCmd           = $015D;
cVisFreqCmd               = $015E;
cVisWaveFreqCmd           = $015F;
cVisWinMediaVisCmd        = $0160;
cVisSimpleCmd             = $0161;
cVisBlackCmd              = $0162;
cVisPrevVisCmd            = $0163;
cVisNextVisCmd            = $0164;
cBookmarkAddCmd           = $0165;
cConfigureViewCmd         = $0167;
cPlaylistViewCmd          = $0168;
cControlBoxViewCmd        = $0169;
cAdvMenuViewCmd           = $016A;
cPlayInfoViewCmd          = $016B;
cHelpViewCmd              = $016C;
cAboutViewCmd             = $016D;
cURLOpenCmd               = $016E;
cSkinNormalControlSkin    = $016F;
cSkinAutoHideControlSkin  = $0172;
cSkinOSCControlSkin       = $0170;
cSkinBothControlSkin      = $0171;
cSkinChangeCmd            = $1171;
cPlayListPopupMenu        = $0190;
cPlayListAddFileCmd       = $0191;
cPlayListAddFolderCmd     = $0192;
cPlayListClearAllCmd      = $0193;
cWDMChannel0Cmd           = $0294;
cWDMChannel1Cmd           = $0295;
cWDMChannel2Cmd           = $0296;
cWDMChannel3Cmd           = $0297;
cWDMChannel4Cmd           = $0298;
cWDMChannel5Cmd           = $0299;
cWDMChannel6Cmd           = $029A;
cWDMChannel7Cmd           = $029B;
cWDMChannel8Cmd           = $029C;
cWDMChannel9Cmd           = $029D;
cWDMChannelSetCmd         = $029E;
cWinampMediaLibCmd        = $029F;
cViewFileInfoCmd          = $0230;
cSearchAnyFileCmd         = $0231;
cColorThemeMenu           = $0235;
cColorThemeRandomCmd      = $0236;
cColorThemeCycleCmd       = $0237;
cDVDRelativeButton        = $210000;
cDVDActivateButton        = $210001;
cDVDGetSelectedButton     = $210002;
cGetPlayModeCmd           = $220000; // 0 : Normal, 1 : DVD, 2 : WDM, 3 : Audio, 4: Video
cGetIsPopupMenu           = $220001;
cCaptureClipToAVICmd      = $024A;


Posted by 투명인간취급
,

NS Caption Creator 의 장점 중의 하나는 자유로운 단축키 설정이 가능하다는 점입니다.

이러한 단축키 설정은 프로그램 설정 기능을 통해서 제어가 가능합니다.

 



 

프로그램 설정을 선택하면 환경 설정 창이 뜨게 되고 이 창의 '단축키 설정' 탭에서

아래와 같이 단축키의 설정이 가능합니다.





설정 가능한 명령 목록은 화면상에 출력되는 모든 기능들을 표시하게 되며 선택 후

위의 단축키 설정 창에서 키를 입력하고 적용이나 확인을 눌러 저장하게 됩니다.


또, 단축키 설정 기능의 경우 .c4k 파일 형태로 [키 프리셋 내보내기]

기존에 설정된 [키 프리셋 가져오기]로 적용할 수 있습니다.

 

대표적으로 많이 사용되는 CCMP나 한방에의 키 프리셋은 NS Caption Creator 가

설치된 폴더 안의 KeyPreset 폴더에 함께 설치되어 있으므로 가져오기로 사용이 가능합니다.


Posted by 투명인간취급
,