From bb8d31ff6214db672aa7b1ae809e8aaa63549504 Mon Sep 17 00:00:00 2001 From: Norbert Preining Date: Mon, 3 Aug 2020 12:23:10 +0900 Subject: remove yt4pdf as requested --- texmf-dist/doc/latex/yt4pdf/README.md | 21 - texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.pdf | Bin 347953 -> 0 bytes texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.tex | 737 --------------------- .../source/latex/yt4pdf/examples/config_intacc.def | 29 - .../source/latex/yt4pdf/examples/graphics/MIA9.eps | Bin 290523 -> 0 bytes .../source/latex/yt4pdf/examples/graphics/MIAX.eps | Bin 400298 -> 0 bytes .../yt4pdf/examples/graphics/trustmanager.eps | Bin 845442 -> 0 bytes .../latex/yt4pdf/examples/graphics/yt_icon_sm.eps | Bin 558266 -> 0 bytes .../source/latex/yt4pdf/examples/yt4pdf-1.tex | 93 --- .../source/latex/yt4pdf/examples/yt4pdf-2.tex | 152 ----- .../source/latex/yt4pdf/examples/yt4pdf-3.tex | 88 --- .../source/latex/yt4pdf/graphics/pdfyt_poster.eps | Bin 850618 -> 0 bytes .../source/latex/yt4pdf/swf/pdf_tube_basic.swf | Bin 10470 -> 0 bytes texmf-dist/source/latex/yt4pdf/yt4pdf.dtx | 629 ------------------ texmf-dist/source/latex/yt4pdf/yt4pdf.ins | 60 -- texmf-dist/tex/latex/yt4pdf/yt4pdf.cfg | 10 - texmf-dist/tex/latex/yt4pdf/yt4pdf.sty | 346 ---------- 17 files changed, 2165 deletions(-) delete mode 100644 texmf-dist/doc/latex/yt4pdf/README.md delete mode 100644 texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.pdf delete mode 100644 texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.tex delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/config_intacc.def delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/graphics/MIA9.eps delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/graphics/MIAX.eps delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/graphics/trustmanager.eps delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/graphics/yt_icon_sm.eps delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/yt4pdf-1.tex delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/yt4pdf-2.tex delete mode 100644 texmf-dist/source/latex/yt4pdf/examples/yt4pdf-3.tex delete mode 100644 texmf-dist/source/latex/yt4pdf/graphics/pdfyt_poster.eps delete mode 100644 texmf-dist/source/latex/yt4pdf/swf/pdf_tube_basic.swf delete mode 100644 texmf-dist/source/latex/yt4pdf/yt4pdf.dtx delete mode 100644 texmf-dist/source/latex/yt4pdf/yt4pdf.ins delete mode 100644 texmf-dist/tex/latex/yt4pdf/yt4pdf.cfg delete mode 100644 texmf-dist/tex/latex/yt4pdf/yt4pdf.sty (limited to 'texmf-dist') diff --git a/texmf-dist/doc/latex/yt4pdf/README.md b/texmf-dist/doc/latex/yt4pdf/README.md deleted file mode 100644 index 5d140014..00000000 --- a/texmf-dist/doc/latex/yt4pdf/README.md +++ /dev/null @@ -1,21 +0,0 @@ -The yt4pdf package -Dated: 2016/10/04 - -The yt4pdf package uses the rmannot package to embed a special SWF file to -play the YouTube videos. There is a complete set of buttons that come with -the package to control the video: play, pause, stop loading, rewind, load -a video by its YouTube video ID, and a button to view a video on the -YouTube web site. Adobe Acrobat 9 or later is required to author a -document; only Adobe Reader 9 is need to view the created yt4pdf document. - -The SWF file for playing the YouTube videos was developed by UVSAR -(http://www.uvsar.com/pdftube/) and is based on the YouTube chromeless -player and the YouTube ActionScript 3.0 Player API Reference -(http://code.google.com/apis/youtube/flash_api_reference.html) - -Now, I simply must get back to my retirement. - -Dr. D. P. Story -www.acrotex.net -dpstory@uakron.edu -dpstory@acrotex.net diff --git a/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.pdf b/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.pdf deleted file mode 100644 index 5b0bbca6..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.pdf and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.tex b/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.tex deleted file mode 100644 index 97febc04..00000000 --- a/texmf-dist/source/latex/yt4pdf/doc/yt4pdf_man.tex +++ /dev/null @@ -1,737 +0,0 @@ -% makeindex < aebpro_man.idx > aebpro_man.ind -\documentclass{article} -\usepackage[fleqn]{amsmath} -\usepackage[ - web={centertitlepage,designv,tight*,usetemplates, - forcolorpaper,latextoc,pro},%usesf, - eforms,aebxmp -]{aeb_pro} -%\usepackage{multicol} -\usepackage{aeb_mlink} -\usepackage{array} -\usepackage[altbullet]{lucidbry} - -\usepackage{makeidx} -\makeindex -\usepackage{acroman} - -\usepackage[active]{srcltx} - -\def\expath{../examples} - -\urlstyle{rm} -\def\pkg{\textsf} -\let\app\textsf -\let\opt\texttt -\let\uif\textsf -\let\env\texttt -\def\meta#1{\textit{\texttt{#1}}} -\def\ameta#1{$\langle\textit{\texttt{#1}}\rangle$} -\newdimen\aebdimen \aebdimen6pt %\partopsep \advance\aebdimen\partopsep -\newcommand\bVerb[1][]{\begingroup#1\vskip\aebdimen\parindent0pt}% -\def\eVerb{\vskip\aebdimen\endgroup\noindent} -\def\SUB#1{\ensuremath{{}_{\text{#1}}}} -\def\darg#1{\texttt{\{#1\}}} -\def\takeMeasure{\bgroup\obeyspaces\takeMeasurei} -\def\takeMeasurei#1{\global\setbox\webtempboxi\hbox{\ttfamily#1}\egroup} -\def\bxSize{\wd\webtempboxi+2\fboxsep+2\fboxrule} -\let\amtIndent\leftmargini -\makeatletter -\def\setDisplayNumber#1#2{\kern0pt - \setlength\abovedisplayshortskip{0pt}% - \setlength\belowdisplayshortskip{0pt}% - \setlength\abovedisplayskip{0pt}% - \setlength\belowdisplayskip{0pt}% - \begin{equation}\label{#2}\end{equation}\kern0pt -} -\renewenvironment{quote}[1][] - {\def\@rgi{#1}\ifx\@rgi\@empty - \let\rghtm\@empty\else\def\rghtm{\rightmargin\leftmargin}\fi - \list{}{\rghtm} %{\rightmargin\leftmargin}% - \item\relax} - {\endlist} -\renewcommand*\descriptionlabel[1]{\hspace\labelsep - \normalfont #1} -\setcounter{secnumdepth}{4} -\setcounter{tocdepth}{5} -\renewcommand*{\theparagraph}{\texorpdfstring{\protect\P\protect\ }{\textparagraph}} -\renewcommand{\paragraph} - {\renewcommand{\@seccntformat}[1]{\theparagraph}% - \@startsection{paragraph}{4}{0pt}{6pt}{-3pt}{\color{\aeb@subsubsectioncolor}\bfseries}} -\renewcommand*\l@paragraph{\@dottedtocline{4}{5.0em}{1em}} %{7.0em}{4.1em}} -\def\chgCurrLblName#1{\def\@currentlabelname{#1}} -\def\echgCurrLblName#1{\edef\@currentlabelname{#1}} -\makeatother - - -\newcommand{\YouTube}{\textsf{YouTube}} - - -%\def\tutpath{doc/tutorial} -%\def\tutpathi{tutorial} - -\DeclareDocInfo -{ - university={\AcroTeX.Net}, - title={The \texorpdfstring{\textsf{yt4PDF} Package\\[1em]}{: } - Playing \texorpdfstring{\YouTube}{YouTube} Videos in PDF}, - author={D. P. Story}, - email={dpstory@acrotex.net}, - subject={Playing YouTube Videos in PDF}, - talksite={\url{www.acrotex.net}}, - version={1.1, 2016/10/04}, - keywords={AcroTeX, PDF, YouTube, rmannot}, - copyrightStatus=True, - copyrightNotice={Copyright (C) \the\year, D. P. Story}, - copyrightInfoURL={http://www.acrotex.net} -} - -\def\dps{$\hbox{$\mathfrak D$\kern-.3em\hbox{$\mathfrak P$}% - \kern-.6em \hbox{$\mathcal S$}}$} - -\universityLayout{fontsize=Large} -\titleLayout{fontsize=LARGE} -\authorLayout{fontsize=Large} -\tocLayout{fontsize=Large,color=aeb} -\sectionLayout{indent=-40pt,fontsize=large,color=aeb} %,afterskip=1sp} -\subsectionLayout{indent=-20pt,color=aeb} %,afterskip=1sp} -\subsubsectionLayout{indent=0pt,color=aeb} %,afterskip=1sp} -\subsubDefaultDing{\texorpdfstring{$\bullet$}{\textrm\textbullet}} - -\newenvironment{eqComments}[1][\strut]{\smallskip\leftskip-\labelwidth -\item[]\textbf{\textcolor{blue}{#1}}}{\par\smallskip} - -%\pagestyle{empty} -%\parindent0pt\parskip\medskipamount - -\chngDocObjectTo{\newDO}{doc} -\begin{docassembly} -var titleOfManual="The yt4pdf MANUAL"; -var manualfilename="Manual_BG_Print_yt4pdf.pdf"; -var manualtemplate="Manual_BG_Brown.pdf"; // Blue, Green, Brown -var _pathToBlank="C:/Users/Public/Documents/ManualBGs/"+manualtemplate; -var doc; -var buildIt=false; -if ( buildIt ) { - console.println("Creating new " + manualfilename + " file."); - doc = \appopenDoc({cPath: _pathToBlank, bHidden: true}); - var _path=this.path; - var pos=_path.lastIndexOf("/"); - _path=_path.substring(0,pos)+"/"+manualfilename; - \docSaveAs\newDO ({ cPath: _path }); - doc.closeDoc(); - doc = \appopenDoc({cPath: manualfilename, oDoc:this, bHidden: true}); - f=doc.getField("ManualTitle"); - f.value=titleOfManual; - doc.flattenPages(); - \docSaveAs\newDO({ cPath: manualfilename }); - doc.closeDoc(); -} else { - console.println("Using the current "+manualfilename+" file."); -} -var _path=this.path; -var pos=_path.lastIndexOf("/"); -_path=_path.substring(0,pos)+"/"+manualfilename; -\addWatermarkFromFile({ - bOnTop:false, - bOnPrint:false, - cDIPath:_path -}); -\executeSave(); -\end{docassembly} - -\begin{document} - -\maketitle - -\selectColors{linkColor=black} -\tableofcontents -\selectColors{linkColor=webgreen} - -\section{Introduction}\label{s:intro} - - I believe that I was vaguely aware of the \href{http://code.google.com/apis/youtube/flash_api_reference.html} -{{\YouTube} ActionScript 3.0 Player},\footnote{The YouTube AcrionScript 2.0 Player API - has been deprecated as of January 27, 2015; however, it is still supported, for now.} but never pursued it because of my -general lack of interest in {\YouTube} (\url{www.youtube.com}). Recently, I -came across a very nice demo PDF that used the API, see -%\mlhref{http://www.uvsar.com/pdftube/}{PDF Tube - {\YouTube} API wrapper for PDF documents}. -``PDF Tube - {\YouTube} API wrapper for PDF documents'' (the page has -since been removed). -The SWF file and JavaScript are made freely available, so I -downloaded it, and was sufficiently impressed to port the example to -{\LaTeX} using various members of the {Acro\negthinspace\TeX} Fine Family of Software -\verb!:-{)!. The SWF file and JavaScript are due to the good folks at -\textbf{UVSAR} (\url{www.uvsar.com}). The \textbf{UVSAR}'s sample demo also appeared in the forums of -the \href{http://acrobatusers.com/forum/javascript/embed-youtube-video-pdf}{Acrobat User -Community}. - -The \textsf{yt4pdf} package uses the \textsf{rmannot} to embed the \textsf{SWF} -file that plays the {\YouTube} videos. There is a complete set of buttons -that come with the package to control the video: play, pause, stop -loading, rewind, load a video by its {\YouTube} video ID, and a button to -view a video on the {\YouTube} web site.\footnote{Some videos do not allow -embedded playback, and must be viewed on the {\YouTube} web site.} - -% http://acrobatusers.com/news/youtube-widget-acrobat - -\subsection{Sample files} - -The following are the sample files shipped with \textsf{yt4pdf}: -\begin{itemize} - \item \texttt{yt4pdf-1.tex} demonstrates the basic functionality of - the {\YouTube} RMA: the use of the poster, including \cs{ytComboList}, - \cs{ytComboBtn}, and \cs{ytvId}. - \item \texttt{yt4pdf-2.tex} experiments with different ways the - {\YouTube} annotation can be displayed - \begin{itemize} - \item As a small icon, videos are played in a floating window, - buttons displayed in the running footer. - \item[] This one uses a rollover, popup menu system (as opposed to - a combo box). The \textsf{popupmenu} package is used. - \item Using a built-in poster, with the combo box under the - annotation, control buttons in running footer. - \item Same as above, but control buttons moved to a two column - format. - \item Using the custom {\YouTube} for PDF poster with combo box and - control buttons under the RMA. - \end{itemize} - \item \texttt{yt4pdf-3.tex} illustrates the usage of the \texttt{play} and \texttt{load} - keys that are passed in the optional parameter of \cs{ytRmAnnot}. -\end{itemize} -% Advanced examples \href{http://www.math.uakron.edu/~dpstory/aebblog.html}{AeB Blog site}. - -\section{Requirements} - -This package is part of \textsf{AeB Pro}, which means Acrobat Distiller is -used to create the PDF; the package requires \textsf{rmannot}, which -creates rich media annotations. Therefore, we require -\begin{equation*} - \boxed{\text{\large\bfseries Adobe Acrobat, version 9.0 or later}} -\end{equation*} -To use this package, the document author must have AeB and AeB Pro -installed, as well as \textsf{rmannot}. The manual for \textsf{rmannot} -needs to be read closely to properly install it and to function correctly. -I have made \textsf{rmannot} a required package, and recently -have made the \textsf{popupmenu} package required as well. - -\section{Configuring your installation} - -In addition to configuring the \textsf{rmannot} package correctly, the -\textsf{yt4pdf} package needs configuring as well. The \textsf{yt4pdf} package -comes with a configuration file \texttt{yt4pdf.cfg}. Open this file in -your favorite editor to see -\begin{Verbatim}[fontsize=\small] -% yt4pdf config file. Delete the \endinput below and replace the path -% provided with the path to the swf folder of your yt4pdf installation. -% This path is used to locate the pdf_tube_basic.swf file, used to play -% YouTube videos. -\endinput -\renewcommand{\ytFolder}{C:/Users/Public/Documents/My TeX Files/% -tex/latex/aeb/aebpro/yt4pdf/swf} -\end{Verbatim} -Edit this file so that \cs{ytFolder} points to the \texttt{swf} folder on -your computer. - -\section{The Rich Mediation Annotation for {\YouTube}} - -The Rich Media Annotation (RMA) used is \cs{ytRmAnnot}, its definition -uses the command \cs{rmAnnot}, which is defined in the \textsf{rmannot} package. -\bVerb\takeMeasure{\string\ytRmAnnot[\ameta{KV-pairs}]\darg{\ameta{name}}\darg{\ameta{width}}\darg{\ameta{height}}}% -\begin{minipage}{\linewidth} -\begin{minipage}{\bxSize} -\xdef\panelWidth{\the\linewidth}% -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytRmAnnot[!ameta(KV-pairs)]{!ameta(name)}{!ameta(width)}{!ameta(height)} -\end{Verbatim} -\end{minipage}\hfill -\begin{minipage}{\linewidth-\panelWidth} -\setDisplayNumber\label{display:ytRmAnnot} -\end{minipage}\end{minipage}\endgroup -\PD -\begin{enumerate} - \item The first (optional) parameter is used to pass the key-value pairs of the - \cs{rmAnnot} command. Additionally, there are two other \ameta{KV-pairs} - recognized, specialized to the \cs{ytRmAnnot} command. - \begin{itemize} - \item \texttt{play=\ameta{vID}} Loads and plays the {\YouTube} video with - video ID of \ameta{vID}. - \item \texttt{load=\ameta{vID}} Loads the specified video's thumbnail - (as specified by \ameta{vID}) and prepares the player to play - the video. The player does not request the \textsf{FLV} until the play - button is pressed. - \end{itemize} - When you want to play a {\YouTube} video when the page containing - the annotation is opened, use the \texttt{play} key; for example - \texttt{play=GZ9e3Dy7obA} causes the video whose video ID is - \texttt{GZ9e3Dy7obA} to play when the page is opened. - - See the manual for the \pkg{rmannot} package for more details on the - key-value pairs that can be passed through the optional first - parameter. - - \item The \ameta{name} parameter is a name used to refer to the - annotation through underlying JavaScript code. The \ameta{name} - should consist of only letters and numbers. The value of this - parameter is placed in the macro \cs{ytCurrRMAName}. This macro is - used internally by the various control buttons. - - \item The width of the annotation. - - \item The height of the annotation. -\end{enumerate} - -\paragraph*{Annot Dimensions.} -The width and height of the {\YouTube} annotation should be \texttt{571bp} -and \texttt{330bp}, respectively, or any re-scaling of these dimensions. - -Examples, -\begin{Verbatim} - \ytRmAnnot[posternote=AcroTeX PDF Tube,play=eNzrn8-JFSE, - deactivated=pageclose]{YouTube1}{571bp}{330bp} -\end{Verbatim} -is a ``full-size'' annotation, while -\begin{Verbatim} - \ytRmAnnot[posternote=AcroTeX PDF Tube,load=eNzrn8-JFSE, - deactivated=pageclose]{YouTube1}{571bp/2}{330bp/2} -\end{Verbatim} -is half that size. The first example above plays a video when -the page is opened, the second example loads the thumbnail, and waits play -the video. - -You can also re-scale using either \cs{resizebox} or -\cs{scalebox} from the \textsf{graphicx} package. -\begin{Verbatim} - \resizebox{2in}{!}{\ytRmAnnot[posternote=AcroTeX PDF Tube, - deactivated=pageclose]{YouTube1}{571bp}{330bp}} -\end{Verbatim} -or, using \cs{scalebox}, -\begin{Verbatim} - \scalebox{.5}{\ytRmAnnot[posternote=AcroTeX PDF Tube, - deactivated=pageclose]{YouTube1}{571bp}{330bp}} -\end{Verbatim} - -\textbf{Running multiple videos at once.} At the time of this writing, the -\pkg{yt4pdf} package is not designed to run more than one video at a -time, that's not saying it cannot be done, however. It is not recommended, -indeed, why would you want to look at two {\YouTube} videos at the same -time? - -For documents with multiple {\YouTube} annotations over -several pages it is recommended, therefore, that the \texttt{deactivated=pageclose} -should be used in the optional parameter list of the \cs{ytRmAnnot} -command. - -\subsection{The \texorpdfstring{\protect\textsf{yt4pdf}}{yt4pdf} Poster} - -The \textsf{rmannot} package provides a standard poster (a gray rectangle -with text in the lower left corner). However, there is an especially -designed poster, designed by the folks at \textbf{UVSAR}. (See -Figure~\ref*{pdfytPoster}, page~\pageref*{pdfytPoster}.) - -\begin{figure}[htb] -\begin{center} - \includegraphics[scale=.5]{./graphics/pdfyt_poster}\\ - \caption{YouTube for PDF poster}\label{pdfytPoster} -\end{center} -\end{figure} - -\goodbreak -\textbf{To use this really cool poster:} -\begin{enumerate} - \item Insert the following line into the preamble, -\begin{Verbatim}[fontsize=\small] - \makePoster[bb=0 0 570.794 329.887]{pdfyt_poster}{pdfyt_poster} -\end{Verbatim} -The optional parameter should remain as it is, it adjusts the bounding -box so that the poster is properly placed. - -\item Use the \texttt{poster} key in the first optional parameter of -\cs{ytRmAnnot}, like so, -\begin{Verbatim} - \ytRmAnnot[poster=pdfyt_poster, - deactivated=pageclose]{YouTube}{571bp}{330bp}} -\end{Verbatim} -\end{enumerate} - -\subsection{Control Buttons} - -The {\YouTube} rich media annotation (as created by \cs{ytRmAnnot}), comes -with six (optional) control buttons. -\bVerb\takeMeasure{\string\ytSelect[\ameta{KV-pairs}]\darg{\ameta{vID}}\darg{\ameta{width}}\darg{\ameta{height}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytPlayToggle[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\ytStopLoading[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\ytMuteToggle[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\ytRewind[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\ytSelect[!ameta(KV-pairs)]{!ameta(vID)}{!ameta(width)}{!ameta(height)} -\ytOpenWeb[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\end{Verbatim} -\end{minipage}\endgroup -\PD The labels are self-explanatory, the \texttt{} parameter is -the standard \textsf{eforms} optional parameter for changing the -appearance of the form. The \ameta{vID} parameter for \cs{ytSelect} is -a {\YouTube} video ID. - -\goodbreak -\CmdDescription We give brief descriptions of each of the six control -buttons. -\begin{itemize} - \item \cs{ytPlayToggle}: - This button has several functions, \textsf{PAUSE}, \textsf{PLAY}, \textsf{BUFFERING}, and \textsf{REPLAY}. - Initially the button label is on \textsf{PAUSE} (pressing it pauses a playing video); - the button label reads \textsf{PLAY} when the video is loaded and paused (pressing it plays or resumes - the video); while the video is loading, the button label is - \textsf{BUFFERING\dots}. After the video finishes playing, the button - label is changed to \textsf{Replay}. - \item \cs{ytStopLoading}: Pressing this button stops the streaming of the currently playing - video. If the video is started again, there will be some buffering before the play begins. - \item \cs{ytMuteToggle}: This button toggles and sound off and on. Button labels are - \textsf{MUTE} and \textsf{UNMUTE}. - \item \cs{ytRewind}: If the video is playing, this button - stops the video, rewinds it to the beginning, and starts play again. If the video - is paused, this button rewinds the video to the beginning, the video remains paused. - \item \cs{ytSelect}: When this button is pressed, a response dialog opens. - The user enters a {\YouTube} video ID into the field. On pressing OK, this video is played. - - \item[] The second parameter \ameta{vID} is the default video - that is displayed in the input box of the response box that opens. - \item[] \textbf{Note:} Some {\YouTube} videos are security - restricted and cannot be played through an embedded player, such as the one used here. - If video ID of a video that does not allow embedded playback, a dialog appears giving - the user the opportunity to view the video on the web. - \item \cs{ytOpenWeb}: The user has the option of pressing this button to view the - current video on the web at \texttt{www.youtube.com}. -\end{itemize} - -The first (optional) parameter can be used to modify the appearance of the -individual buttons. To modify the appearances of the buttons as a group, -use, -\bVerb\takeMeasure{\string\ytBtnPresets\darg{\ameta{KV-pairs}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytBtnPresets{!ameta(KV-pairs)} -\end{Verbatim} -\end{minipage}\eVerb -The key-value pairs are ones defined for form fields created by the \textsf{eforms} -package. The default definition is, -\begin{Verbatim}[xleftmargin=\amtIndent] -\ytBtnPresets{\BC{.5 0 0}\S{S}\textFont{HeBo}} -\end{Verbatim} - -The second parameter of \cs{ytRmAnnot} is the name to be associated with -that annot; the name of the annot is not known until after the annot is -defined. The command \cs{DeclareYTName}, -\bVerb\takeMeasure{\string\DeclareYTName\darg{\ameta{name}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\DeclareYTName{!ameta(name)} -\end{Verbatim} -\end{minipage}\eVerb -allows you to define the name prior to the creation of the annot. This is -useful if you want to place the control buttons above the annot itself. By -specifying the name, the control buttons will know the name of the annot -they are to control. - -\subsection{Controls for playing a {\YouTube} video} - -To actually play a video, you must pass a video ID to the underlying SWF -file. We present two methods here, through links and through a combo box. -One of the example files, \texttt{yt4pdf-2.pdf}, illustrates another method -using a popup menu. - -\subsubsection{Playing a video through a link} - -The command \cs{ytvId} creates a list such that when you click on it, the -video specified by the second parameter of the command is played in the -associated Rich Media annotation created by \cs{ytRmAnnot}. The associated -RMA is the one most recently defined prior to the link. If the link occurs -before the target RMA, you can use \cs{DeclareYTName} to set the name of -the target RMA for the link. -\bVerb\takeMeasure{\string\ytvId[\ameta{KV-pairs}]\darg{\ameta{vID}}\darg{\ameta{text}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytvId[!ameta(KV-pairs)]{!ameta(vID)}{!ameta(text)} -\end{Verbatim} -\end{minipage}\endgroup -\PD The first parameter takes the usual key-value pairs for links created -by the \textsf{eforms} package. The second parameter is the video ID to be -played. The third parameter is the text to be displayed by the link, -usually the title of the {\YouTube} video. - -\cs{ytvId} loads and plays the specified video; there is an -\texttt{*}-form of this command, -\bVerb\takeMeasure{\string\ytvId*[\ameta{KV-pairs}]\darg{\ameta{vID}}\darg{\ameta{text}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytvId*[!ameta(KV-pairs)]{!ameta(vID)}{!ameta(text)} -\end{Verbatim} -\end{minipage}\eVerb -When this form is used, the {\YouTube} thumbnail image for the video is -displayed. The player does not -request the video until the play button is pressed. - -You can set the appearances for a all links created by \cs{ytvId} by using -\cs{ytvIdPresets} -\bVerb\takeMeasure{\string\ytvIdPresets\darg{\ameta{KV-pairs}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytvIdPresets{!ameta(KV-pairs)} -\end{Verbatim} -\end{minipage}\eVerb -The key-value pairs are ones defined for form fields created by the \textsf{eforms} -package. The default definition is -\begin{Verbatim}[xleftmargin=\amtIndent] -\ytvIdPresets{\linktxtcolor{webbrown}} -\end{Verbatim} - -\subsubsection{Playing a video using a combo box} - -You can created a combo box with a play list. There are three commands -that create the combo list, \cs{ytPlayList}, \cs{ytComboList}, and -\cs{ytComboBtn}. -\bVerb\takeMeasure{\string\ytPlayList\darg{\ameta{default\_vId}}\darg{\ameta{playlist}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytPlayList{!ameta(default_vId)}{!ameta(playlist)} -\end{Verbatim} -\end{minipage}\eVerb -This command sets the play list to be displayed in the combo box, it needs -to be executed before the actual creation of the combo box (using -\cs{ytComboList}). The first parameter is the default video ID, this title -will be initially displayed by the combo box. The \ameta{playlist} is -an array of video IDs and title pairs. The \ameta{playlist} is conveniently defined -within the \cs{declarePlayList} command: -\bVerb\takeMeasure{\string\declarePlayList\darg{\ameta{\cs{plCmd}}}\{\%}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\declarePlayList{!ameta(\plCmd)}{% - !ameta(array-of-vIDs-titles) -} -\end{Verbatim} -\end{minipage}\eVerb The array of video IDs and title pairs are saved under the command name \ameta{plCmd}. -For example -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\declarePlayList{\playList}{% - [(GZ9e3Dy7obA)(Kung-Fu Fighting {(Bruce Lee version)})] - [(eNzrn8-JFSE)(Open at Adobe)] - [(5y9-EVmreU4)(Lori's Corner: Episode \#1)] -} -\end{Verbatim} -The format for each pair is \texttt{[(\ameta{vId})(\ameta{title})]}. Notice that in the case -of the Bruce Lee video, the title itself contains parentheses; to avoid parsing errors when -the \pkg{eforms} package builds the combo box, \emph{enclose these parentheses in a pair of matching braces}. - -In the example above, the array, in its correct format, is loaded -conveniently into a macro \cs{playList} declared through \cs{declarePlayList}. The macro may then be passed as the -second parameter of \cs{ytPlayList}. Thus, an example of the use of -\cs{ytPlayList} is -\begin{Verbatim}[xleftmargin=\amtIndent] -\ytPlayList{eNzrn8-JFSE}{\playList} -\end{Verbatim} - -There is a convenience command, \cs{ytIdTitle}, that is used to build -a \cs{ytPlayList}. -\bVerb\takeMeasure{\string\ytIdTitle\darg{\ameta{vId}}\darg{\ameta{title}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytIdTitle{!ameta(vId)}{!ameta(title)} -\end{Verbatim} -\end{minipage}\eVerb -The above example can the be re-written as, -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small] -\declarePlayList{\playList}{% - \ytIdTitle{GZ9e3Dy7obA}{Kung-Fu Fighting {(Bruce Lee version)}} - \ytIdTitle{eNzrn8-JFSE}{Open at Adobe} - \ytIdTitle{5y9-EVmreU4}{Lori's Corner: Episode \#1} -} -\end{Verbatim} - -\paragraph*{The combo box.} The syntax for the combo box itself is -\bVerb\takeMeasure{\string\ytComboList[\ameta{KV-pairs}]\darg{\ameta{width}}\darg{\ameta{height}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytComboList[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\end{Verbatim} -\end{minipage}\eVerb -The \cs{ytComboList} is a combo box of video Ids and titles. The user -selects a video based on its title, then presses the \textsf{PLAY} button -(see \cs{ytComboBtn} below). This command is executed \emph{before} -\cs{ytComboBtn} to set the play list, and the default value. -\PD\begin{itemize} - \item \ameta{KV-pairs}: (optional) The key-value pairs associated with an - \textsf{eforms} form field, used to change the appearance of the field. - \item \ameta{width}: The width of the combo box - \item \ameta{height}: The height of the combo box -\end{itemize} -The appearance can be changed locally by the optional first parameter. The -command \cs{ytComboListPresets} is used to change all combo lists create -by \cs{ytComboList}. The command takes has one parameter, the key-value -pairs for changing the appearance. The default definition is -\verb!\ytComboListPresets{}!. - -Originally, I visualized only one combo box per page, recently that -mind-set has changed. Should you want several combo boxes, as created by -\cs{ytComboList}, each box must have a unique name. To that end -\bVerb\takeMeasure{\string\ytNewBaseName[\ameta{name}]}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytNewBaseName[!ameta(name)] -\ytResetBaseName -\end{Verbatim} -\end{minipage}\eVerb -The first command, \cs{ytNewBaseName}, has one optional parameter, if no -parameter is supplied, then a base name will be generated; otherwise, -the title of the combo box will be based on the \ameta{name} passed to -it. For the command \cs{ytResetBaseName}, the first command effects the JS -and the field name of \cs{ytComboBtn} described below. -\begin{Verbatim}[xleftmargin=\amtIndent,fontsize=\small,commandchars=!()] -\begin{itemize} -\item \ytNewBaseName\relax\ytPlayList{!ameta(default_Id)}{\playListii}% - \ytComboList{2.5in}{11bp}\kern1bp\ytComboBtn{33bp}{11bp} -\item \ytNewBaseName[Listiii]\ytPlayList{!ameta(default_Id)}{\playListiii}% - \ytComboList{2.5in}{11bp}\kern1bp\ytComboBtn{33bp}{11bp} -\end{itemize} -\end{Verbatim} -\textbf{\textcolor{red}{Note:}} Because \cs{ytNewBaseName} has an optional -argument, you should place a \cs{relax} after \cs{ytNewBaseName} to prevent -premature expansion of the \cs{ytplayList} command that follows. - -\newtopic Once the selection has been made from the combo box, the user -can play the selection by pressing the button created by \cs{ytComboBtn}. -\bVerb\takeMeasure{\string\ytComboBtn[\ameta{KV-pairs}]\darg{\ameta{width}}\darg{\ameta{height}}}% -\begin{minipage}{\bxSize} -\begin{Verbatim}[frame=single,commandchars=!(),rulecolor=\color{red}] -\ytComboBtn[!ameta(KV-pairs)]{!ameta(width)}{!ameta(height)} -\end{Verbatim} -\end{minipage}\eVerb -\textbf{\textcolor{red}{Note:}} If you hold down the shift key and click on -the button, the thumbnail poster is loaded, and the player is ready to -play the video. -\PD\begin{itemize} - \item \ameta{KV-pairs}: (optional) The key-value pairs associated with an - \textsf{eforms} form field, used to change the appearance of the field. - \item \ameta{width}: The width of the combo box - \item \ameta{height}: The height of the combo box -\end{itemize} -The appearance can be changed locally by the optional first parameter. The -command \cs{ytComboBtnPresets} is used to change all combo lists create -by \cs{ytComboBtn}. The command takes has one parameter, the key-value -pairs for changing the appearance. The default definition is -\verb!\ytComboBtnPresets{}!. - -\subsection{Using the \textsf{popupmenu} package} - -The \pkg{popupmenu} a required package, \pkg{yt4pdf} adds some commands and -JS to facilitate its usage. The demo file for this feature is -\texttt{yt4pdf-2.tex}, where you will find some comments in the source file. - -In the preamble, we define our menu structure, - -\begin{Verbatim}[numbers=left,xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont] -\begin{popupmenu}{YTMenu} - \puIdTitle{Select a You Tube Video}{} % A title has no yt Id - \begin{submenu}{title=Music Videos} - \puIdTitle{Ink Spots - If I didn't care}{rvwfLe6sLis} - \puIdTitle{Ink Spots - My Prayer}{h7KJCns5v3g} - \end{submenu} - \begin{submenu}{title=Adobe Related Videos} - \puIdTitle{Open at Adobe}{eNzrn8-JFSE} - \puIdTitle{Lori's Corner Episode \#1}{5y9-EVmreU4} - \puIdTitle{Intro to PDF Portfolios}{T9Yzo_hlwP0} - \end{submenu} -\end{popupmenu} -\ytPopupMenuData{\YTMenu} -\end{Verbatim} -The \cs{puIdTitle} is a convenience macro to enter the menu data; the -first argument is the title of the {\YouTube} video, the second argument -is the {\YouTube} ID. There may be several \texttt{popupmenu} environments, each -with a different name. After the last such environment, execute the -\cs{ytPopuMenuData} command, seen in line~(12). Its argument is a token -list of all popupmenus; here, we have only one. If there are several, they -are listed as follows: -\begin{Verbatim}[xleftmargin=\leftmargini] -\ytPopupMenuData{\YTMenu\myEduVids\myMusicVids} -\end{Verbatim} - -The menu is displayed as an mouse-over action of button, here is the -verbatim listing from \texttt{yt4pdf-2.tex} - -\begin{Verbatim}[numbers=left,xleftmargin=\leftmargini,fontsize=\fontsize{9}{11}\selectfont] -\DeclareYTName{ytInWindow} -... -\newcommand{\myPBPresets}{% - \CA{YT Menu}\textColor{0 0 1}\W1\BC{}\textSize{0}\S{S} - \AA{\AAMouseEnter{\JS{ytPopupMenu("\ytCurrRMAName",YTMenu)}}}} -\setWindowDimPos{% - position={halign=center,valign=center,hoffset=0,voffset=0}, - width={default=571},height={default=330}}% -\setlength{\pichskip}{3pt} -\parpic(.25in,.25in){% -\parbox{.25in}{\offinterlineskip\resizebox{.25in}{!}{% - \ytRmAnnot[windowed,poster=yt_poster,deactivated=pageclose]% - {ytInWindow}{72bp}{72bp}% -}}} -\pushButton[\presets{\myPBPresets}]{myYTMenu}{20bp}{5bp} -On this page, the You Tube annotation is icon size and the -video is played in a floating window. -\end{Verbatim} -\textbf{Comments:} -\begin{itemize} - \item In line~(1) we declare the name of the {\YouTube} annot to be - used. We do this because we need to use the name before the annot is - defined. The annot itself is not defined until line~(12). - \item Lines~(3)--(5): Define a command to be used for passing the - button attributes for the \texttt{myYTMenu} button (seen in - line~(15)). In line~(5) we define the action for the button; it is a - mouse enter action that executes the \texttt{ytPopupMenu} JS function - defined in the \texttt{yt2pdf} package. This function takes two - arguments, the first is the name of the target Rich Media Annotation - hat will display the videos, this name is \verb!"\ytCurrRMAName"!, - where \cs{ytCurrRMAName} holds the name of the most recent {\YouTube} - annotation. The second argument is the name of the menu data (defined - by the \texttt{popupmenu} environment. - \item Lines~(9)--(14): We create an annot so that it appears as an - icon, the text of the paragraph wraps around the icon. This is what we - do with the \cs{parpic} command. In lines~(12)--(13), we create the - {\YouTube} annot using \cs{ytRmAnnot}. - \item In line~(15) we have a button with a mouse rollover action. Note - we pass the earlier defined presets to this button. -\end{itemize} -See the complete source file in \texttt{yt4pdf-2.tex}. - - -\section{Language localizations} - -The default language for \textsf{yt4pdf} is English; the English strings -that \textsf{yt4pdf} uses are listed below. These can be redefined as -desired. -\begin{Verbatim} -\newcommand{\ytStrPLAY}{PLAY} -\newcommand{\ytStrREPLAY}{REPLAY} -\newcommand{\ytStrPAUSE}{PAUSE} -\newcommand{\ytStrBuffering}{Buffering...} -\newcommand{\ytStrStopLoading}{Stop Loading} -\newcommand{\ytStrMUTE}{MUTE} -\newcommand{\ytStrUNMUTE}{UNMUTE} -\newcommand{\ytStrREWIND}{REWIND} -\newcommand{\ytStrLoadVideo}{Load Video} -\newcommand{\ytStrWatchOnWeb}{Watch on YouTube} -% response dialog box associated with ytSelect() -\newcommand{\ytRespQues}{Enter the YouTube Video ID} -\newcommand{\ytRespTitle}{Load a Video} -\newcommand{\ytRespLabel}{ID:} -% alert error messages -\newcommand{\ytStrErrorVideoNotFound}{Error: Video not found} -\newcommand{\ytStrErrorNoEmbed}{Error: This video does not allow - embedded playback \r\r Would you like to view this video - on the web?} -\newcommand{\ytStrConnecTimedOut}{Connection timed out, try again.} -\end{Verbatim} - -\bigskip - -That's all for now, I simply must get back to my retirement. {\dps} - -\end{document} diff --git a/texmf-dist/source/latex/yt4pdf/examples/config_intacc.def b/texmf-dist/source/latex/yt4pdf/examples/config_intacc.def deleted file mode 100644 index ac2e0f8e..00000000 --- a/texmf-dist/source/latex/yt4pdf/examples/config_intacc.def +++ /dev/null @@ -1,29 +0,0 @@ -\newpage - -\begin{minipage}[t]{3in}\parindent20pt\small -\noindent\makebox[\linewidth][c]{\bfseries\normalsize\color{blue}Configuring -Preferences}\\[3pt] -To avoid the security alerts when loading FLV files from You Tube, -configure your preferences as described below. - -Start Adobe Reader 9 or later (or Acrobat~9 or later), and open the \textbf{Preferences} -dialog box (located in the menu system by selecting \textbf{Edit -\texttt{>} Preferences} or using the shortcut Ctrl+K); select -\textbf{Trust Manager} from the left-hand \textbf{Categories} panel. On -the right side of the dialog box, press the button labeled \textbf{Change -Settings}, shown below.\par\vspace*{3pt}\centering -\includegraphics[width=\linewidth]{graphics/trustmanager} -\end{minipage}\hfill -\begin{minipage}[t]{\linewidth-3in-10pt}\small -In the \textbf{Manage Internet Access}, make selections as -indicated by the red boxes.\par\medskip -\noindent\makebox[\linewidth][c]{\bfseries\normalsize\color{blue}For Version 9}\\[3pt] -\noindent\makebox[\linewidth][c]{\includegraphics[width=2in]{graphics/MIA9}}\\[3pt] -That is, select \textbf{Allow all web sites}\par\medskip -\noindent\makebox[\linewidth][c]{\bfseries\normalsize\color{blue}For Version 10}\\[3pt] -\noindent\makebox[\linewidth][c]{\includegraphics[width=2in]{graphics/MIAX}}\\[3pt] -\textbf{Allow PDF files to access all web sites}\par\medskip -Exit the dialogs, and try \textbf{YT4PDF}! -\end{minipage} - -\newpage diff --git a/texmf-dist/source/latex/yt4pdf/examples/graphics/MIA9.eps b/texmf-dist/source/latex/yt4pdf/examples/graphics/MIA9.eps deleted file mode 100644 index e68a0a0b..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/examples/graphics/MIA9.eps and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/examples/graphics/MIAX.eps b/texmf-dist/source/latex/yt4pdf/examples/graphics/MIAX.eps deleted file mode 100644 index 71bdbbc0..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/examples/graphics/MIAX.eps and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/examples/graphics/trustmanager.eps b/texmf-dist/source/latex/yt4pdf/examples/graphics/trustmanager.eps deleted file mode 100644 index ee141a72..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/examples/graphics/trustmanager.eps and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/examples/graphics/yt_icon_sm.eps b/texmf-dist/source/latex/yt4pdf/examples/graphics/yt_icon_sm.eps deleted file mode 100644 index 2e6e0ff1..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/examples/graphics/yt_icon_sm.eps and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-1.tex b/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-1.tex deleted file mode 100644 index fac944ab..00000000 --- a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-1.tex +++ /dev/null @@ -1,93 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -% -% the driver line is not necessary if you -% have aebpro.cfg configured to your driver. -% -\usepackage[% - web={designv,pro,tight,usesf,usetemplates}, - eforms,graphicxsp={showembeds},aebxmp -]{aeb_pro} -\usepackage{rmannot} -\usepackage{yt4pdf} -\usepackage{multicol} - -\textBgColor{lightgray} - -\DeclareDocInfo -{ - title=The \texorpdfstring{\textsf{yt4pdf} Package\\[3pt]}{yt4pdf Package: }Demo 1 of You Tube API, - author=D. P. Story, - university=Acro\negthinspace\TeX.Net, - email=dpstory@acrotex.net, - subject={Live streamed video from YouTube.com}, - keywords={You Tube, AeB, rmannot}, - talksite=\url{http://www.acrotex.net}, - talkdate={\today} -} -\talkdateLabel{Published:} - -\def\AcroTeX{Acro\!\TeX} - -\makePoster{pdfyt_poster}{pdfyt_poster} - -\parindent=0pt\parskip6pt -\rheader{} - -\DeclarePageLayout{footskip=29pt} - -\declarePlayList{\playList}{% dps note I've put these parentheses within braces, that was the problem. - \ytIdTitle{Kung-Fu Fighting {(Bruce Lee version)}}{GZ9e3Dy7obA} - \ytIdTitle{Kung-Fu Fighting {(Original, must view on YouTube)}}{jhUkGIsKvn0} - \ytIdTitle{RAF Sculthorpe {(Watch for my Mom!)}}{K7H8QghVs9k} - \ytIdTitle{Rocket Jump}{7XzdZ4KcI8Y} - \ytIdTitle{Abdul And Cleopatra - Jonathan Richman and the Modern Lovers}{mLDF5MBMWHE} -} - -\begin{document} - -\maketitle - -\input{config_intacc.def} - -\begin{center}\bfseries\Large\color{blue}YT4PDF\end{center} - - -%\previewtrue - -\begin{minipage}{571bp/2} -\ytRmAnnot[poster=pdfyt_poster,deactivated=pageclose]{YouTube}{571bp/2}{330bp/2} -\end{minipage}\hfill -\begin{minipage}{\linewidth-290bp-10bp}\centering -\ytPlayToggle{1in}{11bp}\\[3bp] -\ytStopLoading[\textSize{0}]{1in}{11bp}\\[3bp] -\ytMuteToggle{1in}{11bp}\\[3bp] -\ytRewind{1in}{11bp}\\[3bp] -\ytSelect[\textSize{0}]{eNzrn8-JFSE}{1in}{11bp}\\[6bp] -\ytOpenWeb[\textSize{0}]{1in}{11bp} -\end{minipage} - -\medskip - -\begin{flushleft} -\raggedcolumns\bfseries -Favorites to play:\vspace{-.5\baselineskip} -\begin{multicols}{2}\ytPlayList{GZ9e3Dy7obA}{\playList}% -\begin{itemize} -\item \ytComboList{\linewidth-1bp-33bp}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp} -\item \ytvId{_iUnOpPEg0w}{TegrityGuy} - -\item \ytvId*{eNzrn8-JFSE}{Open at Adobe} (load thumbnail) - -\columnbreak - -\item \ytvId{q-iiFo-6Vi0}{Digital Signature in 9.0 Pro} -\item \ytvId{5y9-EVmreU4}{Lori's Corner: Episode \#1} -\item \ytvId{T9Yzo_hlwP0}{Intro to PDF Portfolios} -\end{itemize} -\end{multicols} -\end{flushleft} - - - -\end{document} diff --git a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-2.tex b/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-2.tex deleted file mode 100644 index 558b3928..00000000 --- a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-2.tex +++ /dev/null @@ -1,152 +0,0 @@ -\documentclass{article} -\usepackage{amsmath} -% -% the driver line is not necessary if you -% have aebpro.cfg configured to your driver. -% -\usepackage[% - web={designv,pro,tight,usesf,usetemplates}, - eforms,graphicxsp={showembeds},aebxmp -]{aeb_pro} -\usepackage{yt4pdf} -\usepackage{picins} - -% \textBgColor{lightgray} - -\DeclareDocInfo -{ - title=The \texorpdfstring{\textsf{yt4pdf} Package\\[3pt]}{yt4pdf Package: }Demo 2 of You Tube API, - author=D. P. Story, - university=Acro\negthinspace\TeX.Net, - email=dpstory@acrotex.net, - subject={Live streamed video from YouTube.com}, - keywords={You Tube, AeB, rmannot}, - talksite=\url{http://www.acrotex.net}, - talkdate={\today} -} -\talkdateLabel{Published:} - -\def\AcroTeX{Acro\!\TeX} - -\makePoster{pdfyt_poster}{pdfyt_poster} -\makePoster{yt_poster}{graphics/yt_icon_sm} - -\parindent=0pt\parskip6pt -\rheader{} - -\DeclarePageLayout{footskip=15.5pt} - -%\previewtrue - -\declarePlayList{\playList}{% - \ytIdTitle{Kung-Fu Fighting {(Bruce Lee version)}}{GZ9e3Dy7obA} - \ytIdTitle{Kung-Fu Fighting {(Original, must view on YouTube)}}{jhUkGIsKvn0} - \ytIdTitle{RAF Sculthorpe {(Watch for my Mom!)}}{K7H8QghVs9k} - \ytIdTitle{Rocket Jump}{7XzdZ4KcI8Y} -} - -% -% Note: popupmenu package version 1.0 (2010/09/18) or later required here. -% -\begin{popupmenu}{YTMenu} - \puIdTitle{Select a You Tube Video}{} % A title has no yt Id - \begin{submenu}{title=Music Videos} - \puIdTitle{Kung-Fu Fighting (Bruce Lee version)}{GZ9e3Dy7obA} - \puIdTitle{Kung-Fu Fighting (Original, view on You Tube)}{jhUkGIsKvn0} - \puIdTitle{Ink Spots - If I didn't care}{rvwfLe6sLis} - \puIdTitle{Ink Spots - My Prayer}{h7KJCns5v3g} - \end{submenu} - \begin{submenu}{title=Adobe Related Videos} - \puIdTitle{Open at Adobe}{eNzrn8-JFSE} - \puIdTitle{Lori's Corner Episode \#1}{5y9-EVmreU4} - \puIdTitle{Intro to PDF Portfolios}{T9Yzo_hlwP0} - \end{submenu} - \begin{submenu}{title=Action Videos} - \puIdTitle{Rocket Jump}{7XzdZ4KcI8Y} - \puIdTitle{AimBot}{NYGlWjIKoY4} - \puIdTitle{Flower Warfare}{031Dshcnso4} - \puIdTitle{Modern Warfare: Frozen Crossing Pt. 1}{rzQMGMuD1sU} - \puIdTitle{Modern Warfare: Frozen Crossing Pt. 2}{a08ViuvORRM} - \end{submenu} -\end{popupmenu} - -% After defining all menus used with YouTube videos, we declare them using \ytPopupMenuData -% The argument is a token list: \ytPopupMenuData{\myEducationMenu\myFunMenu...} -\ytPopupMenuData{\YTMenu} - -\begin{document} - -\maketitle - -\input{config_intacc.def} - - -\begin{center}\bfseries\Large\color{blue}YT4PDF\end{center} - -\DeclareYTName{ytInWindow} -\ytBtnPresets{\BC{.5 0 0}\W{1}\S{S}\textFont{HeBo}}% -{\setlength{\dimen0}{(\linewidth)/6-1bp}\xdef\ytWidth{\the\dimen0}} %-.5bp -\cfooter{\makebox[\linewidth][c]{\kern1bp\ytPlayToggle{\ytWidth}{11bp}\kern1bp\ytStopLoading[\textSize{0}]{\ytWidth}{11bp}\kern1bp -\ytMuteToggle{\ytWidth}{11bp}\kern1bp\ytRewind{\ytWidth}{11bp}\kern1bp -\ytSelect[\textSize{0}]{eNzrn8-JFSE}{\ytWidth}{11bp}\kern1bp\ytOpenWeb[\textSize{0}]{\ytWidth}{11bp}}} - -\newcommand{\myPBPresets}{\CA{YT Menu}\textColor{0 0 1}\W1\BC{}\textSize{0} - \S{S}\AA{\AAMouseEnter{\JS{ytPopupMenu("\ytCurrRMAName",YTMenu)}}}} - -\setWindowDimPos{position={halign=center,valign=center,hoffset=0,voffset=0}, - width={default=571},height={default=330}}% - -\setlength{\pichskip}{3pt} -\parpic(.25in,.25in){% -\parbox{.25in}{\offinterlineskip\resizebox{.25in}{!} -{\ytRmAnnot[windowed,poster=yt_poster,deactivated=pageclose]{ytInWindow}{72bp}{72bp}}}} -\pushButton[\presets{\myPBPresets}]{myYTMenu}{20bp}{5bp} -On this page, the You Tube annotation is icon size and the video is played -in a floating window. - -Move the window by dragging its title bar. Resize it by dragging the -lower-right corner. Close the window by clicking on the upper-right -corner. - -The \textsf{YT Menu} uses the \textsf{popupmenu} package. Alternatively, -we could just use the combo box that has been used already, but, I thought -we might try something different. - -\newpage - -\ytRmAnnot[posternote=AcroTeX PDF Tube,deactivated=pageclose]{YouTube1}{571bp/2}{330bp/2}\\ -\ytPlayList{GZ9e3Dy7obA}{\playList}\ytComboListPresets{\textSize{9}}% -\ytComboList{(571bp/2)-1bp-33bp}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp} - -\newpage -\cfooter{} -\begin{minipage}{571bp/2} -\ytRmAnnot[posternote=AcroTeX PDF Tube,deactivated=pageclose]{YouTube2}{571bp/2}{330bp/2}\\ -\ytPlayList{GZ9e3Dy7obA}{\playList}\ytComboListPresets{\textSize{9}}% -\ytComboList{(571bp/2)-1bp-33bp}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp} -\end{minipage}\hfill -\begin{minipage}{\linewidth-290bp-10bp}\centering -\ytPlayToggle{1in}{11bp}\\[3bp] -\ytStopLoading[\textSize{0}]{1in}{11bp}\\[3bp] -\ytMuteToggle{1in}{11bp}\\[3bp] -\ytRewind{1in}{11bp}\\[3bp] -\ytSelect[\textSize{0}]{eNzrn8-JFSE}{1in}{11bp}\\[6bp] -\ytOpenWeb[\textSize{0}]{1in}{11bp} -\end{minipage} - -\newpage - -\begin{center} -\begin{minipage}{571bp/2} -\ytRmAnnot[poster=pdfyt_poster,deactivated=pageclose]{YouTube3}{571bp/2}{330bp/2}\\ -\ytPlayList{GZ9e3Dy7obA}{\playList}\ytComboListPresets{\textSize{9}}% -\ytComboList{(571bp/2)-1bp-33bp}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp}\\[1bp] -{\setlength{\dimen0}{(\linewidth+1bp)/6-1bp}\xdef\ytWidth{\the\dimen0}}% -\ytPlayToggle{\ytWidth}{11bp}\kern1bp\ytStopLoading[\textSize{0}]{\ytWidth}{11bp}\kern1bp -\ytMuteToggle{\ytWidth}{11bp}\kern1bp\ytRewind{\ytWidth}{11bp}\kern1bp -\ytSelect[\textSize{0}]{eNzrn8-JFSE}{\ytWidth}{11bp}\kern1bp -\ytOpenWeb[\textSize{0}\CA{View on Web}]{\ytWidth}{11bp} -\end{minipage} -\end{center} - -\end{document} diff --git a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-3.tex b/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-3.tex deleted file mode 100644 index 03625c9f..00000000 --- a/texmf-dist/source/latex/yt4pdf/examples/yt4pdf-3.tex +++ /dev/null @@ -1,88 +0,0 @@ -%\ytIdTitle{No Ordinary Love - Sade}{_WcWHZc8s2I} -\documentclass{article} -\usepackage{amsmath} -% -% the driver line is not necessary if you -% have aebpro.cfg configured to your driver. -% -\usepackage[% - web={designv,pro,tight,usesf,usetemplates}, - eforms,graphicxsp={showembeds},aebxmp -]{aeb_pro} -\usepackage{yt4pdf} - -%\margins{10bp}{10bp}{.5in}{.5in} % left,right,top, bottom -%\screensize{7.5in}{10in} % height,width dimensions - -\textBgColor{lightgray} - -\DeclareDocInfo -{ - title=The \texorpdfstring{\textsf{yt4pdf} Package\\[3pt]}{yt4pdf Package: }Demo 3 of You Tube API, - author=D. P. Story, - university=Acro\negthinspace\TeX.Net, - email=dpstory@acrotex.net, - subject={Live streamed video from YouTube.com}, - keywords={You Tube, AeB, rmannot}, - talksite=\url{http://www.acrotex.net}, - talkdate={\today} -}\talkdateLabel{Published:} - -\def\AcroTeX{Acro\!\TeX} - -\makePoster{pdfyt_poster}{pdfyt_poster} -\makePoster{yt_poster}{graphics/yt_icon_sm} - -\parindent=0pt\parskip6pt -\rheader{} - -% dps need to change the catcode of subscript (_) before hyperref gets -% chance to look at it. -\declarePlayList{\playList}{% - \ytIdTitle{Kung-Fu Fighting {(Bruce Lee version)}} {GZ9e3Dy7obA} - \ytIdTitle{Kung-Fu Fighting {(Original, must view on YouTube)}}{jhUkGIsKvn0} - \ytIdTitle{RAF Sculthorpe {(Watch for my Mom!)}} {K7H8QghVs9k} - \ytIdTitle{Rocket Jump} {7XzdZ4KcI8Y} - \ytIdTitle{No Ordinary Love - Sade} {_WcWHZc8s2I} -} - -\begin{document} - -\maketitle - -\input{config_intacc.def} - -\begin{center}\bfseries\Large\color{blue}YT4PDF\end{center} - -\ytBtnPresets{\BC{.5 0 0}\W{1}\S{S}\textFont{HeBo}}% - -\resizebox{\linewidth}{!}{\ytRmAnnot[play=eNzrn8-JFSE,poster=pdfyt_poster, - deactivated=pageclose]{ytPlayOnOpen}{571bp}{330bp}}\\ -{\setlength{\dimen0}{(\linewidth-2bp)/6}\xdef\ytWidth{\the\dimen0}}% -\ytPlayToggle{\ytWidth}{11bp}\ytStopLoading{\ytWidth}{11bp}% -\ytMuteToggle{\ytWidth}{11bp}\ytRewind{\ytWidth}{11bp}% -\ytSelect{eNzrn8-JFSE}{\ytWidth}{11bp}\ytOpenWeb[\textSize{0}]{\ytWidth}{11bp}% - -\ytPlayList{GZ9e3Dy7obA}{\playList} - -% We have to disable the RMA so the combo box can be seen above it. -Playlist: \ytComboList[\A{\JS{\thisNamedRMA(ytPlayOnOpen).activated=false;}}]{2.5in}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp} - -\newpage -\begin{center}\bfseries\Large\color{blue}YT4PDF\end{center} - -\resizebox{\linewidth}{!}{\ytRmAnnot[load=GZ9e3Dy7obA,poster=pdfyt_poster, - deactivated=pageclose]{ytLoadOnOpen}{571bp}{330bp}}\\ -\ytBtnPresets{\BC{.5 0 0}\W{1}\S{S}\textFont{HeBo}}% -{\setlength{\dimen0}{(\linewidth-2bp)/6}\xdef\ytWidth{\the\dimen0}}% -\ytPlayToggle{\ytWidth}{11bp}\ytStopLoading{\ytWidth}{11bp}% -\ytMuteToggle{\ytWidth}{11bp}\ytRewind{\ytWidth}{11bp}% -\ytSelect{eNzrn8-JFSE}{\ytWidth}{11bp}\ytOpenWeb[\textSize{0}]{\ytWidth}{11bp}% - -\ytPlayList{GZ9e3Dy7obA}{\playList} - -% We have to disable the RMA so the combo box can be seen above it. -Playlist: \ytComboList[\A{\JS{\thisNamedRMA(ytLoadOnOpen).activated=false;}}]{2.5in}{11bp}\kern1bp\ytComboBtn[\TU{Click to play, shift-click to load thumbnail only}]{33bp}{11bp} - - -\end{document} diff --git a/texmf-dist/source/latex/yt4pdf/graphics/pdfyt_poster.eps b/texmf-dist/source/latex/yt4pdf/graphics/pdfyt_poster.eps deleted file mode 100644 index 97c7ecd1..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/graphics/pdfyt_poster.eps and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/swf/pdf_tube_basic.swf b/texmf-dist/source/latex/yt4pdf/swf/pdf_tube_basic.swf deleted file mode 100644 index 5dde7b7c..00000000 Binary files a/texmf-dist/source/latex/yt4pdf/swf/pdf_tube_basic.swf and /dev/null differ diff --git a/texmf-dist/source/latex/yt4pdf/yt4pdf.dtx b/texmf-dist/source/latex/yt4pdf/yt4pdf.dtx deleted file mode 100644 index 4ca3bcc0..00000000 --- a/texmf-dist/source/latex/yt4pdf/yt4pdf.dtx +++ /dev/null @@ -1,629 +0,0 @@ -%\iffalse -%<*copyright> -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% yt4pdf.sty package, %% -%% Copyright (C) 2010--2016 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -% -%\NeedsTeXFormat{LaTeX2e}[1997/12/01] -%\ProvidesPackage{yt4pdf} -% [2016/10/04 v1.1 yt4pdf: Play You Tube videos in PDF, Acrobat Distiller only (dps)] -%<*driver> -\documentclass{ltxdoc} -\usepackage[colorlinks,hyperindex]{hyperref} -%\pdfstringdefDisableCommands{\let\\\textbackslash} -%\EnableCrossrefs \CodelineIndex -\begin{document} -\def\CMD#1{\textbackslash#1} - \GetFileInfo{yt4pdf.sty} - \title{\textsf{yt4pdf}: Package for playing You Tube Videos} - \author{D. P. Story\\ - Email: \texttt{dpstory@uakron.edu}} - \date{processed \today} - \maketitle - \tableofcontents - \let\Email\texttt - \DocInput{yt4pdf.dtx} - \PrintIndex -\end{document} -% -% \fi -% \MakeShortVerb{|} -% \StopEventually{} -% -% \DoNotIndex{\def,\edef,\gdef,\xdef,\global,\long,\let} -% \DoNotIndex{\expandafter,\string,\the,\ifx,\else,\fi} -% \DoNotIndex{\csname,\endcsname,\relax,\begingroup,\endgroup} -% \DoNotIndex{\DeclareTextCommand,\DeclareTextCompositeCommand} -% \DoNotIndex{\space,\@empty,\special} -% -% \begin{macrocode} -%<*package> -% \end{macrocode} -% \begin{macrocode} -\RequirePackage{xkeyval} -% \end{macrocode} -% \begin{macrocode} -\ProcessOptions -\RequirePackage{rmannot} -\RequirePackage{popupmenu}[2010/09/18] -% \end{macrocode} -% -% \section{Introduction} -% -% I believe that I was vaguely aware of the \href{http://code.google.com/apis/youtube/flash_api_reference.html} -%{YouTube ActionScript 3.0 Player}, but never pursued it because of my -%general lack of interest in You Tube (\url{www.youtube.com}). Recently, I -%became aware of a very nice demo PDF that used the API, see -%\href{http://www.uvsar.com/pdftube/}{PDF Tube - YouTube API wrapper for PDF -%documents}. The SWF file and JavaScript are made freely available, so I -%downloaded it, and was sufficiently impressed to port the example to -%{\LaTeX} using various members of the {Acro\negthinspace\TeX} Fine Family of Software -%\verb!:-{)!. The SWF file and JavaScript are due to the good folks at -%UVSAR (\url{www.uvsar.com}). The UVSAR's sample demo also appeared in the forums of -%the \href{http://acrobatusers.com/forums/aucbb/viewtopic.php?pid=62134}{Acrobat User -%Community}. -% -% \section{Implementation} -% -% \DescribeMacro{\ytFolder} The path to the folder containing -% the \texttt{pdf\_Tube\_basic.swf} file. This path is set through -% the \texttt{yt4pdf.cfg} file. -% \begin{macrocode} -\newcommand{\ytFolder}{C:/Users/Public/Documents/My TeX Files/% -tex/latex/aeb/aebpro/yt4pdf/swf} -% \end{macrocode} -% \DescribeMacro{ytSWF} The path to \texttt{pdf\_Tube\_basic.swf}, used -% as an argument for the \cs{rmAnnot} macro. -% \begin{macrocode} -\saveNamedPath{ytSWF}{\ytFolder/pdf_tube_basic.swf} -% \end{macrocode} -% We input the file \texttt{yt4pdf.cfg} which should contain a re-definition -% of \cs{ytFolder}, the path to the user's installation containing the -% \texttt{pdf\_tube\_basic.swf}. -% \begin{macrocode} -\InputIfFileExists{yt4pdf.cfg}{}{} -% \end{macrocode} -% \subsection{The YouTube RMA} -% In this section, we define \cs{ytRmAnnot}, a rich media annotation, that is used -% to play YouTube videos. -% \begin{macrocode} -% \end{macrocode} -% An internal command for getting the rma object based on the current page and the -% name of the annot. -% \begin{macrocode} -\def\yt@namegdef#1{\expandafter\gdef\csname #1\endcsname} -\def\yt@namexdef#1{\expandafter\xdef\csname #1\endcsname} -\def\thisNamedRMA(#1){this.getAnnotRichMedia(this.pageNum,"#1")} -% \end{macrocode} -% \DescribeMacro{play} This is a key-value pair for the \cs{ytRmAnnot} command. -% The value of \texttt{play} is a YouTube video ID. When the page the annot is -% on, the video will be played. -% \begin{macrocode} -\define@key{ytRmAnnot}{play}[]{\def\ytrmannot@play{#1}} -\define@key{ytRmAnnot}{load}[]{\def\ytrmannot@load{#1}} -\setkeys{ytRmAnnot}{play,load} -\let\ytCurrRMAName\@empty -% \end{macrocode} -% \begin{macro}{\ytRmAnnot} -% The \cs{ytRmAnnot} creates a rich media annotation using the \textsf{rmannot} package. -% It uses the SWF file \texttt{pdf\_Tube\_basic.swf} referenced here by the name of -% \texttt{ytSWF}. The command takes four parametrs: -% \begin{itemize} -% \item[\texttt{[\#1]}]: The optional first parameter takes the key-value pairs of the -% \cs{rmAnnot} command, plus the \texttt{play} key, defined above. The play key is used -% to set the annot up so it plays automatically when the page is opened. -% \item[\texttt{\#2}]: The name of this annot, unique to the document. This should be -% a ``JavaScript variable.'' The name populates the command \cs{ytCurrRMAName}, which is -% needed for the other commands in this package. -% \item[\texttt{\#3}]: The width of the annot -% \item[\texttt{\#4}]: The height of the annot -% \end{itemize} -% \begin{macrocode} -\newcommand{\ytRmAnnot}[4][]{\begingroup - \@ifundefined{#2@ytrmname}{\yt@namegdef{#2@ytrmname}{#1}}% - {\PackageError{yt2pdf}{The name `#2' is already defined - for\MessageBreak this \string\ytRmAnnot}{Choose a unique - name for this \string\ytRmAnnot, one different from `#2'.}}% - \setkeys*{ytRmAnnot}{#1}\gdef\ytCurrRMAName{#2}% - \ifx\ytrmannot@play\@empty\else - \makebox[0pt][l]{\pushButton[\BC{}\BG{}\S{S} - \AA{\AAPageOpen{aebStartPlayer(\thisNamedRMA(#2),% - "\ytrmannot@play",true);}\AAPageClose{aebCancelWait(false);}} - ]{btnRmAnnot#2}{1bp}{1bp}}\let\ytrmannot@load\@empty\fi - \ifx\ytrmannot@load\@empty - \else\makebox[0pt][l]{\pushButton[\BC{}\BG{}\S{S} - \AA{\AAPageOpen{aebStartPlayer(\thisNamedRMA(#2),% - "\ytrmannot@load",false);}\AAPageClose{aebCancelWait(false);}} - ]{btnRmAnnot#2}{1bp}{1bp}}\fi - \rmAnnot[\XKV@rm,name=#2,enabled=onclick]{#3}{#4}{ytSWF}% - \endgroup -} -% \end{macrocode} -% \end{macro} -% \DescribeMacro{\DeclareYTName} Defines the internal macro -% \cs{ytCurrRMAName}. This command is needed in the case were links, or -% control buttons come before the RMA annot. The first parameter is the -% page on which the target annot resides, the default is the current page. -% The second argument is the name of the target annot. -% code passed is -% \begin{macrocode} -\newcommand{\DeclareYTName}[2][]{\def\argi{#1}% - \ifx\argi\@empty\gdef\ytCurrRMAName{#2}\else - \gdef\ytCurrRMAName{[#1]#2}\fi -} -% \end{macrocode} -% \subsection{Button Controls} -% We present six control buttons for the rm annot -% \begin{macro}{\ytBtnPresets} -% The default appearances of the control buttons. -% \begin{macrocode} -\newcommand{\ytBtnPresets}[1]{\def\yt@Presets{#1}} -\ytBtnPresets{\BC{.5 0 0}\S{S}\textFont{HeBo}\autoCenter{n}} -% \end{macrocode} -% \end{macro} -% The following six commands all take three parameters, the first one optional -%\begin{enumerate} -% \item[\texttt{\#1}:] Standard key-value pairs for modifying the -% appearance of an eforms form field. -% \item[\texttt{\#2}:] -% \texttt{this.getAnnotRichMedia(this.pageNum+1, "YouTube")}. -% \item[\texttt{\#3}:] the width of the button -% \item[\texttt{\#4}:] the height of the button -%\end{enumerate} -% \begin{macro}{\ytPlayToggle} -% This button has several functions: Pause/Play/Buffering. -% Initially the button label is on Pause (pressing it pauses a playing video); -% the button label reads Play when the video is loaded and paused (pressing it plays or resumes -% the video); while the video is loading, the button label is Buffering... -% \begin{macro}{\ytStopLoading} Pressing this button stops the streaming of the currently playing -% video. If the video is started again, there will be some buffering before the play begins. -% \begin{macro}{\ytMuteToggle} This button toggles and sound off and on. Button labels are -% MUTE and UNMUTE. -% \begin{macro}{\ytRewind} If the video is playing, this button -% stops the video, rewinds it to the beginning, and starts play again. If the video -% is paused, this button rewinds the video to the beginning, the video remains paused. -% \begin{macro}{\ytSelect} When this button is pressed, a response dialog opens. -% The user enters a YouTube video ID into the field. On pressing OK, this video is played. -% \item[] \textbf{Note:} Some YouTube videos are security -% restricted and cannot be played through an embedded player, such as the one used here. -% If video ID of a video that does not allow embedded playback, a dialog appears giving -% the use to view the video on the web. -% \begin{macro}{\ytOpenWeb} The user has the option of pressing this button to view the -% currently video on the web at \texttt{www.youtube.com}. -% \begin{macrocode} -% \end{macrocode} -% The \cs{oyt@RMA} command takes the second parameter of each of the six button commands, -% and expands it into the appropriate JS code. -% \begin{macrocode} -\newcommand{\oyt@RMA}[1][this.pageNum]{\oyt@@RMA[#1]} -\def\oyt@@RMA[#1]#2\@nil{\gdef\yt@CurrRMAName{#2}% - \def\yt@rm{this.getAnnotRichMedia(#1,"#2")}} -% \end{macrocode} -% We finally define the six control buttons. -% \begin{macrocode} -\newcommand{\ytPlayToggle}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrPAUSE}\presets{\yt@Presets}#1 - \A{\JS{ytPlayToggle(\yt@rm);}}]{playToggle}{#2}{#3}% -} -\newcommand{\ytStopLoading}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrStopLoading}\presets{\yt@Presets}#1 - \A{\JS{\yt@rm.callAS("stopVideo");}}]{vidStop}{#2}{#3}% -} -\newcommand{\ytMuteToggle}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrMUTE}\presets{\yt@Presets}#1 - \A{\JS{ytMuteToggle(\yt@rm);}}]{muteToggle}{#2}{#3}% -} -\newcommand{\ytRewind}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrREWIND}\presets{\yt@Presets}#1 - \A{\JS{ytRewind(\yt@rm);}}]{ytRewind}{#2}{#3}% -} -\newcommand{\ytSelect}[4][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrLoadVideo}\presets{\yt@Presets}#1 - \A{\JS{ytSelect(\yt@rm,"#2");}}]{selectVid}{#3}{#4}% -} -\newcommand{\ytOpenWeb}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrWatchOnWeb}\presets{\yt@Presets}#1 - \A{\JS{ytOpenWeb(\yt@rm);}}]{playOnWeb}{#2}{#3}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \end{macro} -% \subsection{Defining a Video Id} -% \subsubsection{Using a Link} -% \begin{macro}{\ytvIdPresets} -% The options for the \cs{ytvId} link. The default is given below in the definition. -% \begin{macro}{\ytvId} -% The \cs{ytvId} is link which when pressed plays the video whose Video Id is passed as -% its second argument. -% \begin{itemize} -% \item[\texttt{[\#1]}:] The name of the annot this video is to play in. When -% this parameter is not specified, the default -% is \cs{ytCurrRMAName}, which is defined by the \cs{ytRmAnnot} macro. -% \item[\texttt{\#2}:] The video Id for the YouTube video to play -% \item[\texttt{\#3}:] The text that displays the link. -%\end{itemize} -% \begin{macrocode} -\newcommand{\ytvIdPresets}[1]{\def\yt@vIdPresets{#1}} -\ytvIdPresets{\linktxtcolor{webbrown}} -\newcommand{\ytvId}{\@ifstar{\def\yt@lnk@play{false}\yt@@vId} - {\def\yt@lnk@play{true}\yt@@vId}} -\newcommand{\yt@@vId}[3][\ytCurrRMAName]{% - \oyt@RMA#1\@nil\setLink[\presets{\yt@vIdPresets} - \A{\JS{aebStartPlayer(\yt@rm,"#2",\yt@lnk@play);}}]{#3}} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \subsubsection{Using a Combobox} -% \begin{macro}{\ytComboList} -% The \cs{ytComboList} is a combox box of video Ids and titles. The user selects a -% video based on its title, then presses the PLAY button. The two commands -% \cs{ytComboListPresets} and \cs{ytComboBtnPresets} are used to set the appearances -% of the combo box and the PLAY button. -%\begin{itemize} -% \item[\texttt{[\#1]}:] eforms key-value pairs -% \item[\texttt{\#2}:] The width of the combo box -% \item[\texttt{\#3}:] The height of the combo box -%\end{itemize} -% \begin{macro}{\ytComboBtn} -% A button to play the selection made in the combo box. -% \begin{macro}{\ytPlayList} -% This command is executed before \cs{ytComboBtn} to set the play list, -% and the default value. -% \begin{macrocode} -\newcommand{\ytComboListPresets}[1]{\def\yt@ComboListPresets{#1}} -\newcommand{\ytComboBtnPresets}[1]{\def\yt@ComboBtnPresets{#1}} -\let\yt@ComboListPresets\@empty -\let\yt@ComboBtnPresets\@empty -% \end{macrocode} -% Use the \cs{ytPlayList} to pass the play list to the next combo box -% \begin{macrocode} -\newcommand{\ytPlayList}{\begingroup\@makeother\_\@makeother\' - \ytPlayList@i} -\def\ytPlayList@i#1#2{\gdef\yt@pl@def{#1}\xdef\yt@pl@pl{#2}\endgroup} -% \end{macrocode} -% \begin{macro}{\declarePlayList} -% A video ID may contain characters {\LaTeX} considers special, so we sanitize these -% special characters before reading in the video ID. Near as I can determine, a video -% id consists of 11 characters comprising combinations of letters (A-Z,a-z) numbers -% (0-9) and special characters underscore and hyphen (\_ and -). We sanitize the last two. -%\begin{verbatim} -%\declarePlayList{<\cmd>}{ -% \ytIdTitle{}{} -% ... -% \ytIdTitle{}{} -% } -%\end{verbatim} -%The entries may also be in raw form `|[()()]|'. Note that the two arguments are -%enclosed in parentheses, there is a problem with parsing if \texttt{} itself contains -%parentheses. Within \texttt{} enclose matching parentheses in braces, for example, -%\begin{flushleft}|\ytIdTitle{Kung-Fu Fighting {(Bruce Lee version)}}{GZ9e3Dy7obA}|\end{flushleft} -% \changes{v1.1}{2016/10/04}{Added \string\cs{declarePlayList}} -% \begin{macrocode} -\newcommand{\declarePlayList}{\bgroup - \@makeother\_\@makeother\- - \yt@declarePlayList} -\def\yt@declarePlayList#1#2{% - \gdef#1{#2}\egroup} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ytIdTitle} -% A convenience command to lay out the playlist, for example, -%\begin{verbatim} -%\declarePlayList{\playListii}{% -% \ytIdTitle{Elfego Baca}{gRwa0MdeqVs} -% \ytIdTitle{Texas John Slaughter}{7yrk1BvtLE8} -% \ytIdTitle{Swamp Fox}{-SBPnw5riLM&NR} -% \ytIdTitle{Zorro Promo}{cKludhxEoJ0} -%} -%\end{verbatim} -% \begin{macrocode} -\newcommand{\ytIdTitle}[2]{[(#2)(#1)]} -% \end{macrocode} -% \end{macro} -% \begin{macro}{\ytNewBaseName} -% \cs{ytNewBaseName} is a not so perfect attempt to fix the problem of having -% multiple combo boxes on one page. The field names need to be distinct. We -% can pass the new field name using this command. -% \begin{macro}{\ytResetBaseName} -% This command resets the field name back to its default value. -% Both of these commands apply to \cs{ytComboList} and to \cs{ytComboBtn}. -% \changes{v1.0}{2011/08/23}{Added \cs{ytBaseName} to pass a field title to -% combo box and controlling play button} -% \begin{macrocode} -\newcount\ytListCnt \ytListCnt=0 -\newcommand{\ytNewBaseName}[1][]{% - \def\yt@argi{#1}\ifx\yt@argi\@empty\global\advance\ytListCnt1\relax - \gdef\yt@BaseName{\yt@CurrRMAName\the\ytListCnt}\else - \gdef\yt@BaseName{\yt@CurrRMAName#1}\fi -} -\newcommand{\ytResetBaseName}{\gdef\yt@BaseName{\yt@CurrRMAName}} -\ytResetBaseName -% \end{macrocode} -% \end{macro} -% \end{macro} -% Now we have the code for \cs{ytComboList} -% \begin{macrocode} -\newcommand{\ytComboList}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \comboBox[\DV{\yt@pl@def}\V{\yt@pl@def} - \presets{\yt@ComboListPresets}#1]{ytSelect\yt@BaseName} - {#2}{#3}{\yt@pl@pl}% -} -% \end{macrocode} -% The parameters for \cs{ytComboBtn} are -%\begin{itemize} -% \item[\texttt{[\#1]}:] The the name of the \cs{ytRmAnnot} this selection is to play in -% the default is \cs{ytCurrRMAName}. -% \item[\texttt{\#2}:] The width of the combo box -% \item[\texttt{\#3}:] The height of the combo box -% the array of values and titles. -%\end{itemize} -% \begin{macrocode} -\newcommand{\ytComboBtn}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrPLAY}\presets{\yt@ComboBtnPresets}#1 - \A{\JS{var f=this.getField("ytSelect\yt@BaseName");\r - aebStartPlayer(\yt@rm,f.value,!event.shift); - }}]{ytSelectBtn\yt@BaseName}{#2}{#3}% -} -% \end{macrocode} -% \end{macro} -% \end{macro} -% \end{macro} -% \subsection{Support for the \textsf{popupmenu} package} -% \begin{macro}{\ytPopupMenuData} -% A command use to list the popupmenu data. It defines a command -% \cs{ytPopupData} that is used in the JS support for popup menus. -% \begin{macrocode} -\newcommand{\ytPopupMenuData}[1]{{\toks0={// yt4pdf: Begin popup menu data^^J}% - \@tfor\yt@menu:=#1\do{% - \toks2=\expandafter{\yt@menu}% - \edef\@tmp@exp{\the\toks0\the\toks2^^J}% - \toks0=\expandafter{\@tmp@exp}% - }\xdef\ytPopupData{\the\toks0// End of popup menu data}% -}} -\def\ytPopupData{// No popup menu data defined}% -% \begin{macro}{\puIdTitle} -% A convenience macro for entering popupmenu data for youtube videos. -%\begin{verbatim} -%\puIdTitle{\string\"Sea Hunt\string\" TV serie}{MW-IZ67iADU} -%\end{verbatim} -% Note that we must protect the double quote. -% \begin{macrocode} -\newcommand{\puIdTitle}[2]{\item{title={#1},return={[\itemindex,'#2']}}} -% \end{macrocode} -% \end{macro} -% -% \subsection{Strings that can be localized} -% The following strings are used on the buttons, and in the document level JS -% \begin{macrocode} -\newcommand{\ytStrPLAY}{PLAY} -\newcommand{\ytStrREPLAY}{REPLAY} -\newcommand{\ytStrPAUSE}{PAUSE} -\newcommand{\ytStrBuffering}{Buffering...} -\newcommand{\ytStrStopLoading}{Stop Loading} -\newcommand{\ytStrMUTE}{MUTE} -\newcommand{\ytStrUNMUTE}{UNMUTE} -\newcommand{\ytStrREWIND}{REWIND} -\newcommand{\ytStrLoadVideo}{Load Video} -\newcommand{\ytStrWatchOnWeb}{Watch on YouTube} -% response dialog box associated with ytSelect() -\newcommand{\ytRespQues}{Enter the YouTube Video ID} -\newcommand{\ytRespTitle}{Load a Video} -\newcommand{\ytRespLabel}{ID:} -% alert error messages -\newcommand{\ytStrErrorVideoNotFound}{Error: Video not found} -\newcommand{\ytStrErrorNoEmbed}{Error: This video does not allow - embedded playback \r\r Would you like to view this video - on the web?} -\newcommand{\ytStrConnecTimedOut}{Connection timed out, try again.} -% \end{macrocode} -% -% \subsection{Document level JavaScript} -% \begin{macrocode} -\begin{insDLJS*}[ytPlayToggle]{yt} -\begin{newsegment}{yt4PDF: YouTube for PDF JavaScript} -/* - Document-level script for YouTube player - Document-level script for the PDFtube embedded YouTube player - *************************************************************** - Functions to be called by buttons or links on the PDF - in each case, "rm" is the RichMedia annot containing the player - All these are optional and can be renamed or edited as required - *********************************************************** -*/ -// toggle play/pause (button labels updated by event functions) -function ytPlayToggle(rm) { - var ps = rm.callAS("getPlayerState"); - rm.callAS((ps == 1)? "pauseVideo" : "playVideo"); -} -// toggle mute (have to update button labels ourselves) -function ytMuteToggle(rm) { - var im = rm.callAS("isMuted"); - if (im) { - event.target.buttonSetCaption("\ytStrMUTE"); - rm.callAS("unMute"); - } else { - event.target.buttonSetCaption("\ytStrUNMUTE"); - rm.callAS("mute"); - } -} -// Ask the user for the ID number of a new video, and play it -function ytSelect(rm,vID) { - var rsp = app.response({ - cQuestion: "\ytRespQues", - cTitle: "\ytRespTitle", - cDefault: vID, - cLabel: "\ytRespLabel"}); - if (rsp !=null && rsp != "") - aebStartPlayer(rm,rsp,true); // dps -} -// open the video's YouTube page in the web browser -function ytOpenWeb(rm) { - var link = rm.callAS("getVideoUrl"); - if (link != null) { - app.launchURL(link,true); - rm.activated = false; - } -} -// rewind (seek to zero) -function ytRewind(rm) { rm.callAS("seekTo",0); } -/* - ************************************************************ - Functions called by the player itself, in response to events - as the events are "external", the annot is not the target. - These functions must exist and match the names in the SWF. - *********************************************************** -*/ -function ytPlayerReady() { - - // this is the place to load your default video - for example... - console.println(" Player loaded and ready"); - // this.getAnnotsRichMedia(this.pageNum)[0].callAS("loadVideoById", - // "eNzrn8-JFSE",0); - aebStartPlayer.isPlayerReady=true; // dps -} -function ytStateChange(st) { - // Possible values are unstarted (-1), ended (0), playing (1), - // paused (2), buffering (3), video cued (5) - var lbl = ""; - console.println(" State changed to " + st); - if (st == 0) lbl = "\ytStrREPLAY"; - else if (st == 1) lbl = "\ytStrPAUSE"; - else if (st == 3) lbl = "\ytStrBuffering"; - else if (st == 2 || st == 5) lbl = "\ytStrPLAY"; - if (lbl) this.getField("playToggle").buttonSetCaption(lbl); -} -function ytPlaybackQualityChange(str) { - // Possible values are "small", "medium", "large" and "hd720" - console.println(" Quality changed to " + str); -} -function ytProgress(q) { - // q has four properties that you can use to update form fields, - // such as... - //this.getField("currentTime").value = q.CurrentTime; - //this.getField("Duration").value = q.Duration; - //this.getField("BytesLoaded").value = q.BytesLoaded; - //this.getField("BytesTotal").value = q.BytesTotal; -} -function ytError(err) { - // Video cannot be played - console.println(" ERROR code " + err + " received"); - if (err == 100) - app.alert("\ytStrErrorVideoNotFound", 0, 0, "YouTube"); - else { - var resp=app.alert("\ytStrErrorNoEmbed", 1, 3, "YouTube"); - if (resp==4) { - aebCancelWait(false); - ytOpenWeb(aebStartPlayer.annot); - } - } -} -/* - We start the player if the annot is activated, if not, - we set annot.activated=true, and wait for the widget to say it - is ready. When ready, ytPlayerReady() sets - aebStartPlayer.isPlayerReady=true -*/ -function aebStartPlayer(rm,Id,bPlay) { - aebStartPlayer.annot=rm; - if (aebStartPlayer.annot.activated) - aebStartPlayer.annot.callAS(% -(bPlay)?"loadVideoById":"cueVideoById",Id,0); - else { - aebCancelWait(false); - aebStartPlayer.annot.activated=true; - aebStartPlayer.isPlayerReady=false; - aebStartPlayer.twait=app.setInterval(% -'aebWait4Ready(\"'+Id+'\",'+bPlay+');',250); - aebStartPlayer.to=app.setTimeOut("aebCancelWait(true)", 10000); - } -} -aebStartPlayer.isPlayerReady=false; -aebStartPlayer.twait=null; -aebStartPlayer.to=null; -/* - If the player is ready, we start the video, and clear - the setInterval, otherwise, we wait. -*/ -function aebWait4Ready(Id,bPlay) { - if (aebStartPlayer.isPlayerReady) { - aebCancelWait(false); - aebStartPlayer.annot.callAS(% -(bPlay)?"loadVideoById":"cueVideoById",Id,0); - } -} -function aebCancelWait(bNotify) { - var twait=aebStartPlayer.twait; - if (aebStartPlayer.to!=null) - try { app.clearTimeOut(aebStartPlayer.to); } catch(e) {}; - aebStartPlayer.to=null; - if (aebStartPlayer.twait!=null) - try { app.clearInterval(aebStartPlayer.twait); } catch(e) {} - aebStartPlayer.twait=null; - if ( bNotify && twait!=null ) app.alert("\ytStrConnecTimedOut"); -} -\end{newsegment} -\begin{newsegment}{Popup Menu Data and JS} -\ytPopupData -var aChoice; -function ytProcessMenu(aMenu) { - var cChoice = \popUpMenu(aMenu); - if ( cChoice != null ) { - aChoice=eval(cChoice); - if (aChoice[1]=="") return null; - var thisChoice=aChoice[0]; - if (ytProcessMenu.nChoice==undefined) { - ytProcessMenu.nChoice=thisChoice; - eval("aMenu"+ytProcessMenu.nChoice).bMarked=true; - } else { - eval("aMenu"+ytProcessMenu.nChoice).bMarked=false; - var oldnChoice=ytProcessMenu.nChoice; - ytProcessMenu.nChoice=thisChoice; - eval("aMenu"+ytProcessMenu.nChoice).bMarked=(oldnChoice==ytProcessMenu.nChoice)?false:true; - } - return aChoice; - } else return null; -} -function ytPopupMenu(rmaName,ytmenu) { - var aChoice=ytProcessMenu(ytmenu); - var rm=this.getAnnotRichMedia(this.pageNum,rmaName); - if (aChoice!=null) { - if (ytProcessMenu.lastDescrip==undefined) { - aebStartPlayer(rm,aChoice[1],!event.shift); - } else { - if (ytProcessMenu.lastDescrip!=aChoice[1]) { - aebStartPlayer(rm,aChoice[1],!event.shift); - } - } - ytProcessMenu.lastDescrip=aChoice[1]; - } -} -\end{newsegment} -\end{insDLJS*} -% \end{macrocode} -% \begin{macrocode} -% -% \end{macrocode} -\endinput - -rm=this.getAnnotRichMedia(this.pageNum,"YouTube1"); -rm.callAS("cueVideoById", "GZ9e3Dy7obA"); diff --git a/texmf-dist/source/latex/yt4pdf/yt4pdf.ins b/texmf-dist/source/latex/yt4pdf/yt4pdf.ins deleted file mode 100644 index 6732fb25..00000000 --- a/texmf-dist/source/latex/yt4pdf/yt4pdf.ins +++ /dev/null @@ -1,60 +0,0 @@ -%% -%% This file will generate fast loadable files and documentation -%% driver files from the doc files in this package when run through -%% LaTeX or TeX. -%% -%% Copyright 1999-2006 D. P. Story -%% -%% This file is part of the `AcroTeX eDucation Bundle'. -%% ------------------------------------------- -%% -%% It may be distributed under the conditions of the LaTeX Project Public -%% License, either version 1.2 of this license or (at your option) any -%% later version. The latest version of this license is in -%% http://www.latex-project.org/lppl.txt -%% and version 1.2 or later is part of all distributions of LaTeX -%% version 1999/12/01 or later. -%% -%% --------------- start of docstrip commands ------------------ -%% -\def\filedate{2010/09/10} -\def\batchfile{yt4pdf.ins} - -\input docstrip -\ifx\generate\undefined - \Msg{**********************************************} - \Msg{*} - \Msg{* This installation requires docstrip} - \Msg{* version 2.4 or later.} - \Msg{*} - \Msg{* An older version of docstrip has been input} - \Msg{*} - \Msg{**********************************************} - \errhelp{Move or rename old docstrip.tex and get a newer one.} - \errmessage{Old docstrip in input path} - \batchmode - \csname @@end\endcsname\end -\fi - -\keepsilent -\askforoverwritefalse -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% - -\preamble -\endpreamble - -\generate -{% - \file{yt4pdf.sty}{\from{yt4pdf.dtx}{copyright,package}} -} - -\Msg{***************************************************************} -\Msg{*} -\Msg{* \space To finish the installation you have to copy the files } -\Msg{*} -\Msg{* \space *.sty, *.cfg and *.def into a directory searched by TeX} -\Msg{*} -\Msg{***************************************************************} - -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\endinput diff --git a/texmf-dist/tex/latex/yt4pdf/yt4pdf.cfg b/texmf-dist/tex/latex/yt4pdf/yt4pdf.cfg deleted file mode 100644 index 7a8e5de8..00000000 --- a/texmf-dist/tex/latex/yt4pdf/yt4pdf.cfg +++ /dev/null @@ -1,10 +0,0 @@ -% -% yt4pdf config file. Delete the \endinput below and replace the path -% provided with the path to the swf folder of your yt4pdf installation. This -% path is used to locate the pdf_tube_basic.swf file, used to play YouTube -% videos. -% -\endinput -\renewcommand{\ytFolder}{C:/Users/Public/Documents/My TeX Files/% -tex/latex/aeb/aebpro/yt4pdf/swf} -\endinput diff --git a/texmf-dist/tex/latex/yt4pdf/yt4pdf.sty b/texmf-dist/tex/latex/yt4pdf/yt4pdf.sty deleted file mode 100644 index 7aef683a..00000000 --- a/texmf-dist/tex/latex/yt4pdf/yt4pdf.sty +++ /dev/null @@ -1,346 +0,0 @@ -%% -%% This is file `yt4pdf.sty', -%% generated with the docstrip utility. -%% -%% The original source files were: -%% -%% yt4pdf.dtx (with options: `copyright,package') -%% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -%% yt4pdf.sty package, %% -%% Copyright (C) 2010--2016 D. P. Story %% -%% dpstory@uakron.edu %% -%% %% -%% This program can redistributed and/or modified under %% -%% the terms of the LaTeX Project Public License %% -%% Distributed from CTAN archives in directory %% -%% macros/latex/base/lppl.txt; either version 1 of the %% -%% License, or (at your option) any later version. %% -%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% -\NeedsTeXFormat{LaTeX2e}[1997/12/01] -\ProvidesPackage{yt4pdf} - [2016/10/04 v1.1 yt4pdf: Play You Tube videos in PDF, Acrobat Distiller only (dps)] -\RequirePackage{xkeyval} -\ProcessOptions -\RequirePackage{rmannot} -\RequirePackage{popupmenu}[2010/09/18] -\newcommand{\ytFolder}{C:/Users/Public/Documents/My TeX Files/% -tex/latex/aeb/aebpro/yt4pdf/swf} -\saveNamedPath{ytSWF}{\ytFolder/pdf_tube_basic.swf} -\InputIfFileExists{yt4pdf.cfg}{}{} -\def\yt@namegdef#1{\expandafter\gdef\csname #1\endcsname} -\def\yt@namexdef#1{\expandafter\xdef\csname #1\endcsname} -\def\thisNamedRMA(#1){this.getAnnotRichMedia(this.pageNum,"#1")} -\define@key{ytRmAnnot}{play}[]{\def\ytrmannot@play{#1}} -\define@key{ytRmAnnot}{load}[]{\def\ytrmannot@load{#1}} -\setkeys{ytRmAnnot}{play,load} -\let\ytCurrRMAName\@empty -\newcommand{\ytRmAnnot}[4][]{\begingroup - \@ifundefined{#2@ytrmname}{\yt@namegdef{#2@ytrmname}{#1}}% - {\PackageError{yt2pdf}{The name `#2' is already defined - for\MessageBreak this \string\ytRmAnnot}{Choose a unique - name for this \string\ytRmAnnot, one different from `#2'.}}% - \setkeys*{ytRmAnnot}{#1}\gdef\ytCurrRMAName{#2}% - \ifx\ytrmannot@play\@empty\else - \makebox[0pt][l]{\pushButton[\BC{}\BG{}\S{S} - \AA{\AAPageOpen{aebStartPlayer(\thisNamedRMA(#2),% - "\ytrmannot@play",true);}\AAPageClose{aebCancelWait(false);}} - ]{btnRmAnnot#2}{1bp}{1bp}}\let\ytrmannot@load\@empty\fi - \ifx\ytrmannot@load\@empty - \else\makebox[0pt][l]{\pushButton[\BC{}\BG{}\S{S} - \AA{\AAPageOpen{aebStartPlayer(\thisNamedRMA(#2),% - "\ytrmannot@load",false);}\AAPageClose{aebCancelWait(false);}} - ]{btnRmAnnot#2}{1bp}{1bp}}\fi - \rmAnnot[\XKV@rm,name=#2,enabled=onclick]{#3}{#4}{ytSWF}% - \endgroup -} -\newcommand{\DeclareYTName}[2][]{\def\argi{#1}% - \ifx\argi\@empty\gdef\ytCurrRMAName{#2}\else - \gdef\ytCurrRMAName{[#1]#2}\fi -} -\newcommand{\ytBtnPresets}[1]{\def\yt@Presets{#1}} -\ytBtnPresets{\BC{.5 0 0}\S{S}\textFont{HeBo}\autoCenter{n}} -\newcommand{\oyt@RMA}[1][this.pageNum]{\oyt@@RMA[#1]} -\def\oyt@@RMA[#1]#2\@nil{\gdef\yt@CurrRMAName{#2}% - \def\yt@rm{this.getAnnotRichMedia(#1,"#2")}} -\newcommand{\ytPlayToggle}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrPAUSE}\presets{\yt@Presets}#1 - \A{\JS{ytPlayToggle(\yt@rm);}}]{playToggle}{#2}{#3}% -} -\newcommand{\ytStopLoading}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrStopLoading}\presets{\yt@Presets}#1 - \A{\JS{\yt@rm.callAS("stopVideo");}}]{vidStop}{#2}{#3}% -} -\newcommand{\ytMuteToggle}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrMUTE}\presets{\yt@Presets}#1 - \A{\JS{ytMuteToggle(\yt@rm);}}]{muteToggle}{#2}{#3}% -} -\newcommand{\ytRewind}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrREWIND}\presets{\yt@Presets}#1 - \A{\JS{ytRewind(\yt@rm);}}]{ytRewind}{#2}{#3}% -} -\newcommand{\ytSelect}[4][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrLoadVideo}\presets{\yt@Presets}#1 - \A{\JS{ytSelect(\yt@rm,"#2");}}]{selectVid}{#3}{#4}% -} -\newcommand{\ytOpenWeb}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrWatchOnWeb}\presets{\yt@Presets}#1 - \A{\JS{ytOpenWeb(\yt@rm);}}]{playOnWeb}{#2}{#3}% -} -\newcommand{\ytvIdPresets}[1]{\def\yt@vIdPresets{#1}} -\ytvIdPresets{\linktxtcolor{webbrown}} -\newcommand{\ytvId}{\@ifstar{\def\yt@lnk@play{false}\yt@@vId} - {\def\yt@lnk@play{true}\yt@@vId}} -\newcommand{\yt@@vId}[3][\ytCurrRMAName]{% - \oyt@RMA#1\@nil\setLink[\presets{\yt@vIdPresets} - \A{\JS{aebStartPlayer(\yt@rm,"#2",\yt@lnk@play);}}]{#3}} -\newcommand{\ytComboListPresets}[1]{\def\yt@ComboListPresets{#1}} -\newcommand{\ytComboBtnPresets}[1]{\def\yt@ComboBtnPresets{#1}} -\let\yt@ComboListPresets\@empty -\let\yt@ComboBtnPresets\@empty -\newcommand{\ytPlayList}{\begingroup\@makeother\_\@makeother\' - \ytPlayList@i} -\def\ytPlayList@i#1#2{\gdef\yt@pl@def{#1}\xdef\yt@pl@pl{#2}\endgroup} -\newcommand{\declarePlayList}{\bgroup - \@makeother\_\@makeother\- - \yt@declarePlayList} -\def\yt@declarePlayList#1#2{% - \gdef#1{#2}\egroup} -\newcommand{\ytIdTitle}[2]{[(#2)(#1)]} -\newcount\ytListCnt \ytListCnt=0 -\newcommand{\ytNewBaseName}[1][]{% - \def\yt@argi{#1}\ifx\yt@argi\@empty\global\advance\ytListCnt1\relax - \gdef\yt@BaseName{\yt@CurrRMAName\the\ytListCnt}\else - \gdef\yt@BaseName{\yt@CurrRMAName#1}\fi -} -\newcommand{\ytResetBaseName}{\gdef\yt@BaseName{\yt@CurrRMAName}} -\ytResetBaseName -\newcommand{\ytComboList}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \comboBox[\DV{\yt@pl@def}\V{\yt@pl@def} - \presets{\yt@ComboListPresets}#1]{ytSelect\yt@BaseName} - {#2}{#3}{\yt@pl@pl}% -} -\newcommand{\ytComboBtn}[3][]{% - \expandafter\oyt@RMA\ytCurrRMAName\@nil% - \pushButton[\CA{\ytStrPLAY}\presets{\yt@ComboBtnPresets}#1 - \A{\JS{var f=this.getField("ytSelect\yt@BaseName");\r - aebStartPlayer(\yt@rm,f.value,!event.shift); - }}]{ytSelectBtn\yt@BaseName}{#2}{#3}% -} -\newcommand{\ytPopupMenuData}[1]{{\toks0={// yt4pdf: Begin popup menu data^^J}% - \@tfor\yt@menu:=#1\do{% - \toks2=\expandafter{\yt@menu}% - \edef\@tmp@exp{\the\toks0\the\toks2^^J}% - \toks0=\expandafter{\@tmp@exp}% - }\xdef\ytPopupData{\the\toks0// End of popup menu data}% -}} -\def\ytPopupData{// No popup menu data defined}% -\newcommand{\puIdTitle}[2]{\item{title={#1},return={[\itemindex,'#2']}}} -\newcommand{\ytStrPLAY}{PLAY} -\newcommand{\ytStrREPLAY}{REPLAY} -\newcommand{\ytStrPAUSE}{PAUSE} -\newcommand{\ytStrBuffering}{Buffering...} -\newcommand{\ytStrStopLoading}{Stop Loading} -\newcommand{\ytStrMUTE}{MUTE} -\newcommand{\ytStrUNMUTE}{UNMUTE} -\newcommand{\ytStrREWIND}{REWIND} -\newcommand{\ytStrLoadVideo}{Load Video} -\newcommand{\ytStrWatchOnWeb}{Watch on YouTube} -\newcommand{\ytRespQues}{Enter the YouTube Video ID} -\newcommand{\ytRespTitle}{Load a Video} -\newcommand{\ytRespLabel}{ID:} -\newcommand{\ytStrErrorVideoNotFound}{Error: Video not found} -\newcommand{\ytStrErrorNoEmbed}{Error: This video does not allow - embedded playback \r\r Would you like to view this video - on the web?} -\newcommand{\ytStrConnecTimedOut}{Connection timed out, try again.} -\begin{insDLJS*}[ytPlayToggle]{yt} -\begin{newsegment}{yt4PDF: YouTube for PDF JavaScript} -/* - Document-level script for YouTube player - Document-level script for the PDFtube embedded YouTube player - *************************************************************** - Functions to be called by buttons or links on the PDF - in each case, "rm" is the RichMedia annot containing the player - All these are optional and can be renamed or edited as required - *********************************************************** -*/ -// toggle play/pause (button labels updated by event functions) -function ytPlayToggle(rm) { - var ps = rm.callAS("getPlayerState"); - rm.callAS((ps == 1)? "pauseVideo" : "playVideo"); -} -// toggle mute (have to update button labels ourselves) -function ytMuteToggle(rm) { - var im = rm.callAS("isMuted"); - if (im) { - event.target.buttonSetCaption("\ytStrMUTE"); - rm.callAS("unMute"); - } else { - event.target.buttonSetCaption("\ytStrUNMUTE"); - rm.callAS("mute"); - } -} -// Ask the user for the ID number of a new video, and play it -function ytSelect(rm,vID) { - var rsp = app.response({ - cQuestion: "\ytRespQues", - cTitle: "\ytRespTitle", - cDefault: vID, - cLabel: "\ytRespLabel"}); - if (rsp !=null && rsp != "") - aebStartPlayer(rm,rsp,true); // dps -} -// open the video's YouTube page in the web browser -function ytOpenWeb(rm) { - var link = rm.callAS("getVideoUrl"); - if (link != null) { - app.launchURL(link,true); - rm.activated = false; - } -} -// rewind (seek to zero) -function ytRewind(rm) { rm.callAS("seekTo",0); } -/* - ************************************************************ - Functions called by the player itself, in response to events - as the events are "external", the annot is not the target. - These functions must exist and match the names in the SWF. - *********************************************************** -*/ -function ytPlayerReady() { - - // this is the place to load your default video - for example... - console.println(" Player loaded and ready"); - // this.getAnnotsRichMedia(this.pageNum)[0].callAS("loadVideoById", - // "eNzrn8-JFSE",0); - aebStartPlayer.isPlayerReady=true; // dps -} -function ytStateChange(st) { - // Possible values are unstarted (-1), ended (0), playing (1), - // paused (2), buffering (3), video cued (5) - var lbl = ""; - console.println(" State changed to " + st); - if (st == 0) lbl = "\ytStrREPLAY"; - else if (st == 1) lbl = "\ytStrPAUSE"; - else if (st == 3) lbl = "\ytStrBuffering"; - else if (st == 2 || st == 5) lbl = "\ytStrPLAY"; - if (lbl) this.getField("playToggle").buttonSetCaption(lbl); -} -function ytPlaybackQualityChange(str) { - // Possible values are "small", "medium", "large" and "hd720" - console.println(" Quality changed to " + str); -} -function ytProgress(q) { - // q has four properties that you can use to update form fields, - // such as... - //this.getField("currentTime").value = q.CurrentTime; - //this.getField("Duration").value = q.Duration; - //this.getField("BytesLoaded").value = q.BytesLoaded; - //this.getField("BytesTotal").value = q.BytesTotal; -} -function ytError(err) { - // Video cannot be played - console.println(" ERROR code " + err + " received"); - if (err == 100) - app.alert("\ytStrErrorVideoNotFound", 0, 0, "YouTube"); - else { - var resp=app.alert("\ytStrErrorNoEmbed", 1, 3, "YouTube"); - if (resp==4) { - aebCancelWait(false); - ytOpenWeb(aebStartPlayer.annot); - } - } -} -/* - We start the player if the annot is activated, if not, - we set annot.activated=true, and wait for the widget to say it - is ready. When ready, ytPlayerReady() sets - aebStartPlayer.isPlayerReady=true -*/ -function aebStartPlayer(rm,Id,bPlay) { - aebStartPlayer.annot=rm; - if (aebStartPlayer.annot.activated) - aebStartPlayer.annot.callAS(% -(bPlay)?"loadVideoById":"cueVideoById",Id,0); - else { - aebCancelWait(false); - aebStartPlayer.annot.activated=true; - aebStartPlayer.isPlayerReady=false; - aebStartPlayer.twait=app.setInterval(% -'aebWait4Ready(\"'+Id+'\",'+bPlay+');',250); - aebStartPlayer.to=app.setTimeOut("aebCancelWait(true)", 10000); - } -} -aebStartPlayer.isPlayerReady=false; -aebStartPlayer.twait=null; -aebStartPlayer.to=null; -/* - If the player is ready, we start the video, and clear - the setInterval, otherwise, we wait. -*/ -function aebWait4Ready(Id,bPlay) { - if (aebStartPlayer.isPlayerReady) { - aebCancelWait(false); - aebStartPlayer.annot.callAS(% -(bPlay)?"loadVideoById":"cueVideoById",Id,0); - } -} -function aebCancelWait(bNotify) { - var twait=aebStartPlayer.twait; - if (aebStartPlayer.to!=null) - try { app.clearTimeOut(aebStartPlayer.to); } catch(e) {}; - aebStartPlayer.to=null; - if (aebStartPlayer.twait!=null) - try { app.clearInterval(aebStartPlayer.twait); } catch(e) {} - aebStartPlayer.twait=null; - if ( bNotify && twait!=null ) app.alert("\ytStrConnecTimedOut"); -} -\end{newsegment} -\begin{newsegment}{Popup Menu Data and JS} -\ytPopupData -var aChoice; -function ytProcessMenu(aMenu) { - var cChoice = \popUpMenu(aMenu); - if ( cChoice != null ) { - aChoice=eval(cChoice); - if (aChoice[1]=="") return null; - var thisChoice=aChoice[0]; - if (ytProcessMenu.nChoice==undefined) { - ytProcessMenu.nChoice=thisChoice; - eval("aMenu"+ytProcessMenu.nChoice).bMarked=true; - } else { - eval("aMenu"+ytProcessMenu.nChoice).bMarked=false; - var oldnChoice=ytProcessMenu.nChoice; - ytProcessMenu.nChoice=thisChoice; - eval("aMenu"+ytProcessMenu.nChoice).bMarked=(oldnChoice==ytProcessMenu.nChoice)?false:true; - } - return aChoice; - } else return null; -} -function ytPopupMenu(rmaName,ytmenu) { - var aChoice=ytProcessMenu(ytmenu); - var rm=this.getAnnotRichMedia(this.pageNum,rmaName); - if (aChoice!=null) { - if (ytProcessMenu.lastDescrip==undefined) { - aebStartPlayer(rm,aChoice[1],!event.shift); - } else { - if (ytProcessMenu.lastDescrip!=aChoice[1]) { - aebStartPlayer(rm,aChoice[1],!event.shift); - } - } - ytProcessMenu.lastDescrip=aChoice[1]; - } -} -\end{newsegment} -\end{insDLJS*} -\endinput -%% -%% End of file `yt4pdf.sty'. -- cgit v1.2.3