PHP module for reading and writing the global ProPresenter
CCLIfile (raw protobuf, no extension) that controls copyright display settings.
use ProPresenter\Parser\CCLIFileReader;
use ProPresenter\Parser\CCLIFileWriter;
$library = CCLIFileReader::read('/path/to/CCLI');
$library->isCCLIDisplayEnabled(); // bool
$library->getCCLILicense(); // string
$library->getDisplayType(); // int enum value
$library->getTemplate(); // ?\Rv\Data\Template\Slide
$library->setCCLILicense('1234567');
CCLIFileWriter::write($library, '/path/to/CCLI');The CCLI file is the protobuf-serialised
CCLIDocument:
| Field | Type | Description |
|---|---|---|
application_info |
ApplicationInfo |
ProPresenter writer metadata |
enable_ccli_display |
bool | Whether copyright info is shown |
ccli_license |
string | CCLI license number |
display_type |
CCLIDocument.DisplayType |
First, last, first+last, or all slides |
template |
Template.Slide |
Text/template styling for display |
use ProPresenter\Parser\CCLIFileReader;
$library = CCLIFileReader::read('/Users/me/.../CCLI');Throws InvalidArgumentException for missing files and RuntimeException for
empty / unreadable files.
Top-level wrapper around Rv\Data\CCLIDocument. This is a single-document
configuration file; count() returns 1 when read successfully.
$library->count();
$library->isCCLIDisplayEnabled();
$library->setCCLIDisplayEnabled(true);
$library->getCCLILicense();
$library->setCCLILicense('1234567');
$library->getDisplayType();
$library->setDisplayType(3);
$library->getTemplate();
$library->setTemplate($slideOrNull);
$library->getDocument(); // \Rv\Data\CCLIDocumentphp bin/parse-ccli.php /path/to/CCLIOutput:
CCLI (1):
[1] enabled=yes :: license=(empty) :: display_type=0 :: template=yes
| File | Purpose |
|---|---|
src/CCLILibrary.php |
Document-level wrapper |
src/CCLIFileReader.php |
Reads the CCLI file |
src/CCLIFileWriter.php |
Writes the CCLI file |
bin/parse-ccli.php |
CLI tool |
proto/ccli.proto |
Protobuf schema |
generated/Rv/Data/CCLIDocument.php |
Generated message class |
The wrapper preserves template data and application metadata by mutating the generated protobuf in place. It does not inspect or render the slide template.