mirror of
https://github.com/ElvishArtisan/rivendell.git
synced 2026-01-15 17:11:33 +01:00
Merge branch 'master' into RDImport
Conflicts: ChangeLog
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -124,6 +124,7 @@ utils/rdclilogedit/rdclilogedit
|
||||
utils/rdcleandirs/rdcleandirs
|
||||
utils/rdsoftkeys/rdsoftkeys
|
||||
utils/rddbcheck/rddbcheck
|
||||
utils/rddbconfig/rddbconfig
|
||||
utils/rdalsaconfig/rdalsaconfig
|
||||
utils/rdpopup/rdpopup
|
||||
utils/rddbmgr/rddbmgr
|
||||
|
||||
1
AUTHORS
1
AUTHORS
@@ -28,6 +28,7 @@ Fred Gleason <fredg@paravelsystems.com>
|
||||
|
||||
Patrick Linstruth <patrick@deltecent.com>
|
||||
General Bugfixes
|
||||
rddbconfig(8) Utility
|
||||
TuneIn RLM
|
||||
|
||||
Dan Mills <dmills@spamblock.demon.co.uk>
|
||||
|
||||
49
INSTALL
49
INSTALL
@@ -30,7 +30,7 @@ LibSndFile
|
||||
An audio file support library, written by Erik de Castro Lopo. Included with
|
||||
most distros, or you can find it at http://www.mega-nerd.com/libsndfile/.
|
||||
|
||||
mySQL Database Server
|
||||
MySQL/MariaDB Database Server
|
||||
Included in most Linux distributions. See http://www.mysql.com/.
|
||||
|
||||
PAM Pluggable Authentication Modules
|
||||
@@ -55,6 +55,9 @@ SoundTouch Audio Processing Library
|
||||
A library for altering the pitch and/or tempo of digital audio data.
|
||||
Available at http://www.surina.net/soundtouch/.
|
||||
|
||||
Systemd System and Service Manager
|
||||
Most modern Linux distros include this.
|
||||
|
||||
X11 Window System
|
||||
Virtually all Linux distros should include this.
|
||||
|
||||
@@ -83,10 +86,6 @@ Free Lossless Audio Codec (FLAC), v1.2.x or greater
|
||||
A "lossless" audio encoding library. Included with most distros, or
|
||||
available from: http://flac.sourceforge.net/.
|
||||
|
||||
GPIO Driver
|
||||
A kernel driver for the line of data-acquisition boards from
|
||||
MeasurementComputing. See http://www.rivendellaudio.org/.
|
||||
|
||||
FAAD2 / mp4v2 - AAC/MP4 Decoding Libraries. Needed for MP4 file importation.
|
||||
Available at http://www.audiocoding.com/faad2.html and
|
||||
https://code.google.com/p/mp4v2/ respectively.
|
||||
@@ -208,16 +207,32 @@ This directory should owned, readable, writable and searchable by the user
|
||||
and group specified in the 'AudioOwner=' and 'AudioGroup=' entires in
|
||||
'/etc/rd.conf' and readable and searchable by Others (mode 0775).
|
||||
|
||||
Finally, it's time to start things up. Run 'rdadmin' from a shell
|
||||
prompt. For the first time startup, RDAdmin will prompt for a login
|
||||
name/password on the mySQL server so that it can create the Rivendell
|
||||
database. To log into RDAdmin for the first time, enter a User Name of
|
||||
'admin' with no password.
|
||||
Next, create an empty database on the MySQL/MariaDb server, as well as a
|
||||
DB user to access it. This user should have the following privileges:
|
||||
|
||||
Much of the work in Rivendell gets done by three daemon processes,
|
||||
named 'caed', 'ripcd' and 'rdcatchd'. These daemons *must* be running
|
||||
before attempting to start any of the Rivendell applications. The
|
||||
order in which they are started is important, and should be the same
|
||||
as the order in which they are listed above. For convienence, a Sys-V
|
||||
style init script called 'rivendell' that can start, stop and restart
|
||||
the daemons properly is installed in '/etc/init.d/'.
|
||||
Select
|
||||
Insert
|
||||
Update
|
||||
Delete
|
||||
Create
|
||||
Drop
|
||||
References
|
||||
Index
|
||||
Alter
|
||||
Create Temporary Table
|
||||
Lock Tables
|
||||
|
||||
In the '[mySQL]' section of the '/etc/rd.conf' file, set the 'Database=',
|
||||
'Loginname=' and 'Password=' parameters to the DB name, user and password
|
||||
that you created. Then, create an initial Rivendell database by doing:
|
||||
|
||||
rddbmgr --create
|
||||
|
||||
If all goes well, this command should return with no output.
|
||||
|
||||
Finally, start up the Rivendell service by doing (as root):
|
||||
|
||||
systemctl start rivendell
|
||||
|
||||
You should now be able to run the various Rivendell components from the
|
||||
Applications menu.
|
||||
|
||||
9
README
9
README
@@ -1,5 +1,10 @@
|
||||
This is the README file for the Rivendell package.
|
||||
|
||||
WARNING: This is a BETA TEST version of Rivendell. As such, it is virtually
|
||||
guaranteed to contain bugs, possibly severe ones that could
|
||||
cause LOSS OF DATA. It is intended for testing purposes, and
|
||||
should not be used in 'production' siuations.
|
||||
|
||||
This software comes with ABSOLUTELY NO WARRANTY. See the file COPYING for
|
||||
details.
|
||||
|
||||
@@ -8,8 +13,8 @@ to be a robust, functionally complete digital audio system for use in
|
||||
professional radio broadcast environments.
|
||||
|
||||
See the file INSTALL for installation instructions. If you are upgrading from
|
||||
a 1.x version of Rivendell, also see the file 'UPGRADING' for important notes
|
||||
and pointers.
|
||||
a 1.x or 2.x version of Rivendell, also see the file 'UPGRADING'
|
||||
for important notes and pointers.
|
||||
|
||||
|
||||
OVERVIEW
|
||||
|
||||
36
UPGRADING
36
UPGRADING
@@ -1,25 +1,25 @@
|
||||
IMPORTANT NOTE: BE SURE TO SEE THE SECTION ON 'PASSWORD STORAGE' BELOW,
|
||||
OTHERWISE YOU MAY BE LOCKED OUT OF THE SYSTEM AFTER THE UPDATE!
|
||||
|
||||
This file provides some notes to those performing an upgrade from a v1.x
|
||||
version to Rivendell. It is an attempt to provide some pointers about things
|
||||
which have changed, but is in no way a substitute for reading the 'INSTALL'
|
||||
file and other documentation!
|
||||
This file provides some notes to those performing an upgrade from a v1.x or
|
||||
v2.x version of Rivendell. It is an attempt to provide some pointers about
|
||||
things which have changed, but is in no way a substitute for reading the
|
||||
'INSTALL' file and other documentation!
|
||||
|
||||
1) DEPENDENCIES
|
||||
The set of external packages required to build and run Rivendell has changed
|
||||
significantly from that required for a 1.x system. See 'INSTALL' for a full
|
||||
list.
|
||||
significantly from that required for a 1.x or 2.x system. See 'INSTALL' for
|
||||
a full list.
|
||||
|
||||
2) MPEG SUPPORT
|
||||
This version of Rivendell inaugurates optional support for MPEG Layer 2
|
||||
This version of Rivendell includes optional support for MPEG Layer 2
|
||||
encoding within the core Rivendell audio library for all classes of audio
|
||||
device (JACK and ALSA as well as AudioScience HPI). To make use of this
|
||||
feature, it will be necessary to have the appropriate MPEG libraries
|
||||
properly installed at both build- and run-time. See 'INSTALL' for the
|
||||
specifics.
|
||||
|
||||
3) FILE OWNERSHIP AND PERMISSIONS
|
||||
3) FILE OWNERSHIP AND PERMISSIONS (v1.x only)
|
||||
Recommended file ownership and permissions for the '/var/snd' directory and
|
||||
its contents have changed. These items should be owned by system user and
|
||||
group accounts created specifically for Rivendell; no 'real' user on the
|
||||
@@ -41,16 +41,16 @@ that will configure the target web services directory (set by the
|
||||
automatically as part of the build process; it can be found in
|
||||
'conf/rd-bin.conf' after the build is complete.
|
||||
|
||||
5) PASSWORD STORAGE
|
||||
The method of storing passwords in the database has changed in Rivendell 2.x,
|
||||
requiring that all non-null passwords be reset after performing the upgrade.
|
||||
This means that it is important that the account used to access RDAdmin be set
|
||||
to use a null (blank) password *before* applying the update, otherwise you
|
||||
will not be able to access RDAdmin afterwards! Once the update has been
|
||||
applied, passwords should be re-entered for all user accounts in RDAdmin
|
||||
(including administrative ones) in the usual manner.
|
||||
5) PASSWORD STORAGE (v1.x only)
|
||||
The method of storing passwords in the database has changed in Rivendell 2.x
|
||||
and 3.x, requiring that all non-null passwords be reset after performing the
|
||||
upgrade. This means that it is important that the account used to access
|
||||
RDAdmin be set to use a null (blank) password *before* applying the update,
|
||||
otherwise you will not be able to access RDAdmin afterwards! Once the update
|
||||
has been applied, passwords should be re-entered for all user accounts in
|
||||
RDAdmin (including administrative ones) in the usual manner.
|
||||
|
||||
6) AUDIO SAMPLE RATE
|
||||
6) AUDIO SAMPLE RATE (v1.x only)
|
||||
The sample rate to be used for the Rivendell audio library is now a single
|
||||
system-wide setting (found in RDAdmin->SystemSettings); it is no longer
|
||||
possible to set sample rates individually per module/workstation. When
|
||||
@@ -67,7 +67,7 @@ the target file, respectively.
|
||||
|
||||
The 'smb:' protocol is no longer supported.
|
||||
|
||||
8) RLM API CHANGES
|
||||
8) RLM API CHANGES (V1.x only)
|
||||
The parameters passed to the RLMPadDataSent() callback in RLMs have changed;
|
||||
private plug-ins written for RD 1.x will need to be modified to work with the
|
||||
new API. (All plug-ins supplied with the Rivendell sources have already been
|
||||
|
||||
@@ -40,7 +40,9 @@ dist_librivwebcapi_la_SOURCES = rd_addcart.c rd_addcart.h \
|
||||
rd_import.c rd_import.h \
|
||||
rd_listcartschedcodes.c rd_listcartschedcodes.h\
|
||||
rd_listcart.c rd_listcart.h \
|
||||
rd_listcartcuts.c rd_listcartcuts.h \
|
||||
rd_listcarts.c rd_listcarts.h \
|
||||
rd_listcartscuts.c rd_listcartscuts.h \
|
||||
rd_listcut.c rd_listcut.h \
|
||||
rd_listcuts.c rd_listcuts.h \
|
||||
rd_listgroups.c rd_listgroups.h \
|
||||
@@ -81,8 +83,10 @@ include_HEADERS = rd_addcart.h\
|
||||
rd_group.h\
|
||||
rd_import.h\
|
||||
rd_listcart.h\
|
||||
rd_listcartcuts.h\
|
||||
rd_listcartschedcodes.h\
|
||||
rd_listcarts.h\
|
||||
rd_listcartscuts.h\
|
||||
rd_listcut.h\
|
||||
rd_listcuts.h\
|
||||
rd_listgroup.h\
|
||||
|
||||
@@ -16,6 +16,8 @@
|
||||
|
||||
#include <time.h>
|
||||
|
||||
#include <rivwebcapi/rd_cut.h>
|
||||
|
||||
enum CART_TYPE {TYPE_ALL,TYPE_AUDIO,TYPE_MACRO};
|
||||
|
||||
struct rd_cart {
|
||||
@@ -39,7 +41,6 @@ struct rd_cart {
|
||||
int cart_length_deviation;
|
||||
int cart_average_segue_length;
|
||||
int cart_average_hook_length;
|
||||
unsigned cart_cut_quantity;
|
||||
unsigned cart_last_cut_played;
|
||||
unsigned cart_validity;
|
||||
int cart_enforce_length;
|
||||
@@ -47,6 +48,8 @@ struct rd_cart {
|
||||
char cart_owner[257];
|
||||
char cart_notes[4096];
|
||||
struct tm cart_metadata_datetime;
|
||||
unsigned cart_cut_quantity;
|
||||
struct rd_cut **cart_cuts;
|
||||
};
|
||||
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#include <time.h>
|
||||
|
||||
struct rd_cut {
|
||||
char cut_name[11];
|
||||
char cut_name[41];
|
||||
unsigned cut_cart_number;
|
||||
unsigned cut_cut_number;
|
||||
int cut_evergreen;
|
||||
|
||||
482
apis/rivwebcapi/rivwebcapi/rd_listcartcuts.c
Normal file
482
apis/rivwebcapi/rivwebcapi/rd_listcartcuts.c
Normal file
@@ -0,0 +1,482 @@
|
||||
/* rd_listcartcuts.c
|
||||
*
|
||||
* Implementation of the ListCartCuts Rivendell Access Library
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
#include <expat.h>
|
||||
|
||||
#include "rd_common.h"
|
||||
#include "rd_getuseragent.h"
|
||||
#include "rd_listcart.h"
|
||||
|
||||
struct xml_data {
|
||||
char elem_name[256];
|
||||
char strbuf[1024];
|
||||
struct rd_cart *carts;
|
||||
int cut_ptr;
|
||||
};
|
||||
|
||||
|
||||
static void XMLCALL __ListCartCutsElementStart(void *data, const char *el,
|
||||
const char **attr)
|
||||
{
|
||||
unsigned i;
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
if(strcasecmp(el,"cart")==0) { // Allocate a new cart entry
|
||||
xml_data->carts=realloc(xml_data->carts, sizeof(struct rd_cart));
|
||||
memset(xml_data->carts,0,sizeof(struct rd_cart));
|
||||
xml_data->cut_ptr=-1;
|
||||
}
|
||||
if(strcasecmp(el,"cut")==0) { // Allocate a new cut entry
|
||||
(xml_data->cut_ptr)++;
|
||||
xml_data->carts->cart_cuts=realloc(xml_data->carts->cart_cuts,sizeof(struct rd_cut)*((xml_data->cut_ptr)+1));
|
||||
}
|
||||
strlcpy(xml_data->elem_name,el,256);
|
||||
memset(xml_data->strbuf,0,1024);
|
||||
}
|
||||
|
||||
|
||||
static void XMLCALL __ListCartCutsElementData(void *data,const XML_Char *s,
|
||||
int len)
|
||||
{
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
|
||||
memcpy(xml_data->strbuf+strlen(xml_data->strbuf),s,len);
|
||||
}
|
||||
|
||||
|
||||
static void XMLCALL __ListCartCutsElementEnd(void *data, const char *el)
|
||||
{
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
struct rd_cart *carts=xml_data->carts;
|
||||
char hold_datetime[27];
|
||||
|
||||
if(xml_data->cut_ptr<0) {
|
||||
/*
|
||||
* Cart Attributes
|
||||
*/
|
||||
if(strcasecmp(el,"number")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_number);
|
||||
}
|
||||
if(strcasecmp(el,"type")==0) {
|
||||
if(strcasecmp(xml_data->strbuf,"audio")==0) {
|
||||
carts->cart_type=TYPE_AUDIO;
|
||||
}
|
||||
else {
|
||||
if(strcasecmp(xml_data->strbuf,"macro")==0) {
|
||||
carts->cart_type=TYPE_MACRO;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* This is ALL type */
|
||||
carts->cart_type=TYPE_ALL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(strcasecmp(el,"groupName")==0) {
|
||||
strlcpy(carts->cart_grp_name,xml_data->strbuf,41);
|
||||
}
|
||||
if(strcasecmp(el,"title")==0) {
|
||||
strlcpy(carts->cart_title,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"artist")==0) {
|
||||
strlcpy(carts->cart_artist,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"album")==0) {
|
||||
strlcpy(carts->cart_album,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"year")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&carts->cart_year);
|
||||
}
|
||||
if(strcasecmp(el,"label")==0) {
|
||||
strlcpy(carts->cart_label,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"client")==0) {
|
||||
strlcpy(carts->cart_client,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"agency")==0) {
|
||||
strlcpy(carts->cart_agency,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"publisher")==0) {
|
||||
strlcpy(carts->cart_publisher,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"composer")==0) {
|
||||
strlcpy(carts->cart_composer,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"conductor")==0) {
|
||||
strlcpy(carts->cart_conductor,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"userDefined")==0) {
|
||||
strlcpy(carts->cart_user_defined,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"usageCode")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&carts->cart_usage_code);
|
||||
}
|
||||
if(strcasecmp(el,"forcedLength")==0) {
|
||||
carts->cart_forced_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageLength")==0) {
|
||||
carts->cart_average_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"lengthDeviation")==0) {
|
||||
carts->cart_length_deviation=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageSegueLength")==0) {
|
||||
carts->cart_average_segue_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageHookLength")==0) {
|
||||
carts->cart_average_hook_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"cutQuantity")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_cut_quantity);
|
||||
}
|
||||
if(strcasecmp(el,"lastCutPlayed")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_last_cut_played);
|
||||
}
|
||||
if(strcasecmp(el,"validity")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_validity);
|
||||
}
|
||||
if(strcasecmp(el,"enforceLength")==0) {
|
||||
carts->cart_enforce_length=RD_ReadBool(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"asyncronous")==0) {
|
||||
carts->cart_asyncronous=RD_ReadBool(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"owner")==0) {
|
||||
strlcpy(carts->cart_owner,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"metadataDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
carts->cart_metadata_datetime = RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* Cut Attributes
|
||||
*/
|
||||
struct rd_cut *cut=(struct rd_cut *)(carts->cart_cuts)+xml_data->cut_ptr;
|
||||
|
||||
if(strcasecmp(el,"cutName")==0) {
|
||||
strlcpy(cut->cut_name,xml_data->strbuf,40);
|
||||
}
|
||||
if(strcasecmp(el,"cartNumber")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_cart_number));
|
||||
}
|
||||
if(strcasecmp(el,"cutNumber")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_cut_number));
|
||||
}
|
||||
if(strcasecmp(el,"evergreen")==0) {
|
||||
cut->cut_evergreen=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"description")==0) {
|
||||
strlcpy(cut->cut_description,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"outcue")==0) {
|
||||
strlcpy(cut->cut_outcue,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"isrc")==0) {
|
||||
strlcpy(cut->cut_isrc,xml_data->strbuf,48);
|
||||
}
|
||||
if(strcasecmp(el,"isci")==0) {
|
||||
strlcpy(cut->cut_isci,xml_data->strbuf,128);
|
||||
}
|
||||
if(strcasecmp(el,"length")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_length));
|
||||
}
|
||||
if(strcasecmp(el,"originDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_origin_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"startDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_start_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"endDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_end_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"sun")==0) {
|
||||
cut->cut_sun=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"mon")==0) {
|
||||
cut->cut_mon=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"tue")==0) {
|
||||
cut->cut_tue=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"wed")==0) {
|
||||
cut->cut_wed=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"thu")==0) {
|
||||
cut->cut_thu=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"fri")==0) {
|
||||
cut->cut_fri=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"sat")==0) {
|
||||
cut->cut_sat=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"startDaypart")==0) {
|
||||
strlcpy(cut->cut_start_daypart,xml_data->strbuf,14);
|
||||
}
|
||||
if(strcasecmp(el,"endDaypart")==0) {
|
||||
strlcpy(cut->cut_end_daypart,xml_data->strbuf,14);
|
||||
}
|
||||
if(strcasecmp(el,"originName")==0) {
|
||||
strlcpy(cut->cut_origin_name,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"originLoginName")==0) {
|
||||
strlcpy(cut->cut_origin_login_name,xml_data->strbuf,764);
|
||||
}
|
||||
if(strcasecmp(el,"sourceHostname")==0) {
|
||||
strlcpy(cut->cut_source_hostname,xml_data->strbuf,764);
|
||||
}
|
||||
if(strcasecmp(el,"weight")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_weight));
|
||||
}
|
||||
if(strcasecmp(el,"lastPlayDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_last_play_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"playCounter")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_play_counter));
|
||||
}
|
||||
if(strcasecmp(el,"codingFormat")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_coding_format));
|
||||
}
|
||||
if(strcasecmp(el,"sampleRate")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_sample_rate));
|
||||
}
|
||||
if(strcasecmp(el,"bitRate")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_bit_rate));
|
||||
}
|
||||
if(strcasecmp(el,"channels")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_channels));
|
||||
}
|
||||
if(strcasecmp(el,"playGain")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_play_gain));
|
||||
}
|
||||
if(strcasecmp(el,"startPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"endPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"fadeupPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_fadeup_point));
|
||||
}
|
||||
if(strcasecmp(el,"fadedownPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_fadedown_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueGain")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_gain));
|
||||
}
|
||||
if(strcasecmp(el,"hookStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_hook_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"hookEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_hook_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"talkStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_talk_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"talkEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_talk_end_point));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
size_t __ListCartCutsCallback(void *ptr, size_t size, size_t nmemb, void *userdata)
|
||||
{
|
||||
XML_Parser p=(XML_Parser)userdata;
|
||||
|
||||
XML_Parse(p,ptr,size*nmemb,0);
|
||||
|
||||
return size*nmemb;
|
||||
}
|
||||
|
||||
|
||||
int RD_ListCartCuts(struct rd_cart *carts[],
|
||||
const char hostname[],
|
||||
const char username[],
|
||||
const char passwd[],
|
||||
const char ticket[],
|
||||
const unsigned cartnumber,
|
||||
const char user_agent[],
|
||||
unsigned *numrecs)
|
||||
{
|
||||
char url[1500];
|
||||
CURL *curl=NULL;
|
||||
XML_Parser parser;
|
||||
struct xml_data xml_data;
|
||||
long response_code;
|
||||
char errbuf[CURL_ERROR_SIZE];
|
||||
CURLcode res;
|
||||
char user_agent_string[255];
|
||||
char cart_buffer[7];
|
||||
struct curl_httppost *first=NULL;
|
||||
struct curl_httppost *last=NULL;
|
||||
|
||||
/* Set number of recs so if fail already set */
|
||||
*numrecs = 0;
|
||||
|
||||
if((curl=curl_easy_init())==NULL) {
|
||||
curl_easy_cleanup(curl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup the CURL call
|
||||
*/
|
||||
memset(&xml_data,0,sizeof(xml_data));
|
||||
parser=XML_ParserCreate(NULL);
|
||||
XML_SetUserData(parser,&xml_data);
|
||||
XML_SetElementHandler(parser,__ListCartCutsElementStart,
|
||||
__ListCartCutsElementEnd);
|
||||
XML_SetCharacterDataHandler(parser,__ListCartCutsElementData);
|
||||
snprintf(url,1500,"http://%s/rd-bin/rdxport.cgi",hostname);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"COMMAND",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
"7",
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"LOGIN_NAME",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
username,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"PASSWORD",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
passwd,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"TICKET",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
ticket,
|
||||
CURLFORM_END);
|
||||
|
||||
snprintf(cart_buffer,7,"%u",cartnumber);
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"CART_NUMBER",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
cart_buffer,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"INCLUDE_CUTS",
|
||||
CURLFORM_PTRCONTENTS,
|
||||
"1",
|
||||
CURLFORM_END);
|
||||
|
||||
curl_easy_setopt(curl,CURLOPT_WRITEDATA,parser);
|
||||
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,__ListCartCutsCallback);
|
||||
curl_easy_setopt(curl,CURLOPT_URL,url);
|
||||
curl_easy_setopt(curl,CURLOPT_POST,1);
|
||||
curl_easy_setopt(curl,CURLOPT_HTTPPOST,first);
|
||||
curl_easy_setopt(curl,CURLOPT_NOPROGRESS,1);
|
||||
curl_easy_setopt(curl,CURLOPT_ERRORBUFFER,errbuf);
|
||||
|
||||
// Check if User Agent Present otherwise set to default
|
||||
if (strlen(user_agent)> 0){
|
||||
curl_easy_setopt(curl, CURLOPT_USERAGENT,user_agent);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(user_agent_string, RD_GetUserAgent());
|
||||
strcat(user_agent_string,VERSION);
|
||||
curl_easy_setopt(curl, CURLOPT_USERAGENT,user_agent_string);
|
||||
}
|
||||
|
||||
res = curl_easy_perform(curl);
|
||||
if(res != CURLE_OK) {
|
||||
#ifdef RIVC_DEBUG_OUT
|
||||
size_t len = strlen(errbuf);
|
||||
fprintf(stderr, "\nlibcurl error: (%d)", res);
|
||||
if (len)
|
||||
fprintf(stderr, "%s%s", errbuf,
|
||||
((errbuf[len-1] != '\n') ? "\n" : ""));
|
||||
else
|
||||
fprintf(stderr, "%s\n", curl_easy_strerror(res));
|
||||
#endif
|
||||
curl_easy_cleanup(curl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* The response OK - so figure out if we got what we wanted.. */
|
||||
|
||||
curl_easy_getinfo(curl,CURLINFO_RESPONSE_CODE,&response_code);
|
||||
curl_formfree(first);
|
||||
curl_easy_cleanup(curl);
|
||||
|
||||
if (response_code > 199 && response_code < 300) {
|
||||
*carts=xml_data.carts;
|
||||
*numrecs = 1;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
#ifdef RIVC_DEBUG_OUT
|
||||
fprintf(stderr," rd_listcart Call Returned Error: %s\n",xml_data.strbuf);
|
||||
#endif
|
||||
return (int)response_code;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct rd_cut *RD_ListCartCuts_GetCut(struct rd_cart *cart,int pos)
|
||||
{
|
||||
return (struct rd_cut *)(cart->cart_cuts)+pos;
|
||||
}
|
||||
|
||||
|
||||
void RD_ListCartCuts_Free(struct rd_cart *cart)
|
||||
{
|
||||
if(cart->cart_cuts!=NULL) {
|
||||
free(cart->cart_cuts);
|
||||
}
|
||||
free(cart);
|
||||
}
|
||||
45
apis/rivwebcapi/rivwebcapi/rd_listcartcuts.h
Normal file
45
apis/rivwebcapi/rivwebcapi/rd_listcartcuts.h
Normal file
@@ -0,0 +1,45 @@
|
||||
/* rd_listcartcuts.h
|
||||
*
|
||||
* Header for the ListCartCuts Rivendell Access Library
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef RD_LISTCARTCUTS_H
|
||||
#define RD_LISTCARTCUTS_H
|
||||
|
||||
#include <rivwebcapi/rd_common.h>
|
||||
|
||||
_MYRIVLIB_INIT_DECL
|
||||
|
||||
#include <rivwebcapi/rd_cart.h>
|
||||
|
||||
int RD_ListCartCuts(struct rd_cart *carts[],
|
||||
const char hostname[],
|
||||
const char username[],
|
||||
const char passwd[],
|
||||
const char ticket[],
|
||||
const unsigned cartnumber,
|
||||
const char user_agent[],
|
||||
unsigned *numrecs);
|
||||
struct rd_cut *RD_ListCartCuts_GetCut(struct rd_cart *cart,int pos);
|
||||
void RD_ListCartCuts_Free(struct rd_cart *cart);
|
||||
|
||||
_MYRIVLIB_FINI_DECL
|
||||
|
||||
|
||||
#endif // RD_LISTCARTCUTS_H
|
||||
509
apis/rivwebcapi/rivwebcapi/rd_listcartscuts.c
Normal file
509
apis/rivwebcapi/rivwebcapi/rd_listcartscuts.c
Normal file
@@ -0,0 +1,509 @@
|
||||
/* rd_listcartscuts.c
|
||||
*
|
||||
* ListCartsCuts Rivendell Access Library
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
#include <expat.h>
|
||||
|
||||
#include "rd_common.h"
|
||||
#include "rd_getuseragent.h"
|
||||
#include "rd_listcartscuts.h"
|
||||
|
||||
struct xml_data {
|
||||
char elem_name[256];
|
||||
char strbuf[1024];
|
||||
struct rd_cart *carts;
|
||||
int cart_ptr;
|
||||
int cut_ptr;
|
||||
};
|
||||
|
||||
|
||||
static void XMLCALL __ListCartsCutsElementStart(void *data, const char *el,
|
||||
const char **attr)
|
||||
{
|
||||
unsigned i;
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
if(strcasecmp(el,"cart")==0) { // Allocate a new cart entry
|
||||
(xml_data->cart_ptr)++;
|
||||
xml_data->carts=
|
||||
realloc(xml_data->carts,sizeof(struct rd_cart)*(xml_data->cart_ptr+1));
|
||||
memset(xml_data->carts+xml_data->cart_ptr,0,sizeof(struct rd_cart));
|
||||
xml_data->cut_ptr=-1;
|
||||
}
|
||||
if(strcasecmp(el,"cut")==0) { // Allocate a new cut entry
|
||||
(xml_data->cut_ptr)++;
|
||||
(xml_data->carts+xml_data->cart_ptr)->cart_cuts=realloc((xml_data->carts+xml_data->cart_ptr)->cart_cuts,sizeof(struct rd_cut)*((xml_data->cut_ptr)+1));
|
||||
}
|
||||
strlcpy(xml_data->elem_name,el,256);
|
||||
memset(xml_data->strbuf,0,1024);
|
||||
}
|
||||
|
||||
|
||||
static void XMLCALL __ListCartsCutsElementData(void *data,const XML_Char *s,
|
||||
int len)
|
||||
{
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
|
||||
memcpy(xml_data->strbuf+strlen(xml_data->strbuf),s,len);
|
||||
}
|
||||
|
||||
|
||||
static void XMLCALL __ListCartsCutsElementEnd(void *data, const char *el)
|
||||
{
|
||||
struct xml_data *xml_data=(struct xml_data *)data;
|
||||
struct rd_cart *carts=(xml_data->carts)+xml_data->cart_ptr;
|
||||
char hold_datetime[27];
|
||||
|
||||
if(xml_data->cut_ptr<0) {
|
||||
/*
|
||||
* Cart Attributes
|
||||
*/
|
||||
if(strcasecmp(el,"number")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_number);
|
||||
}
|
||||
if(strcasecmp(el,"type")==0) {
|
||||
if(strcasecmp(xml_data->strbuf,"audio")==0) {
|
||||
carts->cart_type=TYPE_AUDIO;
|
||||
}
|
||||
else {
|
||||
if(strcasecmp(xml_data->strbuf,"macro")==0) {
|
||||
carts->cart_type=TYPE_MACRO;
|
||||
}
|
||||
else
|
||||
{
|
||||
/* This is ALL type */
|
||||
carts->cart_type=TYPE_ALL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(strcasecmp(el,"groupName")==0) {
|
||||
strlcpy(carts->cart_grp_name,xml_data->strbuf,41);
|
||||
}
|
||||
if(strcasecmp(el,"title")==0) {
|
||||
strlcpy(carts->cart_title,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"artist")==0) {
|
||||
strlcpy(carts->cart_artist,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"album")==0) {
|
||||
strlcpy(carts->cart_album,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"year")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&carts->cart_year);
|
||||
}
|
||||
if(strcasecmp(el,"label")==0) {
|
||||
strlcpy(carts->cart_label,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"client")==0) {
|
||||
strlcpy(carts->cart_client,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"agency")==0) {
|
||||
strlcpy(carts->cart_agency,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"publisher")==0) {
|
||||
strlcpy(carts->cart_publisher,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"composer")==0) {
|
||||
strlcpy(carts->cart_composer,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"conductor")==0) {
|
||||
strlcpy(carts->cart_conductor,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"userDefined")==0) {
|
||||
strlcpy(carts->cart_user_defined,xml_data->strbuf,1021);
|
||||
}
|
||||
if(strcasecmp(el,"usageCode")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&carts->cart_usage_code);
|
||||
}
|
||||
if(strcasecmp(el,"forcedLength")==0) {
|
||||
carts->cart_forced_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageLength")==0) {
|
||||
carts->cart_average_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"lengthDeviation")==0) {
|
||||
carts->cart_length_deviation=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageSegueLength")==0) {
|
||||
carts->cart_average_segue_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"averageHookLength")==0) {
|
||||
carts->cart_average_hook_length=RD_Cnv_TString_to_msec(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"cutQuantity")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_cut_quantity);
|
||||
}
|
||||
if(strcasecmp(el,"lastCutPlayed")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_last_cut_played);
|
||||
}
|
||||
if(strcasecmp(el,"validity")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&carts->cart_validity);
|
||||
}
|
||||
if(strcasecmp(el,"enforceLength")==0) {
|
||||
carts->cart_enforce_length=RD_ReadBool(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"asyncronous")==0) {
|
||||
carts->cart_asyncronous=RD_ReadBool(xml_data->strbuf);
|
||||
}
|
||||
if(strcasecmp(el,"owner")==0) {
|
||||
strlcpy(carts->cart_owner,xml_data->strbuf,257);
|
||||
}
|
||||
if(strcasecmp(el,"metadataDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
carts->cart_metadata_datetime = RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
}
|
||||
else {
|
||||
/*
|
||||
* Cut Attributes
|
||||
*/
|
||||
struct rd_cut *cut=(struct rd_cut *)(carts->cart_cuts)+xml_data->cut_ptr;
|
||||
|
||||
if(strcasecmp(el,"cutName")==0) {
|
||||
strlcpy(cut->cut_name,xml_data->strbuf,40);
|
||||
}
|
||||
if(strcasecmp(el,"cartNumber")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_cart_number));
|
||||
}
|
||||
if(strcasecmp(el,"cutNumber")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_cut_number));
|
||||
}
|
||||
if(strcasecmp(el,"evergreen")==0) {
|
||||
cut->cut_evergreen=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"description")==0) {
|
||||
strlcpy(cut->cut_description,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"outcue")==0) {
|
||||
strlcpy(cut->cut_outcue,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"isrc")==0) {
|
||||
strlcpy(cut->cut_isrc,xml_data->strbuf,48);
|
||||
}
|
||||
if(strcasecmp(el,"isci")==0) {
|
||||
strlcpy(cut->cut_isci,xml_data->strbuf,128);
|
||||
}
|
||||
if(strcasecmp(el,"length")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_length));
|
||||
}
|
||||
if(strcasecmp(el,"originDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_origin_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"startDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_start_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"endDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_end_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"sun")==0) {
|
||||
cut->cut_sun=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"mon")==0) {
|
||||
cut->cut_mon=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"tue")==0) {
|
||||
cut->cut_tue=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"wed")==0) {
|
||||
cut->cut_wed=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"thu")==0) {
|
||||
cut->cut_thu=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"fri")==0) {
|
||||
cut->cut_fri=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"sat")==0) {
|
||||
cut->cut_sat=strcmp(xml_data->strbuf,"false");
|
||||
}
|
||||
if(strcasecmp(el,"startDaypart")==0) {
|
||||
strlcpy(cut->cut_start_daypart,xml_data->strbuf,14);
|
||||
}
|
||||
if(strcasecmp(el,"endDaypart")==0) {
|
||||
strlcpy(cut->cut_end_daypart,xml_data->strbuf,14);
|
||||
}
|
||||
if(strcasecmp(el,"originName")==0) {
|
||||
strlcpy(cut->cut_origin_name,xml_data->strbuf,256);
|
||||
}
|
||||
if(strcasecmp(el,"originLoginName")==0) {
|
||||
strlcpy(cut->cut_origin_login_name,xml_data->strbuf,764);
|
||||
}
|
||||
if(strcasecmp(el,"sourceHostname")==0) {
|
||||
strlcpy(cut->cut_source_hostname,xml_data->strbuf,764);
|
||||
}
|
||||
if(strcasecmp(el,"weight")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_weight));
|
||||
}
|
||||
if(strcasecmp(el,"lastPlayDatetime")==0) {
|
||||
strlcpy(hold_datetime,xml_data->strbuf,26);
|
||||
cut->cut_last_play_datetime=RD_Cnv_DTString_to_tm(hold_datetime);
|
||||
}
|
||||
if(strcasecmp(el,"playCounter")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_play_counter));
|
||||
}
|
||||
if(strcasecmp(el,"codingFormat")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_coding_format));
|
||||
}
|
||||
if(strcasecmp(el,"sampleRate")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_sample_rate));
|
||||
}
|
||||
if(strcasecmp(el,"bitRate")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_bit_rate));
|
||||
}
|
||||
if(strcasecmp(el,"channels")==0) {
|
||||
sscanf(xml_data->strbuf,"%u",&(cut->cut_channels));
|
||||
}
|
||||
if(strcasecmp(el,"playGain")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_play_gain));
|
||||
}
|
||||
if(strcasecmp(el,"startPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"endPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"fadeupPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_fadeup_point));
|
||||
}
|
||||
if(strcasecmp(el,"fadedownPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_fadedown_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"segueGain")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_segue_gain));
|
||||
}
|
||||
if(strcasecmp(el,"hookStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_hook_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"hookEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_hook_end_point));
|
||||
}
|
||||
if(strcasecmp(el,"talkStartPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_talk_start_point));
|
||||
}
|
||||
if(strcasecmp(el,"talkEndPoint")==0) {
|
||||
sscanf(xml_data->strbuf,"%d",&(cut->cut_talk_end_point));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
size_t __ListCartsCutsCallback(void *ptr, size_t size, size_t nmemb, void *userdata)
|
||||
{
|
||||
XML_Parser p=(XML_Parser)userdata;
|
||||
|
||||
XML_Parse(p,ptr,size*nmemb,0);
|
||||
|
||||
return size*nmemb;
|
||||
}
|
||||
|
||||
|
||||
int RD_ListCartsCuts(struct rd_cart *carts[],
|
||||
const char hostname[],
|
||||
const char username[],
|
||||
const char passwd[],
|
||||
const char ticket[],
|
||||
const char group_name[],
|
||||
const char filter[],
|
||||
const char type[],
|
||||
const char user_agent[],
|
||||
unsigned *numrecs)
|
||||
{
|
||||
char url[1500];
|
||||
CURL *curl=NULL;
|
||||
XML_Parser parser;
|
||||
struct xml_data xml_data;
|
||||
long response_code;
|
||||
char errbuf[CURL_ERROR_SIZE];
|
||||
CURLcode res;
|
||||
char user_agent_string[255];
|
||||
struct curl_httppost *first=NULL;
|
||||
struct curl_httppost *last=NULL;
|
||||
|
||||
/* Set number of recs so if fail already set */
|
||||
*numrecs = 0;
|
||||
|
||||
if((curl=curl_easy_init())==NULL) {
|
||||
curl_easy_cleanup(curl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/*
|
||||
* Setup the CURL call
|
||||
*/
|
||||
memset(&xml_data,0,sizeof(xml_data));
|
||||
xml_data.cart_ptr=-1;
|
||||
parser=XML_ParserCreate(NULL);
|
||||
XML_SetUserData(parser,&xml_data);
|
||||
XML_SetElementHandler(parser,__ListCartsCutsElementStart,
|
||||
__ListCartsCutsElementEnd);
|
||||
XML_SetCharacterDataHandler(parser,__ListCartsCutsElementData);
|
||||
snprintf(url,1500,"http://%s/rd-bin/rdxport.cgi",hostname);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"COMMAND",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
"6",
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"LOGIN_NAME",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
username,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"PASSWORD",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
passwd,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"TICKET",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
ticket,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"GROUP_NAME",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
group_name,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"FILTER",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
filter,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"TYPE",
|
||||
CURLFORM_COPYCONTENTS,
|
||||
type,
|
||||
CURLFORM_END);
|
||||
|
||||
curl_formadd(&first,
|
||||
&last,
|
||||
CURLFORM_PTRNAME,
|
||||
"INCLUDE_CUTS",
|
||||
CURLFORM_PTRCONTENTS,
|
||||
"1",
|
||||
CURLFORM_END);
|
||||
|
||||
// Check if User Agent Present otherwise set to default
|
||||
if (strlen(user_agent)> 0){
|
||||
curl_easy_setopt(curl, CURLOPT_USERAGENT,user_agent);
|
||||
}
|
||||
else
|
||||
{
|
||||
strcpy(user_agent_string, RD_GetUserAgent());
|
||||
strcat(user_agent_string,VERSION);
|
||||
curl_easy_setopt(curl, CURLOPT_USERAGENT,user_agent_string);
|
||||
}
|
||||
|
||||
curl_easy_setopt(curl,CURLOPT_WRITEDATA,parser);
|
||||
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,__ListCartsCutsCallback);
|
||||
curl_easy_setopt(curl,CURLOPT_URL,url);
|
||||
curl_easy_setopt(curl,CURLOPT_POST,1);
|
||||
curl_easy_setopt(curl,CURLOPT_HTTPPOST,first);
|
||||
curl_easy_setopt(curl,CURLOPT_NOPROGRESS,1);
|
||||
curl_easy_setopt(curl,CURLOPT_ERRORBUFFER,errbuf);
|
||||
|
||||
res = curl_easy_perform(curl);
|
||||
if(res != CURLE_OK) {
|
||||
#ifdef RIVC_DEBUG_OUT
|
||||
size_t len = strlen(errbuf);
|
||||
fprintf(stderr, "\nlibcurl error: (%d)", res);
|
||||
if (len)
|
||||
fprintf(stderr, "%s%s", errbuf,
|
||||
((errbuf[len-1] != '\n') ? "\n" : ""));
|
||||
else
|
||||
fprintf(stderr, "%s\n", curl_easy_strerror(res));
|
||||
#endif
|
||||
curl_easy_cleanup(curl);
|
||||
return -1;
|
||||
}
|
||||
|
||||
/* The response OK - so figure out if we got what we wanted.. */
|
||||
|
||||
curl_easy_getinfo(curl,CURLINFO_RESPONSE_CODE,&response_code);
|
||||
curl_formfree(first);
|
||||
curl_easy_cleanup(curl);
|
||||
|
||||
if (response_code > 199 && response_code < 300) {
|
||||
*carts=xml_data.carts;
|
||||
*numrecs = xml_data.cart_ptr+1;
|
||||
return 0;
|
||||
}
|
||||
else {
|
||||
#ifdef RIVC_DEBUG_OUT
|
||||
fprintf(stderr," rd_listcartscuts Call Returned Error: %s\n",xml_data.strbuf);
|
||||
#endif
|
||||
return (int)response_code;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct rd_cut *RD_ListCartsCuts_GetCut(struct rd_cart carts[],int cart_rec,
|
||||
int cut_rec)
|
||||
{
|
||||
return
|
||||
(struct rd_cut *)(((struct rd_cart *)(carts)+cart_rec)->cart_cuts)+cut_rec;
|
||||
}
|
||||
|
||||
|
||||
void RD_ListCartsCuts_Free(struct rd_cart carts[],int numrecs)
|
||||
{
|
||||
int i;
|
||||
struct rd_cut *cut=NULL;
|
||||
|
||||
for(i=0;i<numrecs;i++) {
|
||||
if(carts[i].cart_cuts!=NULL) {
|
||||
free(carts[i].cart_cuts);
|
||||
}
|
||||
}
|
||||
free(carts);
|
||||
}
|
||||
48
apis/rivwebcapi/rivwebcapi/rd_listcartscuts.h
Normal file
48
apis/rivwebcapi/rivwebcapi/rd_listcartscuts.h
Normal file
@@ -0,0 +1,48 @@
|
||||
/* rd_listcartscuts.h
|
||||
*
|
||||
* Header for the ListCartsCuts Rivendell Access Library
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#ifndef RD_LISTCARTSCUTS_H
|
||||
#define RD_LISTCARTSCUTS_H
|
||||
|
||||
#include <rivwebcapi/rd_common.h>
|
||||
|
||||
_MYRIVLIB_INIT_DECL
|
||||
|
||||
#include <rivwebcapi/rd_cart.h>
|
||||
|
||||
int RD_ListCartsCuts(struct rd_cart *carts[],
|
||||
const char hostname[],
|
||||
const char username[],
|
||||
const char passwd[],
|
||||
const char ticket[],
|
||||
const char group_name[],
|
||||
const char filter[],
|
||||
const char type[],
|
||||
const char user_agent[],
|
||||
unsigned *numrecs);
|
||||
struct rd_cut *RD_ListCartsCuts_GetCut(struct rd_cart carts[],int cart_rec,
|
||||
int cut_rec);
|
||||
void RD_ListCartsCuts_Free(struct rd_cart carts[],int numrecs);
|
||||
|
||||
_MYRIVLIB_FINI_DECL
|
||||
|
||||
|
||||
#endif // RD_LISTCARTSCUTS_H
|
||||
@@ -1,6 +1,7 @@
|
||||
## automake.am
|
||||
##
|
||||
## (C) Copyright 2015 Fred Gleason <fredg@paravelsystems.com>
|
||||
## (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
## (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
##
|
||||
## This program is free software; you can redistribute it and/or modify
|
||||
## it under the terms of the GNU General Public License version 2 as
|
||||
@@ -20,112 +21,150 @@
|
||||
|
||||
AM_CFLAGS = -Wall -I$ ..
|
||||
LIBS = -L$ ../rivwebcapi
|
||||
noinst_PROGRAMS = listgroups_test \
|
||||
listgroup_test \
|
||||
listcarts_test \
|
||||
listcart_test \
|
||||
listcuts_test \
|
||||
listcut_test \
|
||||
listsystemsettings_test \
|
||||
listschedcodes_test \
|
||||
listcartschedcodes_test \
|
||||
assignschedcode_test \
|
||||
unassignschedcode_test \
|
||||
addcart_test \
|
||||
noinst_PROGRAMS = addcart_test \
|
||||
addcut_test \
|
||||
removecart_test \
|
||||
removecut_test \
|
||||
audioinfo_test \
|
||||
createticket_test \
|
||||
audiostore_test \
|
||||
trimaudio_test \
|
||||
listlogs_test \
|
||||
listservices_test \
|
||||
addlog_test \
|
||||
assignschedcode_test \
|
||||
audioinfo_test \
|
||||
audiostore_test \
|
||||
copyaudio_test \
|
||||
createticket_test \
|
||||
deleteaudio_test \
|
||||
deletelog_test \
|
||||
listlog_test \
|
||||
savelog_test \
|
||||
editcart_test \
|
||||
editcut_test \
|
||||
importcart_test \
|
||||
exportcart_test \
|
||||
exportpeaks_test \
|
||||
deleteaudio_test \
|
||||
copyaudio_test \
|
||||
getuseragent_test \
|
||||
getversion_test \
|
||||
getuseragent_test
|
||||
importcart_test \
|
||||
listcut_test \
|
||||
listcuts_test \
|
||||
listcart_test \
|
||||
listcartcuts_test \
|
||||
listcarts_test \
|
||||
listcartscuts_test \
|
||||
listcartschedcodes_test \
|
||||
listgroup_test \
|
||||
listgroups_test \
|
||||
listlog_test \
|
||||
listlogs_test \
|
||||
listschedcodes_test \
|
||||
listservices_test \
|
||||
listsystemsettings_test \
|
||||
removecart_test \
|
||||
removecut_test \
|
||||
savelog_test \
|
||||
trimaudio_test \
|
||||
unassignschedcode_test
|
||||
|
||||
dist_addcart_test_SOURCES = addcart_test.c
|
||||
addcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_addcut_test_SOURCES = addcut_test.c
|
||||
addcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_addlog_test_SOURCES = addlog_test.c common.c common.h
|
||||
addlog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_assignschedcode_test_SOURCES = assignschedcode_test.c
|
||||
assignschedcode_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_audioinfo_test_SOURCES = audioinfo_test.c
|
||||
audioinfo_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_audiostore_test_SOURCES = audiostore_test.c
|
||||
audiostore_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_copyaudio_test_SOURCES = copyaudio_test.c
|
||||
copyaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_createticket_test_SOURCES = createticket_test.c
|
||||
createticket_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_deleteaudio_test_SOURCES = deleteaudio_test.c
|
||||
deleteaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_deletelog_test_SOURCES = deletelog_test.c common.c common.h
|
||||
deletelog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_editcart_test_SOURCES = editcart_test.c
|
||||
editcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_editcut_test_SOURCES = editcut_test.c
|
||||
editcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_exportcart_test_SOURCES = exportcart_test.c
|
||||
exportcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_exportpeaks_test_SOURCES = exportpeaks_test.c
|
||||
exportpeaks_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_getversion_test_SOURCES = getversion_test.c
|
||||
getversion_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_getuseragent_test_SOURCES = getuseragent_test.c
|
||||
getuseragent_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_importcart_test_SOURCES = importcart_test.c
|
||||
importcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcart_test_SOURCES = listcart_test.c
|
||||
listcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcartcuts_test_SOURCES = listcartcuts_test.c
|
||||
listcartcuts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcarts_test_SOURCES = listcarts_test.c
|
||||
listcarts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcartscuts_test_SOURCES = listcartscuts_test.c
|
||||
listcartscuts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcartschedcodes_test_SOURCES = listcartschedcodes_test.c
|
||||
listcartschedcodes_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcut_test_SOURCES = listcut_test.c
|
||||
listcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listcuts_test_SOURCES = listcuts_test.c
|
||||
listcuts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listgroup_test_SOURCES = listgroup_test.c
|
||||
listgroup_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listgroups_test_SOURCES = listgroups_test.c
|
||||
dist_listgroup_test_SOURCES = listgroup_test.c
|
||||
dist_listcarts_test_SOURCES = listcarts_test.c
|
||||
dist_listcart_test_SOURCES = listcart_test.c
|
||||
dist_listcuts_test_SOURCES = listcuts_test.c
|
||||
dist_listcut_test_SOURCES = listcut_test.c
|
||||
dist_listschedcodes_test_SOURCES = listschedcodes_test.c
|
||||
dist_listsystemsettings_test_SOURCES = listsystemsettings_test.c
|
||||
dist_assignschedcode_test_SOURCES = assignschedcode_test.c
|
||||
dist_unassignschedcode_test_SOURCES = unassignschedcode_test.c
|
||||
dist_addcart_test_SOURCES = addcart_test.c
|
||||
dist_addcut_test_SOURCES = addcut_test.c
|
||||
dist_addlog_test_SOURCES = addlog_test.c\
|
||||
common.c common.h
|
||||
dist_deletelog_test_SOURCES = deletelog_test.c\
|
||||
common.c common.h
|
||||
dist_removecart_test_SOURCES = removecart_test.c
|
||||
dist_removecut_test_SOURCES = removecut_test.c
|
||||
dist_audioinfo_test_SOURCES = audioinfo_test.c
|
||||
dist_createticket_test_SOURCES = createticket_test.c
|
||||
dist_audiostore_test_SOURCES = audiostore_test.c
|
||||
dist_trimaudio_test_SOURCES = trimaudio_test.c
|
||||
dist_listlog_test_SOURCES = listlog_test.c
|
||||
dist_listlogs_test_SOURCES = listlogs_test.c
|
||||
dist_savelog_test_SOURCES = savelog_test.c \
|
||||
common.c common.h
|
||||
dist_listservices_test_SOURCES = listservices_test.c
|
||||
dist_editcart_test_SOURCES = editcart_test.c
|
||||
dist_editcut_test_SOURCES = editcut_test.c
|
||||
dist_importcart_test_SOURCES = importcart_test.c
|
||||
dist_exportcart_test_SOURCES = exportcart_test.c
|
||||
dist_exportpeaks_test_SOURCES = exportpeaks_test.c
|
||||
dist_deleteaudio_test_SOURCES = deleteaudio_test.c
|
||||
dist_copyaudio_test_SOURCES = copyaudio_test.c
|
||||
dist_getversion_test_SOURCES = getversion_test.c
|
||||
dist_getuseragent_test_SOURCES = getuseragent_test.c
|
||||
|
||||
listgroups_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listgroup_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listcarts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listcuts_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listschedcodes_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listsystemsettings_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
assignschedcode_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
listcartschedcodes_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
unassignschedcode_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
addcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
addcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
addlog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
deletelog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
removecart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
removecut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
audioinfo_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
createticket_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
audiostore_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
trimaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listlog_test_SOURCES = listlog_test.c
|
||||
listlog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listlogs_test_SOURCES = listlogs_test.c
|
||||
listlogs_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
savelog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listschedcodes_test_SOURCES = listschedcodes_test.c
|
||||
listschedcodes_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listservices_test_SOURCES = listservices_test.c
|
||||
listservices_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
editcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
editcut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
importcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
exportcart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
exportpeaks_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
deleteaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
copyaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
getversion_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
getuseragent_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_listsystemsettings_test_SOURCES = listsystemsettings_test.c
|
||||
listsystemsettings_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_removecart_test_SOURCES = removecart_test.c
|
||||
removecart_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_removecut_test_SOURCES = removecut_test.c
|
||||
removecut_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_savelog_test_SOURCES = savelog_test.c common.c common.h
|
||||
savelog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_trimaudio_test_SOURCES = trimaudio_test.c
|
||||
trimaudio_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
dist_unassignschedcode_test_SOURCES = unassignschedcode_test.c
|
||||
unassignschedcode_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
|
||||
|
||||
CLEANFILES = *~\
|
||||
moc_*
|
||||
|
||||
320
apis/rivwebcapi/tests/listcartcuts_test.c
Normal file
320
apis/rivwebcapi/tests/listcartcuts_test.c
Normal file
@@ -0,0 +1,320 @@
|
||||
/* listcartcuts_test.c
|
||||
*
|
||||
* Test the listcartcuts library.
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <rivwebcapi/rd_listcartcuts.h>
|
||||
#include <rivwebcapi/rd_createticket.h>
|
||||
#include <rivwebcapi/rd_getuseragent.h>
|
||||
#include <rivwebcapi/rd_getversion.h>
|
||||
|
||||
void dump_datetime(const char *label,struct tm *tm)
|
||||
{
|
||||
printf(" %s year value: %d\n",label,tm->tm_year);
|
||||
printf(" %s mon value: %d\n",label,tm->tm_mon);
|
||||
printf(" %s day value: %d\n",label,tm->tm_mday);
|
||||
printf(" %s wday value: %d\n",label,tm->tm_wday);
|
||||
printf(" %s hour value: %d\n",label,tm->tm_hour);
|
||||
printf(" %s min value: %d\n",label,tm->tm_min);
|
||||
printf(" %s sec value: %d\n",label,tm->tm_sec);
|
||||
printf(" %s isdst: %d\n",label,tm->tm_isdst);
|
||||
}
|
||||
|
||||
|
||||
void dump_cut(struct rd_cut *cut)
|
||||
{
|
||||
printf("Cut %04u:\n",cut->cut_cut_number);
|
||||
printf(" Cut Name: %s\n",cut->cut_name);
|
||||
printf(" Evergreen: %d\n",cut->cut_evergreen);
|
||||
printf(" Description: %s\n",cut->cut_description);
|
||||
printf(" Outcue: %s\n",cut->cut_outcue);
|
||||
printf(" ISRC: %s\n",cut->cut_isrc);
|
||||
printf(" ISCI: %s\n",cut->cut_isci);
|
||||
printf(" Length: %u\n",cut->cut_length);
|
||||
dump_datetime("Origin Datetime",&cut->cut_origin_datetime);
|
||||
dump_datetime("Origin Datetime",&cut->cut_origin_datetime);
|
||||
dump_datetime(" Start Datetime",&cut->cut_start_datetime);
|
||||
dump_datetime(" End Datetime",&cut->cut_end_datetime);
|
||||
printf(" Sunday: %d\n",cut->cut_sun);
|
||||
printf(" Monday: %d\n",cut->cut_mon);
|
||||
printf(" Tuesday: %d\n",cut->cut_tue);
|
||||
printf(" Wednesday: %d\n",cut->cut_wed);
|
||||
printf(" Thursday: %d\n",cut->cut_thu);
|
||||
printf(" Friday: %d\n",cut->cut_fri);
|
||||
printf(" Saturday: %d\n",cut->cut_sat);
|
||||
printf(" Start Daypart: %s\n",cut->cut_start_daypart);
|
||||
printf(" End Daypart: %s\n",cut->cut_end_daypart);
|
||||
printf(" Origin Name: %s\n",cut->cut_origin_name);
|
||||
printf(" Origin Login Name: %s\n",cut->cut_origin_login_name);
|
||||
printf(" Source Hostname: %s\n",cut->cut_source_hostname);
|
||||
printf(" Weight: %u\n",cut->cut_weight);
|
||||
dump_datetime("Last Play Datetime",&cut->cut_last_play_datetime);
|
||||
printf(" Play Counter: %u\n",cut->cut_play_counter);
|
||||
printf(" Coding Format: %u\n",cut->cut_coding_format);
|
||||
printf(" Sample Rate: %u\n",cut->cut_sample_rate);
|
||||
printf(" Bit Rate: %u\n",cut->cut_bit_rate);
|
||||
printf(" Channels: %u\n",cut->cut_channels);
|
||||
printf(" Play Gain: %d\n",cut->cut_play_gain);
|
||||
printf(" Start Point: %d\n",cut->cut_start_point);
|
||||
printf(" End Point: %d\n",cut->cut_end_point);
|
||||
printf(" Fade Up Point: %d\n",cut->cut_start_point);
|
||||
printf(" Fade Down Point: %d\n",cut->cut_end_point);
|
||||
printf(" Segue Start Point: %d\n",cut->cut_segue_start_point);
|
||||
printf(" Segue End Point: %d\n",cut->cut_segue_end_point);
|
||||
printf(" Segue Gain: %d\n",cut->cut_segue_gain);
|
||||
printf(" Hook Start Point: %d\n",cut->cut_hook_start_point);
|
||||
printf(" Hook End Point: %d\n",cut->cut_hook_end_point);
|
||||
printf(" Talk Start Point: %d\n",cut->cut_talk_start_point);
|
||||
printf(" Talk End Point: %d\n",cut->cut_talk_end_point);
|
||||
}
|
||||
|
||||
|
||||
void dump_cart(struct rd_cart *cart)
|
||||
{
|
||||
printf(" Cart Number: %d\n",cart->cart_number);
|
||||
printf(" Cart Type: %d\n",cart->cart_type);
|
||||
printf(" Group Name: %s\n",cart->cart_grp_name);
|
||||
printf(" Cart Title: %s\n",cart->cart_title);
|
||||
printf(" Cart Artist: %s\n",cart->cart_artist);
|
||||
printf(" Cart Album: %s\n",cart->cart_album);
|
||||
printf(" Cart Year: %d\n",cart->cart_year);
|
||||
printf(" Cart Label: %s\n",cart->cart_label);
|
||||
printf(" Cart Client: %s\n",cart->cart_client);
|
||||
printf(" Cart Agency: %s\n",cart->cart_agency);
|
||||
printf(" Cart Publisher: %s\n",cart->cart_publisher);
|
||||
printf(" Cart Composer: %s\n",cart->cart_composer);
|
||||
printf(" Cart Conductor: %s\n",cart->cart_conductor);
|
||||
printf(" Cart User Defined: %s\n",cart->cart_user_defined);
|
||||
printf(" Cart Usage Code: %d\n",cart->cart_usage_code);
|
||||
printf(" Cart Forced Length: %d\n",cart->cart_forced_length);
|
||||
printf(" Cart Average Length: %d\n",cart->cart_average_length);
|
||||
printf(" Cart Length Deviation: %d\n",cart->cart_length_deviation);
|
||||
printf("Cart Average Segue Length: %d\n",cart->cart_average_segue_length);
|
||||
printf(" Cart Average Hook Length: %d\n",cart->cart_average_hook_length);
|
||||
printf(" Cart Cut Quantity: %u\n",cart->cart_cut_quantity);
|
||||
printf(" Cart Last Cut Played: %03u\n",cart->cart_last_cut_played);
|
||||
printf(" Cart Validity: %u\n",cart->cart_validity);
|
||||
printf(" Cart Enforce Length: %d\n",cart->cart_enforce_length);
|
||||
printf(" Cart Asyncronous: %d\n",cart->cart_asyncronous);
|
||||
printf(" Cart Owner: %s\n",cart->cart_owner);
|
||||
dump_datetime("Cart Metadata",&cart->cart_metadata_datetime);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
struct rd_cart *carts=0;
|
||||
char buf[BUFSIZ];
|
||||
char *p;
|
||||
long int cart=0;
|
||||
unsigned numrecs;
|
||||
char *host;
|
||||
char *user;
|
||||
char *passwd;
|
||||
char ticket[41]="";
|
||||
char user_agent[255]={0};
|
||||
|
||||
/* Get the Rivendell Host, User and Password if set in env */
|
||||
if (getenv("RIVHOST")!=NULL) {
|
||||
host = getenv("RIVHOST");
|
||||
}
|
||||
else {
|
||||
host="localhost";
|
||||
}
|
||||
|
||||
if (getenv("RIVUSER")!=NULL) {
|
||||
user = getenv("RIVUSER");
|
||||
}
|
||||
else {
|
||||
user="USER";
|
||||
}
|
||||
|
||||
if (getenv("RIVPASS")!=NULL) {
|
||||
passwd = getenv("RIVPASS");
|
||||
}
|
||||
else {
|
||||
passwd = "";
|
||||
}
|
||||
|
||||
printf("Please enter the Cart Number ==> ");
|
||||
if (fgets(buf,sizeof(buf),stdin) != NULL)
|
||||
{
|
||||
cart = strtol(buf, &p,10);
|
||||
|
||||
if ( (buf[0] != '\n') &&
|
||||
((*p != '\n') && (*p != '\0')))
|
||||
{
|
||||
fprintf(stderr," Illegal Characters detected! Exiting.\n");
|
||||
exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
// Add the User Agent and Version
|
||||
strcat(user_agent,RD_GetUserAgent());
|
||||
strcat(user_agent,RD_GetVersion());
|
||||
strcat(user_agent," (Test Suite)");
|
||||
|
||||
//
|
||||
// Call the function
|
||||
//
|
||||
int result= RD_ListCartCuts(&carts,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
ticket,
|
||||
(unsigned)cart,
|
||||
user_agent,
|
||||
&numrecs);
|
||||
if(result<0) {
|
||||
fprintf(stderr,"Error: Web function Failure!\n");
|
||||
exit(256);
|
||||
}
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 400:
|
||||
fprintf(stderr,"ERROR: Missing Cart Number! \n");
|
||||
break;
|
||||
|
||||
case 404:
|
||||
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
//
|
||||
// List the results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
dump_cart(&carts[i]);
|
||||
printf("\n");
|
||||
for(j=0;j<carts[i].cart_cut_quantity;j++) {
|
||||
dump_cut(RD_ListCartCuts_GetCut(&carts[i],j));
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Free the cart list when finished with it
|
||||
//
|
||||
RD_ListCartCuts_Free(carts);
|
||||
|
||||
|
||||
// Add test of create_ticket function
|
||||
|
||||
struct rd_ticketinfo *myticket=0;
|
||||
numrecs=0;
|
||||
|
||||
result = RD_CreateTicket( &myticket,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
user_agent,
|
||||
&numrecs);
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 403:
|
||||
fprintf(stderr," ERROR: Invalid User Information During Create Ticket\n");
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
|
||||
// We got a ticket created - use it and do the call again
|
||||
//
|
||||
// List the Results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
printf(" Ticket: %s\n",myticket[i].ticket);
|
||||
dump_datetime("Ticket Expire",&myticket->tkt_expiration_datetime);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
user="";
|
||||
passwd="";
|
||||
strcpy( ticket,myticket->ticket);
|
||||
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
|
||||
//
|
||||
// Call the function
|
||||
//
|
||||
result= RD_ListCartCuts(&carts,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
ticket,
|
||||
(unsigned)cart,
|
||||
user_agent,
|
||||
&numrecs);
|
||||
if(result<0) {
|
||||
fprintf(stderr,"Error: Web function Failure!\n");
|
||||
exit(256);
|
||||
}
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 400:
|
||||
fprintf(stderr,"ERROR: Missing Cart Number! \n");
|
||||
break;
|
||||
|
||||
case 404:
|
||||
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
//
|
||||
// List the results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
dump_cart(&carts[i]);
|
||||
printf("\n");
|
||||
for(j=0;j<carts[i].cart_cut_quantity;j++) {
|
||||
dump_cut(RD_ListCartCuts_GetCut(&carts[i],j));
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Free the cart list when finished with it
|
||||
//
|
||||
RD_ListCartCuts_Free(carts);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
305
apis/rivwebcapi/tests/listcartscuts_test.c
Normal file
305
apis/rivwebcapi/tests/listcartscuts_test.c
Normal file
@@ -0,0 +1,305 @@
|
||||
/* listcartscuts_test.c
|
||||
*
|
||||
* Test the listcartscuts library.
|
||||
*
|
||||
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
|
||||
* (C) Copyright 2018 Fred Gleason <fredg@paravelsystems.com>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public
|
||||
* License along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <rivwebcapi/rd_listcartscuts.h>
|
||||
#include <rivwebcapi/rd_createticket.h>
|
||||
#include <rivwebcapi/rd_getuseragent.h>
|
||||
#include <rivwebcapi/rd_getversion.h>
|
||||
|
||||
void dump_datetime(const char *label,struct tm *tm)
|
||||
{
|
||||
printf(" %s year value: %d\n",label,tm->tm_year);
|
||||
printf(" %s mon value: %d\n",label,tm->tm_mon);
|
||||
printf(" %s day value: %d\n",label,tm->tm_mday);
|
||||
printf(" %s wday value: %d\n",label,tm->tm_wday);
|
||||
printf(" %s hour value: %d\n",label,tm->tm_hour);
|
||||
printf(" %s min value: %d\n",label,tm->tm_min);
|
||||
printf(" %s sec value: %d\n",label,tm->tm_sec);
|
||||
printf(" %s isdst: %d\n",label,tm->tm_isdst);
|
||||
}
|
||||
|
||||
|
||||
void dump_cut(struct rd_cut *cut)
|
||||
{
|
||||
printf("Cut %04u:\n",cut->cut_cut_number);
|
||||
printf(" Cut Name: %s\n",cut->cut_name);
|
||||
printf(" Evergreen: %d\n",cut->cut_evergreen);
|
||||
printf(" Description: %s\n",cut->cut_description);
|
||||
printf(" Outcue: %s\n",cut->cut_outcue);
|
||||
printf(" ISRC: %s\n",cut->cut_isrc);
|
||||
printf(" ISCI: %s\n",cut->cut_isci);
|
||||
printf(" Length: %u\n",cut->cut_length);
|
||||
dump_datetime("Origin Datetime",&cut->cut_origin_datetime);
|
||||
dump_datetime("Origin Datetime",&cut->cut_origin_datetime);
|
||||
dump_datetime(" Start Datetime",&cut->cut_start_datetime);
|
||||
dump_datetime(" End Datetime",&cut->cut_end_datetime);
|
||||
printf(" Sunday: %d\n",cut->cut_sun);
|
||||
printf(" Monday: %d\n",cut->cut_mon);
|
||||
printf(" Tuesday: %d\n",cut->cut_tue);
|
||||
printf(" Wednesday: %d\n",cut->cut_wed);
|
||||
printf(" Thursday: %d\n",cut->cut_thu);
|
||||
printf(" Friday: %d\n",cut->cut_fri);
|
||||
printf(" Saturday: %d\n",cut->cut_sat);
|
||||
printf(" Start Daypart: %s\n",cut->cut_start_daypart);
|
||||
printf(" End Daypart: %s\n",cut->cut_end_daypart);
|
||||
printf(" Origin Name: %s\n",cut->cut_origin_name);
|
||||
printf(" Origin Login Name: %s\n",cut->cut_origin_login_name);
|
||||
printf(" Source Hostname: %s\n",cut->cut_source_hostname);
|
||||
printf(" Weight: %u\n",cut->cut_weight);
|
||||
dump_datetime("Last Play Datetime",&cut->cut_last_play_datetime);
|
||||
printf(" Play Counter: %u\n",cut->cut_play_counter);
|
||||
printf(" Coding Format: %u\n",cut->cut_coding_format);
|
||||
printf(" Sample Rate: %u\n",cut->cut_sample_rate);
|
||||
printf(" Bit Rate: %u\n",cut->cut_bit_rate);
|
||||
printf(" Channels: %u\n",cut->cut_channels);
|
||||
printf(" Play Gain: %d\n",cut->cut_play_gain);
|
||||
printf(" Start Point: %d\n",cut->cut_start_point);
|
||||
printf(" End Point: %d\n",cut->cut_end_point);
|
||||
printf(" Fade Up Point: %d\n",cut->cut_start_point);
|
||||
printf(" Fade Down Point: %d\n",cut->cut_end_point);
|
||||
printf(" Segue Start Point: %d\n",cut->cut_segue_start_point);
|
||||
printf(" Segue End Point: %d\n",cut->cut_segue_end_point);
|
||||
printf(" Segue Gain: %d\n",cut->cut_segue_gain);
|
||||
printf(" Hook Start Point: %d\n",cut->cut_hook_start_point);
|
||||
printf(" Hook End Point: %d\n",cut->cut_hook_end_point);
|
||||
printf(" Talk Start Point: %d\n",cut->cut_talk_start_point);
|
||||
printf(" Talk End Point: %d\n",cut->cut_talk_end_point);
|
||||
}
|
||||
|
||||
|
||||
void dump_cart(struct rd_cart *cart)
|
||||
{
|
||||
printf(" Cart Number: %d\n",cart->cart_number);
|
||||
printf(" Cart Type: %d\n",cart->cart_type);
|
||||
printf(" Group Name: %s\n",cart->cart_grp_name);
|
||||
printf(" Cart Title: %s\n",cart->cart_title);
|
||||
printf(" Cart Artist: %s\n",cart->cart_artist);
|
||||
printf(" Cart Album: %s\n",cart->cart_album);
|
||||
printf(" Cart Year: %d\n",cart->cart_year);
|
||||
printf(" Cart Label: %s\n",cart->cart_label);
|
||||
printf(" Cart Client: %s\n",cart->cart_client);
|
||||
printf(" Cart Agency: %s\n",cart->cart_agency);
|
||||
printf(" Cart Publisher: %s\n",cart->cart_publisher);
|
||||
printf(" Cart Composer: %s\n",cart->cart_composer);
|
||||
printf(" Cart Conductor: %s\n",cart->cart_conductor);
|
||||
printf(" Cart User Defined: %s\n",cart->cart_user_defined);
|
||||
printf(" Cart Usage Code: %d\n",cart->cart_usage_code);
|
||||
printf(" Cart Forced Length: %d\n",cart->cart_forced_length);
|
||||
printf(" Cart Average Length: %d\n",cart->cart_average_length);
|
||||
printf(" Cart Length Deviation: %d\n",cart->cart_length_deviation);
|
||||
printf("Cart Average Segue Length: %d\n",cart->cart_average_segue_length);
|
||||
printf(" Cart Average Hook Length: %d\n",cart->cart_average_hook_length);
|
||||
printf(" Cart Cut Quantity: %u\n",cart->cart_cut_quantity);
|
||||
printf(" Cart Last Cut Played: %03u\n",cart->cart_last_cut_played);
|
||||
printf(" Cart Validity: %u\n",cart->cart_validity);
|
||||
printf(" Cart Enforce Length: %d\n",cart->cart_enforce_length);
|
||||
printf(" Cart Asyncronous: %d\n",cart->cart_asyncronous);
|
||||
printf(" Cart Owner: %s\n",cart->cart_owner);
|
||||
dump_datetime("Cart Metadata",&cart->cart_metadata_datetime);
|
||||
}
|
||||
|
||||
|
||||
int main(int argc,char *argv[])
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
struct rd_cart *carts=0;
|
||||
unsigned numrecs;
|
||||
char *host;
|
||||
char *user;
|
||||
char *passwd;
|
||||
char ticket[41]="";
|
||||
char user_agent[255]={0};
|
||||
|
||||
/* Get the Rivendell Host, User and Password if set in env */
|
||||
if (getenv("RIVHOST")!=NULL) {
|
||||
host = getenv("RIVHOST");
|
||||
}
|
||||
else {
|
||||
host="localhost";
|
||||
}
|
||||
|
||||
if (getenv("RIVUSER")!=NULL) {
|
||||
user = getenv("RIVUSER");
|
||||
}
|
||||
else {
|
||||
user="USER";
|
||||
}
|
||||
|
||||
if (getenv("RIVPASS")!=NULL) {
|
||||
passwd = getenv("RIVPASS");
|
||||
}
|
||||
else {
|
||||
passwd = "";
|
||||
}
|
||||
|
||||
// Add the User Agent and Version
|
||||
strcat(user_agent,RD_GetUserAgent());
|
||||
strcat(user_agent,RD_GetVersion());
|
||||
strcat(user_agent," (Test Suite)");
|
||||
|
||||
//
|
||||
// Call the function
|
||||
//
|
||||
int result= RD_ListCartsCuts(&carts,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
ticket,
|
||||
"",
|
||||
"",
|
||||
"Audio",
|
||||
user_agent,
|
||||
&numrecs);
|
||||
if(result<0) {
|
||||
fprintf(stderr,"Error: Web function Failure!\n");
|
||||
exit(256);
|
||||
}
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 403:
|
||||
fprintf(stderr,"ERROR: Invalid User Authentification \n");
|
||||
break;
|
||||
|
||||
case 404:
|
||||
fprintf(stderr,"ERROR: No Such Group Exists! \n");
|
||||
break;
|
||||
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
//
|
||||
// List the results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
dump_cart(&carts[i]);
|
||||
printf("\n");
|
||||
/*
|
||||
for(j=0;j<carts[i].cart_cut_quantity;j++) {
|
||||
dump_cut(RD_ListCartCuts_GetCut(&carts[i],j));
|
||||
printf("\n");
|
||||
}
|
||||
*/
|
||||
}
|
||||
|
||||
//
|
||||
// Free the cart list when finished with it
|
||||
//
|
||||
RD_ListCartsCuts_Free(carts,numrecs);
|
||||
|
||||
|
||||
// Add test of create_ticket function
|
||||
|
||||
struct rd_ticketinfo *myticket=0;
|
||||
numrecs=0;
|
||||
|
||||
result = RD_CreateTicket( &myticket,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
user_agent,
|
||||
&numrecs);
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 403:
|
||||
fprintf(stderr," ERROR: Invalid User Information During Create Ticket\n");
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
|
||||
// We got a ticket created - use it and do the call again
|
||||
//
|
||||
// List the Results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
printf(" Ticket: %s\n",myticket[i].ticket);
|
||||
dump_datetime("Ticket Expire",&myticket->tkt_expiration_datetime);
|
||||
printf("\n");
|
||||
}
|
||||
|
||||
user="";
|
||||
passwd="";
|
||||
strcpy( ticket,myticket->ticket);
|
||||
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
|
||||
//
|
||||
// Call the function
|
||||
//
|
||||
result= RD_ListCartsCuts(&carts,
|
||||
host,
|
||||
user,
|
||||
passwd,
|
||||
ticket,
|
||||
"",
|
||||
"",
|
||||
"Audio",
|
||||
user_agent,
|
||||
&numrecs);
|
||||
if(result<0) {
|
||||
fprintf(stderr,"Error: Web function Failure!\n");
|
||||
exit(256);
|
||||
}
|
||||
|
||||
if ((result< 200 || result > 299) &&
|
||||
(result != 0))
|
||||
{
|
||||
switch(result) {
|
||||
case 403:
|
||||
fprintf(stderr," ERROR: Invalid User Information During Create Ticket\n");
|
||||
break;
|
||||
default:
|
||||
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
|
||||
}
|
||||
exit(256);
|
||||
}
|
||||
//
|
||||
// List the results
|
||||
//
|
||||
for(i=0;i<numrecs;i++) {
|
||||
dump_cart(&carts[i]);
|
||||
printf("\n");
|
||||
for(j=0;j<carts[i].cart_cut_quantity;j++) {
|
||||
dump_cut(RD_ListCartsCuts_GetCut(carts,i,j));
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
//
|
||||
// Free the cart list when finished with it
|
||||
//
|
||||
RD_ListCartsCuts_Free(carts,numrecs);
|
||||
|
||||
exit(0);
|
||||
}
|
||||
@@ -29,13 +29,9 @@ Driver=QMYSQL3
|
||||
; The interval between 'keep-alive' queries to the MySQL server (seconds)
|
||||
HeartbeatInterval=360
|
||||
|
||||
; The following three settings control the attributes of new DB tables
|
||||
; The following setting controls the attributes of new DB tables
|
||||
; created by Rivendell.
|
||||
;Engine=MyISAM
|
||||
; 'Charset' and 'Collation' should *not* changed except for development
|
||||
; purposes.
|
||||
;Charset=utf8
|
||||
;Collation=utf8_general_ci
|
||||
|
||||
[AudioStore]
|
||||
MountSource=
|
||||
|
||||
@@ -494,6 +494,7 @@ AC_CONFIG_FILES([rivendell.spec \
|
||||
utils/rdclilogedit/Makefile \
|
||||
utils/rdcollect/Makefile \
|
||||
utils/rdconvert/Makefile \
|
||||
utils/rddbconfig/Makefile \
|
||||
utils/rddbmgr/Makefile \
|
||||
utils/rddelete/Makefile \
|
||||
utils/rddgimport/Makefile \
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
<refmeta>
|
||||
<refentrytitle>rddbmgr</refentrytitle>
|
||||
<manvolnum>8</manvolnum>
|
||||
<refmiscinfo class='source'>June 2018</refmiscinfo>
|
||||
<refmiscinfo class='source'>October 2018</refmiscinfo>
|
||||
<refmiscinfo class='manual'>Linux Audio Manual</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
@@ -151,30 +151,6 @@
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--mysql-charset=</option><replaceable>charset</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Configure new tables to use character set
|
||||
<replaceable>charset</replaceable>.
|
||||
Default is to use the corresponding value found in the
|
||||
<userinput>[mySQL]</userinput> section of
|
||||
<command>rd.conf</command><manvolnum>5</manvolnum>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
<varlistentry>
|
||||
<term><option>--mysql-collation=</option><replaceable>collation</replaceable></term>
|
||||
<listitem>
|
||||
<para>
|
||||
Configure new tables to use collation
|
||||
<replaceable>collation</replaceable>.
|
||||
Default is to use the corresponding value found in the
|
||||
<userinput>[mySQL]</userinput> section of
|
||||
<command>rd.conf</command><manvolnum>5</manvolnum>.
|
||||
</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</refsect1>
|
||||
|
||||
@@ -484,6 +460,15 @@
|
||||
do not exist in the reverted schema will be irrecoverably lost!
|
||||
</para>
|
||||
</warning>
|
||||
<warning>
|
||||
<para>
|
||||
Schema versions earlier than <computeroutput>297</computeroutput>
|
||||
(Rivendell version <computeroutput>3.0.0</computeroutput>) utilize
|
||||
the <computeroutput>Latin1</computeroutput> character set; reverting
|
||||
a database containing non-Latin1 characters to these schema versions
|
||||
will cause irreversible corruption of those characters!
|
||||
</para>
|
||||
</warning>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id='see_also'><title>See Also</title>
|
||||
|
||||
@@ -88,12 +88,18 @@ all-local: rd_addcart.html\
|
||||
rd_listcartschedcodes.html\
|
||||
rd_listcartschedcodes.pdf\
|
||||
rd_listcartschedcodes.xml\
|
||||
rd_listcarts.html\
|
||||
rd_listcarts.pdf\
|
||||
rd_listcarts.xml\
|
||||
rd_listcart.html\
|
||||
rd_listcart.pdf\
|
||||
rd_listcart.xml\
|
||||
rd_listcartcuts.html\
|
||||
rd_listcartcuts.pdf\
|
||||
rd_listcartcuts.xml\
|
||||
rd_listcarts.html\
|
||||
rd_listcarts.pdf\
|
||||
rd_listcarts.xml\
|
||||
rd_listcartscuts.html\
|
||||
rd_listcartscuts.pdf\
|
||||
rd_listcartscuts.xml\
|
||||
rd_listcuts.html\
|
||||
rd_listcuts.pdf\
|
||||
rd_listcuts.xml\
|
||||
@@ -155,8 +161,10 @@ man_MANS = rd_addcart.7\
|
||||
rd_getversion.7\
|
||||
rd_import.7\
|
||||
rd_listcartschedcodes.7\
|
||||
rd_listcarts.7\
|
||||
rd_listcart.7\
|
||||
rd_listcartcuts.7\
|
||||
rd_listcarts.7\
|
||||
rd_listcartscuts.7\
|
||||
rd_listcuts.7\
|
||||
rd_listcut.7\
|
||||
rd_listgroups.7\
|
||||
@@ -246,13 +254,22 @@ EXTRA_DIST = rd_addcart.7\
|
||||
rd_listcartschedcodes.html\
|
||||
rd_listcartschedcodes.pdf\
|
||||
rd_listcartschedcodes.xml\
|
||||
rd_listcart.7\
|
||||
rd_listcart.html\
|
||||
rd_listcart.pdf\
|
||||
rd_listcart.xml\
|
||||
rd_listcartcuts.7\
|
||||
rd_listcartcuts.html\
|
||||
rd_listcartcuts.pdf\
|
||||
rd_listcartcuts.xml\
|
||||
rd_listcarts.7\
|
||||
rd_listcarts.html\
|
||||
rd_listcarts.pdf\
|
||||
rd_listcarts.xml\
|
||||
rd_listcart.7\
|
||||
rd_listcart.html\
|
||||
rd_listcart.pdf\
|
||||
rd_listcartscuts.7\
|
||||
rd_listcartscuts.html\
|
||||
rd_listcartscuts.pdf\
|
||||
rd_listcartscuts.xml\
|
||||
rd_listcart.xml\
|
||||
rd_listcuts.7\
|
||||
rd_listcuts.html\
|
||||
|
||||
@@ -194,104 +194,12 @@
|
||||
</table>
|
||||
|
||||
<para>
|
||||
When successful function will return the number of records sent (numrecs) and a rd_cart structure which
|
||||
is stored in the provided memory locations. The rd_cart structure has the following fields:
|
||||
When successful function will return the number of records sent
|
||||
(numrecs) and a rd_cart structure which
|
||||
is stored in the provided memory locations. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cart structure).
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cart {
|
||||
unsigned cart_number; /* Cart Number */
|
||||
unsigned cart_type; /* Cart Type */
|
||||
char cart_grp_name[11]; /* Group Name */
|
||||
char cart_title[256]; /* Cart Title */
|
||||
char cart_artist[256]; /* Artist */
|
||||
char cart_album[256]; /* Album */
|
||||
int cart_year; /* Year */
|
||||
char cart_label[65]; /* Label */
|
||||
char cart_client[65]; /* Client */
|
||||
char cart_agency[65]; /* Agency */
|
||||
char cart_publisher[65]; /* Publisher */
|
||||
char cart_composer[65]; /* Composer */
|
||||
char cart_conductor[65]; /* Conductor */
|
||||
char cart_user_defined[256]; /* User Defined */
|
||||
int cart_usage_code; /* Usage Code */
|
||||
int cart_forced_length; /* Forced Length */
|
||||
int cart_average_length; /* AverageLength */
|
||||
int cart_length_deviation; /* Length Deviation */
|
||||
int cart_average_segue_length; /* Average Segue Length */
|
||||
int cart_average_hook_length; /* Average Hook Length */
|
||||
unsigned cart_cut_quantity; /* Cut Quantity */
|
||||
unsigned cart_last_cut_played; /* Last Cut Played */
|
||||
unsigned cart_validity; /* Validity */
|
||||
int cart_enforce_length; /* Enforce Length Flag */
|
||||
int cart_asyncronous; /* Asyncronous Flag */
|
||||
char cart_owner[65]; /* Owner */
|
||||
struct tm cart_metadata_datetime; /* Metatdata Datetime */
|
||||
char cart_notes[1024]; /* Notes */
|
||||
};
|
||||
|
||||
All character arrays above are the sizes listed and must be null-terminated.
|
||||
|
||||
The cart number is a unsigned integer.
|
||||
|
||||
The cart_type is 1=Audio,2=Macro.
|
||||
|
||||
The cart_grp_name must be a valid Rivendell DB Group.
|
||||
|
||||
The cart_title is 255 characters.
|
||||
|
||||
The cart_artist is 255 characters.
|
||||
|
||||
The cart_album is 255 characters.
|
||||
|
||||
The cart_year is a date (YYYY).
|
||||
|
||||
The cart_label is 64 characters.
|
||||
|
||||
The cart_client is 64 characters.
|
||||
|
||||
The cart_agency is 64 characters.
|
||||
|
||||
The cart_publisher is 64 characters.
|
||||
|
||||
The cart_composer is 64 characters.
|
||||
|
||||
The cart_conductor is 64 characters.
|
||||
|
||||
The cart_user_defined is 255 characters.
|
||||
|
||||
The cart_usage_code is 0=Feature, 1=Theme Open,
|
||||
2=Theme Close, 3=Theme Open/Close,
|
||||
4=Background, 5=Comm/Promo
|
||||
|
||||
The cart_forced_length is in milliseconds.
|
||||
|
||||
The cart_average_length is in milliseconds.
|
||||
|
||||
The cart_length_deviation is in milliseconds.
|
||||
|
||||
The cart_average_segue_length is in milliseconds.
|
||||
|
||||
The cart_average_hook_length is in milliseconds.
|
||||
|
||||
The cart_cut_quantity is number of cuts.
|
||||
|
||||
The cart_last_cut_played is self explanatory.
|
||||
|
||||
The cart_validity is 0=NeverValid, 1=Conditional, 2=AlwaysValid
|
||||
3=EvergreenValid, 4=FutureValid
|
||||
|
||||
The cart_enforce_length is True(1) or False(0).
|
||||
|
||||
The cart_asyncronous is True(1) or False(0).
|
||||
|
||||
The cart_owner is 64 characters.
|
||||
|
||||
The cart_metadata_datetime is a struct tm.
|
||||
|
||||
The cart_user_notes is a character array up to 1024 characters.
|
||||
|
||||
</programlisting>
|
||||
|
||||
</refsect1>
|
||||
<refsect2 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
|
||||
352
docs/rivwebcapi/rd_listcartcuts.xml
Normal file
352
docs/rivwebcapi/rd_listcartcuts.xml
Normal file
@@ -0,0 +1,352 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry id="stdin" xmlns="http://docbook.org/ns/docbook" version="5.0">
|
||||
<!--
|
||||
Header
|
||||
-->
|
||||
<refmeta>
|
||||
<refentrytitle>RD_ListCartCuts</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo class='source'>October 2015</refmiscinfo>
|
||||
<refmiscinfo class='manual'>Rivendell C Library Manual</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>rd_listcartcuts</refname>
|
||||
<refpurpose>Rivendell List Cart/Cuts C Library Function</refpurpose>
|
||||
</refnamediv>
|
||||
<info>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Todd</firstname>
|
||||
<surname>Baker</surname>
|
||||
<email>bakert@rfa.org</email>
|
||||
</personname>
|
||||
<contrib>Rivendell C Library Author</contrib>
|
||||
</author>
|
||||
</info>
|
||||
|
||||
<!--
|
||||
Body
|
||||
-->
|
||||
<refsynopsisdiv id='synopsis'>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <rivwebcapi/rd_listcartcuts.h></funcsynopsisinfo>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>RD_ListCartCuts</function></funcdef>
|
||||
<paramdef> struct rd_cart * <parameter>cart[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>hostname[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>username[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>passwd[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>ticket[]</parameter></paramdef>
|
||||
<paramdef>const unsigned <parameter>cartnumber</parameter></paramdef>
|
||||
<paramdef>const char <parameter>user_agent[]</parameter></paramdef>
|
||||
<paramdef>unsigned * <parameter>numrecs</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>struct rd_cut *<function>RD_ListCartCuts_GetCut</function></funcdef>
|
||||
<paramdef> struct rd_cart * <parameter>cart</parameter></paramdef>
|
||||
<paramdef>int <parameter>cut_rec</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>void <function>RD_ListCartCuts_Free</function></funcdef>
|
||||
<paramdef> struct rd_cart * <parameter>cart</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id='description'><title>Description</title>
|
||||
<para>
|
||||
<command>RD_ListCartCuts</command> is the function to use to list the
|
||||
fields within a single cart that already exists in the Rivendell Database.
|
||||
Unlike <command>RD_ListCart</command><manvolnum>7</manvolnum>,
|
||||
<command>RD_ListCartCuts</command><manvolnum>7</manvolnum> will
|
||||
also fetch the full list of cuts associated with the requested cart.
|
||||
</para>
|
||||
<table xml:id="ex.listcart" frame="all">
|
||||
<title>RD_ListCartCuts function call fields</title>
|
||||
<tgroup cols="4" align="left" colsep="1" rowsep="1">
|
||||
<colspec colname="FIELD NAME" />
|
||||
<colspec colname="FIELD TYPE" />
|
||||
<colspec colname="MEANING" />
|
||||
<colspec colname="REMARKS" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>
|
||||
FIELD NAME
|
||||
</entry>
|
||||
<entry>
|
||||
FIELD TYPE
|
||||
</entry>
|
||||
<entry>
|
||||
MEANING
|
||||
</entry>
|
||||
<entry>
|
||||
REMARKS
|
||||
</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
*cart
|
||||
</entry>
|
||||
<entry>
|
||||
Pointer to rd_cart structure
|
||||
</entry>
|
||||
<entry>
|
||||
Memory location to store cart information
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
hostname
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Name Of Rivendell DB Host
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
username
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell User Name
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO Ticket Provided
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
passwd
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell User Password
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO Ticket Provided
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
ticket
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell Authentification Ticket
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO User/Password Pair Provided.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
cartnumber
|
||||
</entry>
|
||||
<entry>
|
||||
unsigned integer
|
||||
</entry>
|
||||
<entry>
|
||||
Cart Number
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
user_agent
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
User Agent Value put into HTTP request
|
||||
</entry>
|
||||
<entry>
|
||||
Optional (default is Rivendell-C-API/x.x.x)
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
*numrecs
|
||||
</entry>
|
||||
<entry>
|
||||
pointer to integer
|
||||
</entry>
|
||||
<entry>
|
||||
memory location for number of records returned
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>
|
||||
When successful the function will return the number of records sent
|
||||
(numrecs) and a rd_cart structure which
|
||||
is stored in the provided memory locations. The rd_cart structure has
|
||||
the following fields:
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cart {
|
||||
unsigned cart_number; /* Cart Number */
|
||||
unsigned cart_type; /* Cart Type */
|
||||
char cart_grp_name[41]; /* Group Name */
|
||||
char cart_title[1021]; /* Cart Title */
|
||||
char cart_artist[1021]; /* Artist */
|
||||
char cart_album[1021]; /* Album */
|
||||
int cart_year; /* Year */
|
||||
char cart_label[257]; /* Label */
|
||||
char cart_client[257]; /* Client */
|
||||
char cart_agency[257]; /* Agency */
|
||||
char cart_publisher[257]; /* Publisher */
|
||||
char cart_composer[257]; /* Composer */
|
||||
char cart_conductor[257]; /* Conductor */
|
||||
char cart_user_defined[1021]; /* User Defined */
|
||||
int cart_usage_code; /* Usage Code */
|
||||
int cart_forced_length; /* Forced Length */
|
||||
int cart_average_length; /* AverageLength */
|
||||
int cart_length_deviation; /* Length Deviation */
|
||||
int cart_average_segue_length; /* Average Segue Length */
|
||||
int cart_average_hook_length; /* Average Hook Length */
|
||||
unsigned cart_cut_quantity; /* Cut Quantity */
|
||||
unsigned cart_last_cut_played; /* Last Cut Played */
|
||||
unsigned cart_validity; /* Validity */
|
||||
int cart_enforce_length; /* Enforce Length Flag */
|
||||
int cart_asyncronous; /* Asyncronous Flag */
|
||||
char cart_owner[257]; /* Owner */
|
||||
struct tm cart_metadata_datetime; /* Metatdata Datetime */
|
||||
char cart_notes[4096]; /* Notes */
|
||||
struct rd_cut **cart_cuts; /* Cut list */
|
||||
};
|
||||
</programlisting>
|
||||
<para>
|
||||
All character arrays use UTF-8 encoding and are null-terminated.
|
||||
</para>
|
||||
|
||||
<refsect2 id='access_cut_information'><title>Accessing Cut Information</title>
|
||||
<para>
|
||||
Information about the cuts associated with the cart can be accessed
|
||||
from the returned rd_cart structure through use of the
|
||||
<command>RD_ListCartCuts_GetCut()</command> function.
|
||||
The <parameter>cut_rec</parameter> parameter should range between
|
||||
<userinput>0</userinput> and one less than the
|
||||
value of the <parameter>cart_cut_quantity</parameter> member of the
|
||||
cart's rd_cart structure.
|
||||
</para>
|
||||
<para>
|
||||
Cut information is returned in the form of a rd_cut structure, which
|
||||
has the following fields:
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cut {
|
||||
char cut_name[41]; /* Cut Name */
|
||||
unsigned cut_cart_number; /* Parent Cart Number */
|
||||
unsigned cut_cut_number; /* Cut Number */
|
||||
int cut_evergreen; /* Boolean */
|
||||
char cut_description[257]; /* Description */
|
||||
char cut_outcue[257]; /* Outcue */
|
||||
char cut_isrc[49]; /* International Standard Recording Code */
|
||||
char cut_isci[129]; /* Industry Standard Commercial Identifier */
|
||||
unsigned cut_length; /* Milliseconds */
|
||||
struct tm cut_origin_datetime; /* Origin Datetime */
|
||||
struct tm cut_start_datetime; /* Start Datetime */
|
||||
struct tm cut_end_datetime; /* End Datetime */
|
||||
int cut_sun; /* Playable on Sunday */
|
||||
int cut_mon; /* Playable on Monday */
|
||||
int cut_tue; /* Playable on Tuesday */
|
||||
int cut_wed; /* Playable on Wednesday */
|
||||
int cut_thu; /* Playable on Thursday */
|
||||
int cut_fri; /* Playable on Friday */
|
||||
int cut_sat; /* Playable on Saturday */
|
||||
char cut_start_daypart[15]; /* Start Daypart */
|
||||
char cut_end_daypart[15]; /* End Daypart */
|
||||
char cut_origin_name[257]; /* Hostname of Ingestion System */
|
||||
char cut_origin_login_name[1021]; /* RD Username on Ingestion System */
|
||||
char cut_source_hostname[1021]; /* Hostname of Originating System */
|
||||
unsigned cut_weight; /* Cut Weighting */
|
||||
struct tm cut_last_play_datetime; /* Datetime of Last OnAir Play-out */
|
||||
unsigned cut_play_counter; /* Number of Times Played */
|
||||
unsigned cut_local_counter; /* Plays Since Rotation Changed */
|
||||
unsigned cut_validity; /* Cut Validity */
|
||||
unsigned cut_coding_format; /* 0 = PCM, 1 = MPEG */
|
||||
unsigned cut_sample_rate; /* Samples per Second */
|
||||
unsigned cut_bit_rate; /* Bits per Second */
|
||||
unsigned cut_channels; /* Audio Channels */
|
||||
int cut_play_gain; /* dBFS */
|
||||
int cut_start_point; /* Milliseconds from Start */
|
||||
int cut_end_point; /* Milliseconds from Start */
|
||||
int cut_fadeup_point; /* Milliseconds from Start */
|
||||
int cut_fadedown_point; /* Milliseconds from Start */
|
||||
int cut_segue_start_point; /* Milliseconds from Start */
|
||||
int cut_segue_end_point; /* Milliseconds from Start */
|
||||
int cut_segue_gain; /* dBFS */
|
||||
int cut_hook_start_point; /* Milliseconds from Start */
|
||||
int cut_hook_end_point; /* Milliseconds from Start */
|
||||
int cut_talk_start_point; /* Milliseconds from Start */
|
||||
int cut_talk_end_point; /* Milliseconds from Start */
|
||||
};
|
||||
</programlisting>
|
||||
<para>
|
||||
All character arrays use UTF-8 encoding and are null-terminated.
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id='freeing_memory'><title>Freeing Memory</title>
|
||||
<para>
|
||||
When the returned rd_cart structure is no longer required, it should
|
||||
freed by passing it to the <command>RD_ListCartCuts_Free()</command>
|
||||
function.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
On success, zero is returned. Using the provided parameters an rd_cart
|
||||
structure is returned and the number of records is returned.
|
||||
</para>
|
||||
<para>
|
||||
If a server error occurs a -1 is returned.
|
||||
If a client error occurs a specific error number is returned.
|
||||
</para>
|
||||
<refsect2 id='errors'><title>Errors</title>
|
||||
<para>
|
||||
400 Missing Cart.
|
||||
</para>
|
||||
<para>
|
||||
403 User Authentification Error.
|
||||
</para>
|
||||
<para>
|
||||
404 No Such Cart Exists.
|
||||
</para>
|
||||
<para>
|
||||
nnn Unknown Error Occurred.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
@@ -227,104 +227,10 @@
|
||||
|
||||
<para>
|
||||
When successful function will return the number of records sent (numrecs) and a rd_cart structure which
|
||||
is stored in the provided memory locations. The rd_cart structure has the following fields:
|
||||
is stored in the provided memory locations. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cart structure).
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cart {
|
||||
unsigned cart_number; /* Cart Number */
|
||||
unsigned cart_type; /* Cart Type */
|
||||
char cart_grp_name[41]; /* Group Name */
|
||||
char cart_title[1021]; /* Cart Title */
|
||||
char cart_artist[1021]; /* Artist */
|
||||
char cart_album[1021]; /* Album */
|
||||
int cart_year; /* Year */
|
||||
char cart_label[257]; /* Label */
|
||||
char cart_client[257]; /* Client */
|
||||
char cart_agency[257]; /* Agency */
|
||||
char cart_publisher[257]; /* Publisher */
|
||||
char cart_composer[257]; /* Composer */
|
||||
char cart_conductor[257]; /* Conductor */
|
||||
char cart_user_defined[1021]; /* User Defined */
|
||||
int cart_usage_code; /* Usage Code */
|
||||
int cart_forced_length; /* Forced Length */
|
||||
int cart_average_length; /* AverageLength */
|
||||
int cart_length_deviation; /* Length Deviation */
|
||||
int cart_average_segue_length; /* Average Segue Length */
|
||||
int cart_average_hook_length; /* Average Hook Length */
|
||||
unsigned cart_cut_quantity; /* Cut Quantity */
|
||||
unsigned cart_last_cut_played; /* Last Cut Played */
|
||||
unsigned cart_validity; /* Validity */
|
||||
int cart_enforce_length; /* Enforce Length Flag */
|
||||
int cart_asyncronous; /* Asyncronous Flag */
|
||||
char cart_owner[257]; /* Owner */
|
||||
struct tm cart_metadata_datetime; /* Metatdata Datetime */
|
||||
char cart_notes[4096]; /* Notes */
|
||||
};
|
||||
|
||||
All character arrays above are the sizes listed and must be null-terminated.
|
||||
Character encoding is UTF-8.
|
||||
|
||||
The cart number is a unsigned integer.
|
||||
|
||||
The cart_type is 1=Audio,2=Macro.
|
||||
|
||||
The cart_grp_name must be a valid Rivendell DB Group.
|
||||
|
||||
The cart_title is 255 characters.
|
||||
|
||||
The cart_artist is 255 characters.
|
||||
|
||||
The cart_album is 255 characters.
|
||||
|
||||
The cart_year is a date (YYYY).
|
||||
|
||||
The cart_label is 64 characters.
|
||||
|
||||
The cart_client is 64 characters.
|
||||
|
||||
The cart_agency is 64 characters.
|
||||
|
||||
The cart_publisher is 64 characters.
|
||||
|
||||
The cart_composer is 64 characters.
|
||||
|
||||
The cart_conductor is 64 characters.
|
||||
|
||||
The cart_user_defined is 255 characters.
|
||||
|
||||
The cart_usage_code is 0=Feature, 1=Theme Open,
|
||||
2=Theme Close, 3=Theme Open/Close,
|
||||
4=Background, 5=Comm/Promo
|
||||
|
||||
The cart_forced_length is in milliseconds.
|
||||
|
||||
The cart_average_length is in milliseconds.
|
||||
|
||||
The cart_length_deviation is in milliseconds.
|
||||
|
||||
The cart_average_segue_length is in milliseconds.
|
||||
|
||||
The cart_average_hook_length is in milliseconds.
|
||||
|
||||
The cart_cut_quantity is number of cuts.
|
||||
|
||||
The cart_last_cut_played is self explanatory.
|
||||
|
||||
The cart_validity is 0=NeverValid, 1=Conditional, 2=AlwaysValid
|
||||
3=EvergreenValid, 4=FutureValid
|
||||
|
||||
The cart_enforce_length is True(1) or False(0).
|
||||
|
||||
The cart_asyncronous is True(1) or False(0).
|
||||
|
||||
The cart_owner is 64 characters.
|
||||
|
||||
The cart_metadata_datetime is a struct tm.
|
||||
|
||||
The cart_user_notes is a character array up to 1024 characters.
|
||||
|
||||
</programlisting>
|
||||
|
||||
</refsect1>
|
||||
<refsect2 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
|
||||
300
docs/rivwebcapi/rd_listcartscuts.xml
Normal file
300
docs/rivwebcapi/rd_listcartscuts.xml
Normal file
@@ -0,0 +1,300 @@
|
||||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<refentry id="stdin" xmlns="http://docbook.org/ns/docbook" version="5.0">
|
||||
<!--
|
||||
Header
|
||||
-->
|
||||
<refmeta>
|
||||
<refentrytitle>RD_ListCartsCuts</refentrytitle>
|
||||
<manvolnum>7</manvolnum>
|
||||
<refmiscinfo class='source'>October 2018</refmiscinfo>
|
||||
<refmiscinfo class='manual'>Rivendell C Library Manual</refmiscinfo>
|
||||
</refmeta>
|
||||
<refnamediv>
|
||||
<refname>rd_listcartscuts</refname>
|
||||
<refpurpose>Rivendell List Cart/Cuts C Library Function</refpurpose>
|
||||
</refnamediv>
|
||||
<info>
|
||||
<author>
|
||||
<personname>
|
||||
<firstname>Todd</firstname>
|
||||
<surname>Baker</surname>
|
||||
<email>bakert@rfa.org</email>
|
||||
</personname>
|
||||
<contrib>Rivendell C Library Author</contrib>
|
||||
</author>
|
||||
</info>
|
||||
|
||||
<!--
|
||||
Body
|
||||
-->
|
||||
<refsynopsisdiv id='synopsis'>
|
||||
<funcsynopsis>
|
||||
<funcsynopsisinfo>#include <rivwebcapi/rd_listcartscuts.h></funcsynopsisinfo>
|
||||
<funcprototype>
|
||||
<funcdef>int <function>RD_ListCartsCuts</function></funcdef>
|
||||
<paramdef> struct rd_cart * <parameter>cart[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>hostname[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>username[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>passwd[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>ticket[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>group_name[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>filter[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>type[]</parameter></paramdef>
|
||||
<paramdef>const char <parameter>user_agent[]</parameter></paramdef>
|
||||
<paramdef>unsigned * <parameter>numrecs</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>struct rd_cut *<function>RD_ListCartsCuts_GetCut</function></funcdef>
|
||||
<paramdef> struct rd_cart <parameter>carts[]</parameter></paramdef>
|
||||
<paramdef>int <parameter>cart_rec</parameter></paramdef>
|
||||
<paramdef>int <parameter>cut_rec</parameter></paramdef>
|
||||
</funcprototype>
|
||||
|
||||
<funcprototype>
|
||||
<funcdef>void <function>RD_ListCartsCuts_Free</function></funcdef>
|
||||
<paramdef> struct rd_cart <parameter>carts[]</parameter></paramdef>
|
||||
<paramdef> unsigned <parameter>numrecs</parameter></paramdef>
|
||||
</funcprototype>
|
||||
</funcsynopsis>
|
||||
|
||||
</refsynopsisdiv>
|
||||
|
||||
<refsect1 id='description'><title>Description</title>
|
||||
<para>
|
||||
This function lists the fields in one or more pre-existing cart(s).
|
||||
The user can also filter the records by group name, cart type, and/or a
|
||||
user provided search string.
|
||||
Unlike <command>RD_ListCarts</command><manvolnum>7</manvolnum>,
|
||||
<command>RD_ListCartsCuts</command><manvolnum>7</manvolnum> will
|
||||
also fetch the full list of cuts associated with each cart.
|
||||
</para>
|
||||
<table xml:id="ex.listcartscuts" frame="all">
|
||||
<title>RD_ListCartsCuts function call fields</title>
|
||||
<tgroup cols="4" align="left" colsep="1" rowsep="1">
|
||||
<colspec colname="FIELD NAME" />
|
||||
<colspec colname="FIELD TYPE" />
|
||||
<colspec colname="MEANING" />
|
||||
<colspec colname="REMARKS" />
|
||||
<thead>
|
||||
<row>
|
||||
<entry>
|
||||
FIELD NAME
|
||||
</entry>
|
||||
<entry>
|
||||
FIELD TYPE
|
||||
</entry>
|
||||
<entry>
|
||||
MEANING
|
||||
</entry>
|
||||
<entry>
|
||||
REMARKS
|
||||
</entry>
|
||||
</row>
|
||||
</thead>
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>
|
||||
*cart
|
||||
</entry>
|
||||
<entry>
|
||||
Pointer to rd_cart structure
|
||||
</entry>
|
||||
<entry>
|
||||
Memory location to store cart information
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
hostname
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Name Of Rivendell DB Host
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
username
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell User Name
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO Ticket Provided
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
passwd
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell User Password
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO Ticket Provided
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
ticket
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
Rivendell Authentification Ticket
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory When NO User/Password Pair Provided.
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
group_name
|
||||
</entry>
|
||||
<entry>
|
||||
character array
|
||||
</entry>
|
||||
<entry>
|
||||
Group Name
|
||||
</entry>
|
||||
<entry>
|
||||
Optional
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
filter
|
||||
</entry>
|
||||
<entry>
|
||||
character array
|
||||
</entry>
|
||||
<entry>
|
||||
Filter - searches for specific strings within the following fields: Title, Artist, Client, Agency, Album, Label, Publisher, Composer, Conductor, Song_Id, User_Defined, and Cart Number.
|
||||
</entry>
|
||||
<entry>
|
||||
Optional
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
type
|
||||
</entry>
|
||||
<entry>
|
||||
character array
|
||||
</entry>
|
||||
<entry>
|
||||
Type of Cart records. If set can be Audio, or Macro.
|
||||
</entry>
|
||||
<entry>
|
||||
Optional
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
user_agent
|
||||
</entry>
|
||||
<entry>
|
||||
Character Array
|
||||
</entry>
|
||||
<entry>
|
||||
User Agent Value put into HTTP request
|
||||
</entry>
|
||||
<entry>
|
||||
Optional (default is Rivendell-C-API/x.x.x)
|
||||
</entry>
|
||||
</row>
|
||||
<row>
|
||||
<entry>
|
||||
*numrecs
|
||||
</entry>
|
||||
<entry>
|
||||
pointer to integer
|
||||
</entry>
|
||||
<entry>
|
||||
memory location for number of records returned
|
||||
</entry>
|
||||
<entry>
|
||||
Mandatory
|
||||
</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<para>
|
||||
When successful the function will return the number of records sent
|
||||
(numrecs) and a rd_cart structure which
|
||||
is stored in the provided memory locations. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cart structure).
|
||||
</para>
|
||||
|
||||
<refsect2 id='access_cut_information'><title>Accessing Cut Information</title>
|
||||
<para>
|
||||
Information about the cuts associated with each cart can be accessed
|
||||
from the returned rd_cart structure through use of the
|
||||
<command>RD_ListCartsCuts_GetCut()</command> function.
|
||||
The <parameter>cart_rec</parameter> parameter should range between
|
||||
<userinput>0</userinput> and one less than the value returned in the
|
||||
<parameter>numrecs</parameter> argument to
|
||||
<command>RD_ListCartsCuts</command>, while
|
||||
the <parameter>cut_rec</parameter> parameter should range between
|
||||
<userinput>0</userinput> and one less than the
|
||||
value of the <parameter>cart_cut_quantity</parameter> member of the
|
||||
cart's rd_cart structure.
|
||||
</para>
|
||||
<para>
|
||||
Cut information is returned in the form of a rd_cut structure. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cut structure).
|
||||
</para>
|
||||
</refsect2>
|
||||
|
||||
<refsect2 id='freeing_memory'><title>Freeing Memory</title>
|
||||
<para>
|
||||
When the returned rd_cart structure is no longer required, it should
|
||||
freed by passing it to the <command>RD_ListCartsCuts_Free()</command>
|
||||
function.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
<refsect1 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
On success, zero is returned. Using the provided parameters an rd_cart
|
||||
structure is returned and the number of records is returned.
|
||||
</para>
|
||||
<para>
|
||||
If a server error occurs a -1 is returned.
|
||||
If a client error occurs a specific error number is returned.
|
||||
</para>
|
||||
<refsect2 id='errors'><title>Errors</title>
|
||||
<para>
|
||||
403 User Authentification Error.
|
||||
</para>
|
||||
<para>
|
||||
404 No Such Group Exists.
|
||||
</para>
|
||||
<para>
|
||||
nnn Unknown Error Occurred.
|
||||
</para>
|
||||
</refsect2>
|
||||
</refsect1>
|
||||
|
||||
</refentry>
|
||||
@@ -210,62 +210,10 @@
|
||||
|
||||
<para>
|
||||
When successful function will return the number of records sent (numrecs) and a rd_cut structure which
|
||||
is stored in the provided memory locations. The rd_cut structure has the following fields:
|
||||
is stored in the provided memory locations. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cut structure).
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cut {
|
||||
char cut_name[11];
|
||||
unsigned cut_cart_number;
|
||||
unsigned cut_cut_number;
|
||||
int cut_evergreen;
|
||||
char cut_description[257];
|
||||
char cut_outcue[257];
|
||||
char cut_isrc[49];
|
||||
char cut_isci[129];
|
||||
unsigned cut_length;
|
||||
struct tm cut_origin_datetime;
|
||||
struct tm cut_start_datetime;
|
||||
struct tm cut_end_datetime;
|
||||
int cut_sun;
|
||||
int cut_mon;
|
||||
int cut_tue;
|
||||
int cut_wed;
|
||||
int cut_thu;
|
||||
int cut_fri;
|
||||
int cut_sat;
|
||||
char cut_start_daypart[9];
|
||||
char cut_end_daypart[9];
|
||||
char cut_origin_name[257];
|
||||
char cut_origin_login_name[1021];
|
||||
char cut_source_hostname[1021];
|
||||
unsigned cut_weight;
|
||||
struct tm cut_last_play_datetime;
|
||||
unsigned cut_play_counter;
|
||||
unsigned cut_local_counter;
|
||||
unsigned cut_validity;
|
||||
unsigned cut_coding_format;
|
||||
unsigned cut_sample_rate;
|
||||
unsigned cut_bit_rate;
|
||||
unsigned cut_channels;
|
||||
int cut_play_gain;
|
||||
int cut_start_point;
|
||||
int cut_end_point;
|
||||
int cut_fadeup_point;
|
||||
int cut_fadedown_point;
|
||||
int cut_segue_start_point;
|
||||
int cut_segue_end_point;
|
||||
int cut_segue_gain;
|
||||
int cut_hook_start_point;
|
||||
int cut_hook_end_point;
|
||||
int cut_talk_start_point;
|
||||
int cut_talk_end_point;
|
||||
};
|
||||
|
||||
All character arrays above are the sizes listed and must be null-terminated.
|
||||
Character encoding is UTF-8.
|
||||
|
||||
</programlisting>
|
||||
|
||||
</refsect1>
|
||||
<refsect2 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
|
||||
@@ -196,62 +196,10 @@
|
||||
|
||||
<para>
|
||||
When successful function will return the number of records sent (numrecs) and a rd_cut structure which
|
||||
is stored in the provided memory locations. The rd_cut structure has the following fields:
|
||||
is stored in the provided memory locations. (See the
|
||||
<command>rd_listcartcuts</command><manvolnum>7</manvolnum> man page
|
||||
for a listing of the rd_cut structure).
|
||||
</para>
|
||||
<programlisting>
|
||||
struct rd_cut {
|
||||
char cut_name[11];
|
||||
unsigned cut_cart_number;
|
||||
unsigned cut_cut_number;
|
||||
int cut_evergreen;
|
||||
char cut_description[257];
|
||||
char cut_outcue[257];
|
||||
char cut_isrc[49];
|
||||
char cut_isci[129];
|
||||
unsigned cut_length;
|
||||
struct tm cut_origin_datetime;
|
||||
struct tm cut_start_datetime;
|
||||
struct tm cut_end_datetime;
|
||||
int cut_sun;
|
||||
int cut_mon;
|
||||
int cut_tue;
|
||||
int cut_wed;
|
||||
int cut_thu;
|
||||
int cut_fri;
|
||||
int cut_sat;
|
||||
char cut_start_daypart[14];
|
||||
char cut_end_daypart[14];
|
||||
char cut_origin_name[257];
|
||||
char cut_origin_login_name[1021];
|
||||
char cut_source_hostname[1021];
|
||||
unsigned cut_weight;
|
||||
struct tm cut_last_play_datetime;
|
||||
unsigned cut_play_counter;
|
||||
unsigned cut_local_counter;
|
||||
unsigned cut_validity;
|
||||
unsigned cut_coding_format;
|
||||
unsigned cut_sample_rate;
|
||||
unsigned cut_bit_rate;
|
||||
unsigned cut_channels;
|
||||
int cut_play_gain;
|
||||
int cut_start_point;
|
||||
int cut_end_point;
|
||||
int cut_fadeup_point;
|
||||
int cut_fadedown_point;
|
||||
int cut_segue_start_point;
|
||||
int cut_segue_end_point;
|
||||
int cut_segue_gain;
|
||||
int cut_hook_start_point;
|
||||
int cut_hook_end_point;
|
||||
int cut_talk_start_point;
|
||||
int cut_talk_end_point;
|
||||
};
|
||||
|
||||
All character arrays above are the sizes listed and must be null-terminated.
|
||||
Charater encoding is UTF-8.
|
||||
|
||||
</programlisting>
|
||||
|
||||
</refsect1>
|
||||
<refsect2 id='returns'><title>RETURN VALUE</title>
|
||||
<para>
|
||||
|
||||
@@ -24,13 +24,15 @@ EXTRA_DIST = audio_cards.txt\
|
||||
audio_inputs.txt\
|
||||
audio_outputs.txt\
|
||||
audio_perms.txt\
|
||||
autofills.txt\
|
||||
aux_metadata.txt\
|
||||
cart.txt\
|
||||
cartslots.txt\
|
||||
cast_downloads.txt\
|
||||
clipboard.txt\
|
||||
clock_lines.txt\
|
||||
clock_perms.txt\
|
||||
copy_splits.txt\
|
||||
clocks.txt\
|
||||
cut_events.txt\
|
||||
cuts.txt\
|
||||
deck_events.txt\
|
||||
@@ -44,13 +46,20 @@ EXTRA_DIST = audio_cards.txt\
|
||||
encoder_samplerates.txt\
|
||||
encoders.txt\
|
||||
event_lines.txt\
|
||||
event_perms.txt\
|
||||
events.txt\
|
||||
extended_panel_names.txt\
|
||||
extended_panels.txt\
|
||||
feed_perms.txt\
|
||||
feeds.txt\
|
||||
gpio_events.txt\
|
||||
gpis.txt\
|
||||
gpos.txt\
|
||||
groups.txt\
|
||||
hostvars.txt\
|
||||
importer_lines.txt\
|
||||
import_templates.txt\
|
||||
inputs.txt\
|
||||
isci_xreference.txt\
|
||||
jack_clients.txt\
|
||||
livewire_gpio_slots.txt\
|
||||
@@ -58,27 +67,37 @@ EXTRA_DIST = audio_cards.txt\
|
||||
log_modes.txt\
|
||||
log_lines.txt\
|
||||
logs.txt\
|
||||
matrices.txt\
|
||||
nownext_plugins.txt\
|
||||
outputs.txt\
|
||||
panels.txt\
|
||||
panel_names.txt\
|
||||
podcasts.txt\
|
||||
rdairplay_channels.txt\
|
||||
rd_airplay.txt\
|
||||
rd_catch.txt\
|
||||
rdhotkeys.txt\
|
||||
rd_library.txt\
|
||||
rd_logedit.txt\
|
||||
rdpanel_channels.txt\
|
||||
rdpanel.txt\
|
||||
recordings.txt\
|
||||
repl_cart_state.txt\
|
||||
repl_cut_state.txt\
|
||||
replicator_map.txt\
|
||||
replicators.txt\
|
||||
report_groups.txt\
|
||||
report_services.txt\
|
||||
report_stations.txt\
|
||||
reports.txt\
|
||||
rule_lines.txt\
|
||||
service_clocks.txt\
|
||||
service_perms.txt\
|
||||
services.txt\
|
||||
sources.txt\
|
||||
stack_lines.txt\
|
||||
stations.txt\
|
||||
switcher_nodes.txt\
|
||||
system.txt\
|
||||
triggers.txt\
|
||||
ttys.txt\
|
||||
|
||||
@@ -6,10 +6,10 @@ physical audio interfaces.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64)
|
||||
STATION_NAME varchar(64)
|
||||
CARD_NUMBER int(11) signed
|
||||
DRIVER int(11) signed
|
||||
NAME char(64)
|
||||
NAME varchar(64)
|
||||
INPUTS int(11) signed
|
||||
OUTPUTS int(11) signed
|
||||
CLOCK_SOURCE int(11) signed 0 = Internal, 1 = AES/EBU,
|
||||
|
||||
@@ -6,7 +6,7 @@ physical audio inputs.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64)
|
||||
STATION_NAME varchar(64)
|
||||
CARD_NUMBER int(11) signed
|
||||
PORT_NUMBER int(11) signed
|
||||
TYPE int(11) signed 0 = Analog, 1 = AES/EBU,
|
||||
|
||||
@@ -6,7 +6,7 @@ physical audio outputs.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64)
|
||||
STATION_NAME varchar(64)
|
||||
CARD_NUMBER int(11) signed
|
||||
PORT_NUMBER int(11) signed
|
||||
LEVEL int(11) signed Gain offset, in 1/100 dB
|
||||
|
||||
@@ -8,5 +8,5 @@ in the AUDIO_PERMS table:
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
GROUP_NAME char(10) Index
|
||||
SERVICE_NAME char(10) Index
|
||||
GROUP_NAME varchar(10) Index
|
||||
SERVICE_NAME varchar(10) Index
|
||||
|
||||
12
docs/tables/autofills.txt
Normal file
12
docs/tables/autofills.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
AUTOFILLS Table Layout for Rivendell
|
||||
|
||||
The AUTOFILLS table holds data concerning which carts should be used
|
||||
to fill available time when 'Autofill' is enabled in an rdlogmanager(1)
|
||||
event.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
SERVICE varchar(10) Index
|
||||
CART_NUMBER int(10) unsigned Index
|
||||
12
docs/tables/aux_metadata.txt
Normal file
12
docs/tables/aux_metadata.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
AUX_METADATA Table Layout for Rivendell
|
||||
|
||||
The AUX_METADATA table holds data concerning auxiliary data fields
|
||||
associated with podcast feeds.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
FEED_ID int(10) unsigned From FEEDS.ID
|
||||
VAR_NAME varchar(16)
|
||||
CAPTION varchar(64)
|
||||
@@ -2,25 +2,25 @@
|
||||
|
||||
The CARTS table holds data concerning all of the available events
|
||||
in a Rivendell system that are capable of being individually
|
||||
scheduled. Following is the layout of a record in the CARTS table:
|
||||
scheduled.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
--------------------------------------------------------------------------
|
||||
NUMBER int(10) unsigned Primary key
|
||||
TYPE int(10) unsigned 1 = Audio, 2 = Command, 3 = Split
|
||||
GROUP_NAME char(10) Index
|
||||
TITLE char(255) Index
|
||||
ARTIST char(255) Index
|
||||
ALBUM char(255) Name of release album
|
||||
GROUP_NAME varchar(10) Index
|
||||
TITLE varchar(191) Index
|
||||
ARTIST varchar(191) Index
|
||||
ALBUM varchar(191) Name of release album
|
||||
YEAR date Year of release
|
||||
CONDUCTOR char(64)
|
||||
LABEL char(64) Release Record Label
|
||||
CLIENT char(64) Index
|
||||
AGENCY char(64) Index
|
||||
PUBLISHER char(64) Index
|
||||
COMPOSER char(64) Index
|
||||
USER_DEFINED char(255) For use by local user
|
||||
SONG_ID char(32)
|
||||
CONDUCTOR varchar(64)
|
||||
LABEL varchar(64) Release Record Label
|
||||
CLIENT varchar(64) Index
|
||||
AGENCY varchar(64) Index
|
||||
PUBLISHER varchar(64) Index
|
||||
COMPOSER varchar(64) Index
|
||||
USER_DEFINED varchar(191) For use by local user
|
||||
SONG_ID varchar(32)
|
||||
BPM int(10) unsigned Beats per minute
|
||||
USAGE_CODE int(11) 0=Feature, 1=Theme Open,
|
||||
2=Theme Close, 3=Theme Open/Close,
|
||||
@@ -41,12 +41,13 @@ ENFORCE_LENGTH enum('N','Y') Timeshift?
|
||||
PRESERVE_PITCH enum('N','Y') Preserve Pitch?
|
||||
USE_WEIGHTING enum('N','Y')
|
||||
ASYNCRONOUS enum('N','Y')
|
||||
OWNER char(64) From LOGS.NAME or STATIONS.NAME
|
||||
OWNER varchar(64) From LOGS.NAME or STATIONS.NAME
|
||||
MACROS text RML Macros
|
||||
SCHED_CODES varchar(255)
|
||||
NOTES text User notes (freeform)
|
||||
METADATA_DATETIME datetime Metadata last modified
|
||||
USE_EVENT_LENGTH enum('N','Y') Use RDLogManager event lengths for
|
||||
macro cart PAD updates.
|
||||
PENDING_STATION char(64)
|
||||
PENDING_STATION varchar(64)
|
||||
PENDING_DATETIME datetime
|
||||
PENDING_PID int(11)
|
||||
|
||||
@@ -7,7 +7,7 @@ CARTS table:
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, Auto Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
SLOT_NUMBER int(10) unsigned
|
||||
MODE int(11) signed 0=Cart Deck, 1=Breakaway
|
||||
DEFAULT_MODE int(11) signed -1=Previous, 0=Cart Deck, 1=Breakaway
|
||||
@@ -17,7 +17,7 @@ CART_NUMBER int(11) signed
|
||||
DEFAULT_CART_NUMBER int(11) signed -1=Previous, 0=None, >0=Cart
|
||||
HOOK_MODE int(11) signed
|
||||
DEFAULT_HOOK_MODE int(11) signed -1=Previous, 0=Off, 1=On
|
||||
SERVICE_NAME char(10) From SERVICES.NAME
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
CARD int(11) signed
|
||||
INPUT_PORT int(11) signed
|
||||
OUTPUT_PORT int(11) signed
|
||||
|
||||
@@ -6,7 +6,7 @@ The CAST_DOWNLOADS table holds data concerning downloads of podcast episodes.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, Auto Increment
|
||||
FEED_KEY_NAME char(8) From FEEDS.KEY_NAME
|
||||
FEED_KEY_NAME varchar(8) From FEEDS.KEY_NAME
|
||||
CAST_ID int(10) unsigned From PODCASTS.ID
|
||||
ACCESS_DATE date
|
||||
ACCESS_COUNT int(10) unsigned
|
||||
|
||||
@@ -6,13 +6,13 @@ layout of a record in the CLIPBOARD table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
CUT_NAME char(12) * Primary key, Base name of WAV file
|
||||
CUT_NAME varchar(12) * Primary key, Base name of WAV file
|
||||
CART_NUMBER int(10) unsigned Parent Cart Entry, Indexed
|
||||
DESCRIPTION char(64) Indexed
|
||||
OUTCUE char(64) Indexed
|
||||
DESCRIPTION varchar(64) Indexed
|
||||
OUTCUE varchar(64) Indexed
|
||||
LENGTH int(10) unsigned Overall length in ms.
|
||||
ORIGIN_DATETIME datetime Date/Time when recorded
|
||||
ORIGIN_NAME char(64) Workstation ID where recorded
|
||||
ORIGIN_NAME varchar(64) Workstation ID where recorded
|
||||
WEIGHT int(10) unsigned Relative airplay frequency, 1 = normal
|
||||
LAST_PLAY_DATETIME datetime
|
||||
PLAY_COUNTER int(10) unsigned
|
||||
|
||||
@@ -6,7 +6,7 @@ The CLOCK_PERMS table holds per-line data for clocks in RDLogManager.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
CLOCK_NAME char(64) From CLOCKS.NAME
|
||||
EVENT_NAME char(64) From EVENTS.NAME
|
||||
CLOCK_NAME varchar(64) From CLOCKS.NAME
|
||||
EVENT_NAME varchar(64) From EVENTS.NAME
|
||||
START_TIME int(11)
|
||||
LENGTH int(11)
|
||||
|
||||
@@ -8,5 +8,5 @@ in the CLOCK_PERMS table:
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
CLOCK_NAME char(64) Index
|
||||
SERVICE_NAME char(10) Index
|
||||
CLOCK_NAME varchar(64) Index
|
||||
SERVICE_NAME varchar(10) Index
|
||||
|
||||
12
docs/tables/clocks.txt
Normal file
12
docs/tables/clocks.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
CLOCKS Table Layout for Rivendell
|
||||
|
||||
The CLOCKS table holds data defining each clock in RDLogManager.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
NAME varchar(64) Primary key
|
||||
SHORT_NAME varchar(8)
|
||||
ARTISTSEP int(10) unsigned
|
||||
COLOR varchar(7)
|
||||
REMARKS text
|
||||
@@ -1,14 +0,0 @@
|
||||
COPY_SPLITS Table Layout for Rivendell
|
||||
|
||||
The COPY_SPLITS table holds data concerning the National=>Regional
|
||||
copy mapping for the copy-split subsystem.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------
|
||||
ID int unsigned(10) Primary key
|
||||
SLOT int unsigned(10)
|
||||
CART_NUMBER int unsigned(10) From CART.NUMBER
|
||||
ISCI_CODE char(32)
|
||||
DESCRIPTION char(255)
|
||||
FILENAME char(64)
|
||||
@@ -5,6 +5,6 @@ The CUT_EVENTS table holds data concerning per-cut meta events.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
CUT_NAME char(12) From CUTS.CUT_NAME
|
||||
CUT_NAME varchar(12) From CUTS.CUT_NAME
|
||||
NUMBER int(11) signed
|
||||
POINT int(11) signed mS from audio start
|
||||
|
||||
@@ -2,19 +2,18 @@
|
||||
|
||||
The CUTS table holds data concerning each individual audio cut on the
|
||||
system, as opposed to CART (where individual entries may reference
|
||||
more than one cut, as in the case of rotators). Following is the
|
||||
layout of a record in the CUTS table:
|
||||
more than one cut, as in the case of rotators).
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
CUT_NAME char(12) * Primary key, Base name of WAV file
|
||||
CUT_NAME varchar(12) * Primary key, Base name of WAV file
|
||||
CART_NUMBER int(10) unsigned Parent Cart Entry, Indexed
|
||||
EVERGREEN enum('N','Y')
|
||||
DESCRIPTION char(64) Indexed
|
||||
OUTCUE char(64) Indexed
|
||||
ISRC char(12) International Standard Recording Code
|
||||
ISCI char(32) ISCI Code
|
||||
SHA1_HASH char(40)
|
||||
DESCRIPTION varchar(64) Indexed
|
||||
OUTCUE varchar(64) Indexed
|
||||
ISRC varchar(12) International Standard Recording Code
|
||||
ISCI varchar(32) ISCI Code
|
||||
SHA1_HASH varchar(40)
|
||||
LENGTH int(10) unsigned Overall length in ms.
|
||||
ORIGIN_DATETIME datetime Date/Time when recorded
|
||||
START_DATETIME datetime
|
||||
@@ -28,9 +27,9 @@ WED enum('N','Y')
|
||||
THU enum('N','Y')
|
||||
FRI enum('N','Y')
|
||||
SAT enum('N','Y')
|
||||
ORIGIN_NAME char(64) Workstation ID where recorded
|
||||
ORIGIN_LOGIN_NAME char(255) From USERS.LOGIN_NAME
|
||||
SOURCE_HOSTNAME char(255) Hostname of remote originator of audio
|
||||
ORIGIN_NAME varchar(64) Workstation ID where recorded
|
||||
ORIGIN_LOGIN_NAME varchar(191) From USERS.LOGIN_NAME
|
||||
SOURCE_HOSTNAME varchar(191) Hostname of remote originator of audio
|
||||
WEIGHT int(10) unsigned Relative airplay frequency, 1 = normal
|
||||
PLAY_ORDER int(11) Play order when weighting disabled
|
||||
LAST_PLAY_DATETIME datetime
|
||||
|
||||
@@ -6,7 +6,7 @@ events.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
CHANNEL int(10) unsigned From DECKS.CHANNEL
|
||||
NUMBER int(11) signed
|
||||
CART_NUMBER int(10) unsigned
|
||||
|
||||
@@ -6,7 +6,7 @@ recording interface on the system.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
CHANNEL int(10) unsigned 0 = Audition Channel
|
||||
CARD_NUMBER int(11) signed -1 = None Assigned
|
||||
STREAM_NUMBER int(11) signed -1 = None Assigned
|
||||
@@ -18,7 +18,7 @@ DEFAULT_FORMAT int(10) signed
|
||||
DEFAULT_CHANNELS int(10) signed
|
||||
DEFAULT_BITRATE int(10) signed
|
||||
DEFAULT_THRESHOLD int(10) signed
|
||||
SWITCH_STATION char(64) From OUTPUTS.STATION_NAME
|
||||
SWITCH_STATION varchar(64) From OUTPUTS.STATION_NAME
|
||||
SWITCH_MATRIX int(11) From OUTPUTS.MATRIX
|
||||
SWITCH_OUTPUT int(11) From OUTPUTS.NUMBER
|
||||
SWITCH_DELAY int(10) unsigned
|
||||
|
||||
@@ -7,5 +7,5 @@ FIELD NAME TYPE REMARKS
|
||||
ID int(11) Primary Key, Not Null, Unique
|
||||
Auto-Increment
|
||||
DROPBOX_ID int(11) From DROPBOXES.ID
|
||||
FILE_PATH char(255)
|
||||
FILE_PATH varchar(191)
|
||||
FILE_DATETIME datetime
|
||||
|
||||
@@ -8,4 +8,4 @@ FIELD NAME TYPE REMARKS
|
||||
ID int(11) Primary Key, Not Null, Unique
|
||||
Auto-Increment
|
||||
DROPBOX_ID int(11) From DROPBOXES.ID
|
||||
SCHED_CODE char(11)
|
||||
SCHED_CODE varchar(11)
|
||||
|
||||
@@ -6,9 +6,9 @@ FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------------
|
||||
ID int(11) Primary Key, Not Null, Unique
|
||||
Auto-Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
GROUP_NAME char(10) From GROUPS.NAME
|
||||
PATH char(255)
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
GROUP_NAME varchar(10) From GROUPS.NAME
|
||||
PATH varchar(191)
|
||||
NORMALIZATION_LEVEL int(11)
|
||||
AUTOTRIM_LEVEL int(11)
|
||||
SINGLE_CART enum('N','Y')
|
||||
@@ -20,12 +20,12 @@ USE_CARTCHUNK_ID enum('N','Y')
|
||||
TITLE_FROM_CARTCHUNK_ID enum('N','Y') Set Rivendell cart title from cartchunk cutid.
|
||||
DELETE_CUTS enum('N','Y')
|
||||
DELETE_SOURCE enum('N','Y')
|
||||
METADATA_PATTERN char(64)
|
||||
METADATA_PATTERN varchar(64)
|
||||
STARTDATE_OFFSET int(11)
|
||||
ENDDATE_OFFSET int(11)
|
||||
FIX_BROKEN_FORMATS enum('N','Y')
|
||||
LOG_PATH char(255)
|
||||
LOG_PATH varchar(191)
|
||||
IMPORT_CREATE_DATES enum('N','Y')
|
||||
CREATE_STARTDATE_OFFSET int(11)
|
||||
CREATE_ENDDATE_OFFSET int(11)
|
||||
SET_USER_DEFINED char(255)
|
||||
SET_USER_DEFINED varchar(191)
|
||||
|
||||
@@ -5,27 +5,27 @@ The ELR_LINES table hold information for electronic log reconciliation.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto-increment
|
||||
SERVICE_NAME char(10) From SERVICES.NAME
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
LENGTH int(11) signed
|
||||
LOG_NAME char(64) From LOGS.NAME
|
||||
LOG_NAME varchar(64) From LOGS.NAME
|
||||
LOG_ID int(11) signed From *_LOG.ID
|
||||
CART_NUMBER int(10) unsigned From CART.NUMBER
|
||||
CUT_NUMBER int(11)
|
||||
TITLE char(255) From CART.TITLE
|
||||
ARTIST char(255) From CART.ARTIST
|
||||
PUBLISHER char(64) From CART.PUBLISHER
|
||||
COMPOSER char(64) From CART.COMPOSER
|
||||
ALBUM char(255) From CART.ALBUM
|
||||
LABEL char(64) From CART.LABEL
|
||||
CONDUCTOR char(64) From CART.CONDUCTOR
|
||||
USER_DEFINED char(255) From CART.USER_DEFINED
|
||||
SONG_ID char(32) From CART.SONG_ID
|
||||
TITLE varchar(191) From CART.TITLE
|
||||
ARTIST varchar(191) From CART.ARTIST
|
||||
PUBLISHER varchar(64) From CART.PUBLISHER
|
||||
COMPOSER varchar(64) From CART.COMPOSER
|
||||
ALBUM varchar(191) From CART.ALBUM
|
||||
LABEL varchar(64) From CART.LABEL
|
||||
CONDUCTOR varchar(64) From CART.CONDUCTOR
|
||||
USER_DEFINED varchar(191) From CART.USER_DEFINED
|
||||
SONG_ID varchar(32) From CART.SONG_ID
|
||||
USAGE_CODE int From CART.USAGE_CODE
|
||||
DESCRIPTION char(64) From CUTS.DESCRIPTION
|
||||
OUTCUE char(64) From CUTS.OUTCUE
|
||||
ISRC char(12) From CUTS.ISRC
|
||||
ISCI char(32) From CUTS.ISCI
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
DESCRIPTION varchar(64) From CUTS.DESCRIPTION
|
||||
OUTCUE varchar(64) From CUTS.OUTCUE
|
||||
ISRC varchar(12) From CUTS.ISRC
|
||||
ISCI varchar(32) From CUTS.ISCI
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
EVENT_DATETIME datetime
|
||||
SCHEDULED_TIME time From *_LOG.START_TIME
|
||||
EVENT_TYPE int(11) 1=Start, 2=Stop
|
||||
@@ -36,7 +36,7 @@ START_SOURCE int(11) 0=Unknown
|
||||
ONAIR_FLAG enum('N','Y')
|
||||
EXT_START_TIME time Scheduler Start Time
|
||||
EXT_LENGTH int(11) Scheduler Length
|
||||
EXT_CART_NAME char(32) Scheduler Cart Name
|
||||
EXT_DATA char(32) Scheduler Data
|
||||
EXT_EVENT_ID char(8) Scheduler Event ID
|
||||
EXT_ANNC_TYPE char(8) External Scheduler Announcement Type
|
||||
EXT_CART_NAME varchar(32) Scheduler Cart Name
|
||||
EXT_DATA varchar(32) Scheduler Data
|
||||
EXT_EVENT_ID varchar(8) Scheduler Event ID
|
||||
EXT_ANNC_TYPE varchar(8) External Scheduler Announcement Type
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
ENCODERS Table Layout for Rivendell
|
||||
|
||||
The EVENTS table holds data concerning each custom encoder format
|
||||
on the system. Following is the layout of a record in the ENCODERS
|
||||
table:
|
||||
on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------
|
||||
ID int(11)
|
||||
NAME char(32)
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
COMMAND_LINE char(255)
|
||||
DEFAULT_EXTENSION char(16)
|
||||
NAME varchar(32)
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
COMMAND_LINE varchar(255)
|
||||
DEFAULT_EXTENSION varchar(16)
|
||||
|
||||
@@ -6,11 +6,11 @@ post-import events.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(11) signed Primary key, auto-increment
|
||||
EVENT_NAME char(64) From EVENT.NAME
|
||||
EVENT_NAME varchar(64) From EVENT.NAME
|
||||
TYPE int(11) signed 0=PreImport, 1=PostImport
|
||||
COUNT int(11) signed Order of records
|
||||
EVENT_TYPE int(11) signed 0=Cart, 1=Marker, 2=OpenBracket,
|
||||
3=CloseBracket, 4=Link
|
||||
CART_NUMBER int(10) unsigned From CART.NUMBER
|
||||
TRANS_TYPE int(11) signed 0 = Play, 1 = Stop, 2 = Segue
|
||||
MARKER_COMMENT char(255)
|
||||
MARKER_COMMENT varchar(191)
|
||||
|
||||
11
docs/tables/event_perms.txt
Normal file
11
docs/tables/event_perms.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
EVENT_PERMS Table Layout for Rivendell
|
||||
|
||||
The EVENT_PERMS table holds data concerning which rdlogmanager(1)
|
||||
events are associated with which services.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
EVENT_NAME varchar(64) From EVENTS.NAME
|
||||
SERIVCE_NAME varchar(10) From SERVICES.NAME
|
||||
31
docs/tables/events.txt
Normal file
31
docs/tables/events.txt
Normal file
@@ -0,0 +1,31 @@
|
||||
EVENTS Table Layout for Rivendell
|
||||
|
||||
The EVENTS table holds data defining each event in rdlogmanager(1).
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
NAME varchar(64) Primary key
|
||||
PROPERTIES varchar(64)
|
||||
DISPLAY_TEXT varchar(64)
|
||||
NOTE_TEXT varchar(191)
|
||||
PREPOSITION int(11)
|
||||
TIME_TYPE int(11)
|
||||
GRACE_TIME int(11)
|
||||
POST_POINT enum('N','Y')
|
||||
USE_AUTOFILL enum('N','Y')
|
||||
AUTOFILL_SLOP int(11)
|
||||
USE_TIMESCALE enum('N','Y')
|
||||
IMPORT_SOURCE int(11)
|
||||
START_SLOP int(11)
|
||||
END_SLOP int(11)
|
||||
FIRST_TRANS_TYPE int(11)
|
||||
DEFAULT_TRANS_TYPE int(11)
|
||||
COLOR varchar(7)
|
||||
SCHED_GROUP varchar(10)
|
||||
TITLE_SEP int(10) unsigned
|
||||
HAVE_CODE varchar(10)
|
||||
HAVE_CODE2 varchar(10)
|
||||
HOR_SEP int(10) unsigned
|
||||
HOR_DIST int(10) unsigned
|
||||
NESTED_EVENT varchar(64)
|
||||
REMARKS text
|
||||
@@ -1,13 +1,12 @@
|
||||
EXTENDED_PANEL_NAMES Table Layout for Rivendell
|
||||
|
||||
The EXTENDED_PANEL_NAMES table holds configuration data for the names of the
|
||||
extended SoundPanels in Rivendell. Following is the layout of a record in the
|
||||
EXTENDED_PANEL_NAMES table:
|
||||
extended SoundPanels in Rivendell.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
TYPE int(11) 0=Station Panel, 1=User Panel
|
||||
OWNER char(64)
|
||||
OWNER varchar(64)
|
||||
PANEL_NO int(11)
|
||||
NAME char(64)
|
||||
NAME varchar(64)
|
||||
|
||||
16
docs/tables/extended_panels.txt
Normal file
16
docs/tables/extended_panels.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
EXTENDED_PANELS Table Layout for Rivendell
|
||||
|
||||
The EXTENDED_PANELS table holds configuration data for the
|
||||
extended SoundPanels in Rivendell.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
TYPE int(11) 0=Station Panel, 1=User Panel
|
||||
OWNER varchar(64)
|
||||
PANEL_NO int(11)
|
||||
ROW_NO int(11)
|
||||
COLUMN_NO int(11)
|
||||
LABEL varchar(64)
|
||||
CART int(11)
|
||||
DEFAULT_COLOR varchar(7)
|
||||
@@ -1,12 +1,11 @@
|
||||
FEED_PERMS Table Layout for Rivendell
|
||||
|
||||
The FEED_PERMS table holds data concerning which RSS feeds are
|
||||
are allowed to be accessed by which users. Following is the layout
|
||||
of a record in the FEED_PERMS table:
|
||||
are allowed to be accessed by which users.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
USER_NAME char(255) From USERS.LOGIN_NAME
|
||||
KEY_NAME char(8) From FEEDS.KEYNAME
|
||||
USER_NAME varchar(191) From USERS.LOGIN_NAME
|
||||
KEY_NAME varchar(8) From FEEDS.KEYNAME
|
||||
|
||||
38
docs/tables/feeds.txt
Normal file
38
docs/tables/feeds.txt
Normal file
@@ -0,0 +1,38 @@
|
||||
FEEDS Table Layout for Rivendell
|
||||
|
||||
The FEEDS table holds data concerning which defines RSS feeds.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
KEY_NAME varchar(8) Unique
|
||||
CHANNEL_TITLE varchar(191)
|
||||
CHANNEL_DESCRIPTION text
|
||||
CHANNEL_CATEGORY varchar(64)
|
||||
CHANNEL_LINK varchar(191)
|
||||
CHANNEL_COPYRIGHT varchar(64)
|
||||
CHANNEL_WEBMASTER varchar(64)
|
||||
CHANNEL_LANGUAGE varchar(5)
|
||||
BASE_URL varchar(191)
|
||||
BASE_PREAMBLE varchar(191)
|
||||
PURGE_URL varchar(191)
|
||||
PURGE_USERNAME varchar(64)
|
||||
PURGE_PASSWORD varchar(64)
|
||||
HEADER_XML text
|
||||
CHANNEL_XML text
|
||||
ITEM_XML text
|
||||
CAST_ORDER enum('N','Y')
|
||||
MAX_SHELF_LIFE int(11)
|
||||
LAST_BUILD_DATETIME datetime
|
||||
ORIGIN_DATETIME datetime
|
||||
ENABLE_AUTOPOST enum('N','Y')
|
||||
KEEP_METADATA enum('N','Y')
|
||||
UPLOAD_FORMAT int(11)
|
||||
UPLOAD_CHANNELS int(11)
|
||||
UPLOAD_SAMPRATE int(11)
|
||||
UPLOAD_BITRATE int(11)
|
||||
UPLOAD_QUALITY int(11)
|
||||
UPLOAD_EXTENSION varchar(16)
|
||||
NORMALIZE_LEVEL int(11)
|
||||
REDIRECT_PATH varchar(191)
|
||||
MEDIA_LINK_MODE int(11)
|
||||
@@ -6,7 +6,7 @@ by the system.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(10) unsigned From MATRICES.MATRIX
|
||||
NUMBER int(11)
|
||||
TYPE int(11) 0 = GPI, 1 = GPO
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
GPIS Table Layout for Rivendell
|
||||
|
||||
The GPIS table holds data concerning the gpi lines of each
|
||||
configured switcher device on the system. Following is the layout
|
||||
of a record in the GPIS table:
|
||||
configured switcher device on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(10) unsigned
|
||||
NUMBER int(11)
|
||||
MACRO_CART int(10) unsigned
|
||||
|
||||
@@ -1,13 +1,12 @@
|
||||
GPOS Table Layout for Rivendell
|
||||
|
||||
The GPOS table holds data concerning the gpo lines of each
|
||||
configured switcher device on the system. Following is the layout
|
||||
of a record in the GPOS table:
|
||||
configured switcher device on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(10) unsigned
|
||||
NUMBER int(11)
|
||||
MACRO_CART int(10) unsigned
|
||||
|
||||
@@ -1,22 +1,21 @@
|
||||
GROUPS Layout for Rivendell
|
||||
|
||||
The GROUPS table holds data concerning each Cart Group configured
|
||||
on the system. Following is the layout of a record in the GROUPS
|
||||
table:
|
||||
on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
NAME char(10) Primary Key
|
||||
DESCRIPTION char(255)
|
||||
NAME varchar(10) Primary Key
|
||||
DESCRIPTION varchar(255)
|
||||
DEFAULT_CART_TYPE unsigned int(10) 1=Audio, 2=Macro
|
||||
DEFAULT_LOW_CART unsigned int(10)
|
||||
DEFAULT_HIGH_CART unsigned int(10)
|
||||
DEFAULT_CUT_LIFE int(11) Default END_DATETIME interval (days)
|
||||
CUT_SHELFLIFE int(11) -1=no autopurge
|
||||
DELETE_EMPTY_CARTS enum('N','Y') After purging cuts
|
||||
DEFAULT_TITLE char(255)
|
||||
DEFAULT_TITLE varchar(255)
|
||||
ENFORCE_CART_RANGE enum('N','Y')
|
||||
REPORT_TFC enum('N','Y')
|
||||
REPORT_MUS enum('N','Y')
|
||||
ENABLE_NOW_NEXT enum('N','Y')
|
||||
COLOR char(7)
|
||||
COLOR varchar(7)
|
||||
|
||||
12
docs/tables/hostvars.txt
Normal file
12
docs/tables/hostvars.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
HOSTVARS Table Layout for Rivendell
|
||||
|
||||
The HOSTVARS table holds host variable definitions.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
NAME varchar(32)
|
||||
VARVALUE varchar(191)
|
||||
REMARK varchar(191)
|
||||
32
docs/tables/import_templates.txt
Normal file
32
docs/tables/import_templates.txt
Normal file
@@ -0,0 +1,32 @@
|
||||
IMPORT_TEMPLATES Layout for Rivendell
|
||||
|
||||
The IMPORT_TEMPLATES table holds pre-defined log importation parameters
|
||||
for various third-party systems.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
----------------------------------------------------------------
|
||||
NAME varchar(64) Primary key
|
||||
CART_OFFSET int(11)
|
||||
CART_LENGTH int(11)
|
||||
TITLE_OFFSET int(11)
|
||||
TITLE_LENGTH int(11)
|
||||
HOURS_OFFSET int(11)
|
||||
HOURS_LENGTH int(11)
|
||||
MINUTES_OFFSET int(11)
|
||||
MINUTES_LENGTH int(11)
|
||||
SECONDS_OFFSET int(11)
|
||||
SECONDS_LENGTH int(11)
|
||||
LEN_HOURS_OFFSET int(11)
|
||||
LEN_HOURS_LENGTH int(11)
|
||||
LEN_MINUTES_OFFSET int(11)
|
||||
LEN_MINUTES_LENGTH int(11)
|
||||
LEN_SECONDS_OFFSET int(11)
|
||||
LEN_SECONDS_LENGTH int(11)
|
||||
LENGTH_OFFSET int(11)
|
||||
LENGTH_LENGTH int(11)
|
||||
DATA_OFFSET int(11)
|
||||
DATA_LENGTH int(11)
|
||||
EVENT_ID_OFFSET int(11)
|
||||
EVENT_ID_LENGTH int(11)
|
||||
ANNC_TYPE_OFFSET int(11)
|
||||
ANNC_TYPE_LENGTH int(11)
|
||||
@@ -6,22 +6,22 @@ importation.
|
||||
FIELD NAME TYPE REMARKS
|
||||
----------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
PROCESS_ID int unsigned
|
||||
LINE_ID int(10) unsigned
|
||||
START_HOUR int (11) signed
|
||||
START_SECS int(11) signed
|
||||
CART_NUMBER int (10) unsigned
|
||||
TITLE char(255)
|
||||
TITLE varchar(191)
|
||||
LENGTH int (11) signed
|
||||
INSERT_BREAK enum('N','Y')
|
||||
INSERT_TRACK enum('N','Y')
|
||||
INSERT_FIRST int (10) unsigned
|
||||
TRACK_STRING char(255)
|
||||
EXT_DATA char(32)
|
||||
EXT_EVENT_ID char(32)
|
||||
EXT_ANNC_TYPE char(8)
|
||||
EXT_CART_NAME char(32)
|
||||
TRACK_STRING varchar(191)
|
||||
EXT_DATA varchar(32)
|
||||
EXT_EVENT_ID varchar(32)
|
||||
EXT_ANNC_TYPE varchar(8)
|
||||
EXT_CART_NAME varchar(32)
|
||||
LINK_START_TIME time
|
||||
LINK_LENGTH int (11) signed
|
||||
EVENT_USED enum('N','Y')
|
||||
|
||||
19
docs/tables/inputs.txt
Normal file
19
docs/tables/inputs.txt
Normal file
@@ -0,0 +1,19 @@
|
||||
INPUTS Table Layout for Rivendell
|
||||
|
||||
The INPUTS table holds information regarding switcher inputs.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(11)
|
||||
NUMBER int(11)
|
||||
NAME varchar(64)
|
||||
FEED_NAME varchar(8)
|
||||
CHANNEL_MODE int(11)
|
||||
ENGINE_NUM int(11)
|
||||
DEVICE_NUM int(11)
|
||||
NODE_HOSTNAME varchar(176)
|
||||
NODE_TCP_PORT int(11)
|
||||
NODE_SLOT int(11)
|
||||
@@ -9,11 +9,11 @@ FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
CART_NUMBER int(10) unsigned
|
||||
ISCI char(32)
|
||||
FILENAME char(64)
|
||||
ISCI varchar(32)
|
||||
FILENAME varchar(64)
|
||||
LATEST_DATE date
|
||||
TYPE char(1)
|
||||
ADVERTISER_NAME char(30)
|
||||
PRODUCT_NAME char(35)
|
||||
CREATIVE_TITLE char(30)
|
||||
REGION_NAME char(80)
|
||||
TYPE varchar(1)
|
||||
ADVERTISER_NAME varchar(30)
|
||||
PRODUCT_NAME varchar(35)
|
||||
CREATIVE_TITLE varchar(30)
|
||||
REGION_NAME varchar(80)
|
||||
|
||||
@@ -6,6 +6,6 @@ when starting the rivendell daemons.
|
||||
FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------------
|
||||
ID int unsigned(10) Primary Key
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
DESCRIPTION char(64)
|
||||
COMMAND_LINE char(255)
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
DESCRIPTION varchar(64)
|
||||
COMMAND_LINE varchar(255)
|
||||
|
||||
@@ -7,8 +7,8 @@ Each slot consist of five Rivendell GPIO lines.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(11) signed Primary key, auto-increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(11) From MATRICES.MATRIX
|
||||
SLOT int(11)
|
||||
IP_ADDRESS char(15)
|
||||
IP_ADDRESS varchar(15)
|
||||
SOURCE_NUMBER int(11)
|
||||
|
||||
@@ -5,7 +5,7 @@ The LOG_LINES table holds the per-line data for all Rivendell logs.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(11) signed Primary key, auto-increment
|
||||
LOG_NAME char(64) From LOGS.NAME
|
||||
LOG_NAME varchar(64) From LOGS.NAME
|
||||
COUNT int(11) signed Order of records
|
||||
TYPE int(11) signed 0=Cart, 1=Marker, 2=OpenBracket,
|
||||
3=CloseBracket, 4=Link
|
||||
@@ -26,12 +26,12 @@ FADEDOWN_GAIN int(11) signed
|
||||
SEGUE_START_POINT int(11) signed Overloads CUTS.SEGUE_START_POINT
|
||||
SEGUE_END_POINT int(11) signed Overloads CUTS.SEGUE_END_POINT
|
||||
SEGUE_GAIN int(11) signed
|
||||
COMMENT char(255)
|
||||
LABEL char(64)
|
||||
ORIGIN_USER char(255) From USERS.LOGIN_NAME
|
||||
COMMENT varchar(255)
|
||||
LABEL varchar(64)
|
||||
ORIGIN_USER varchar(255) From USERS.LOGIN_NAME
|
||||
ORIGIN_DATETIME datetime
|
||||
EVENT_LENGTH int(11) Length of parent RDLogManager event
|
||||
LINK_EVENT_NAME char(64)
|
||||
LINK_EVENT_NAME varchar(64)
|
||||
LINK_START_TIME int(11) Milliseconds after 00:00:00
|
||||
LINK_LENGTH int(11)
|
||||
LINK_START_SLOP int(11)
|
||||
@@ -40,7 +40,7 @@ LINK_ID int(11)
|
||||
LINK_EMBEDDED enum('N','Y')
|
||||
EXT_START_TIME time External Scheduler Start Time
|
||||
EXT_LENGTH int(11) External Scheduler Event Length
|
||||
EXT_CART_NAME char(32) External Scheduler Cart Name
|
||||
EXT_DATA char(32) External Scheduler Data
|
||||
EXT_EVENT_ID char(8) External Scheduler Event ID
|
||||
EXT_ANNC_TYPE char(8) External Scheduler Announcement Type
|
||||
EXT_CART_NAME varchar(32) External Scheduler Cart Name
|
||||
EXT_DATA varchar(32) External Scheduler Data
|
||||
EXT_EVENT_ID varchar(8) External Scheduler Event ID
|
||||
EXT_ANNC_TYPE varchar(8) External Scheduler Announcement Type
|
||||
|
||||
@@ -6,21 +6,21 @@ channels assignments and related information.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MACHINE int(11) 1 = RDAirPlay Main Log
|
||||
2 = RDAirPlay Aux Log 1
|
||||
3 = RDAirPlay Aux Log 2
|
||||
101..124 = RDVAirPlay Log Machines
|
||||
START_MODE int(11)
|
||||
AUTO_RESTART enum('N','Y')
|
||||
LOG_NAME char(64)
|
||||
CURRENT_LOG char(64)
|
||||
LOG_NAME varchar(64)
|
||||
CURRENT_LOG varchar(64)
|
||||
RUNNING enum('N','Y')
|
||||
LOG_ID int(11)
|
||||
LOG_LINE int(11)
|
||||
NOW_CART int(10) unsigned
|
||||
NEXT_CART int(10) unsigned
|
||||
UDP_ADDR char(255)
|
||||
UDP_ADDR varchar(255)
|
||||
UDP_PORT int(10) unsigned
|
||||
UDP_STRING char(255)
|
||||
LOG_RML char(255)
|
||||
UDP_STRING varchar(255)
|
||||
LOG_RML varchar(255)
|
||||
|
||||
@@ -6,7 +6,7 @@ RDAirPlay.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MACHINE int(10) unsigned 0=Main Log, 1=AuxLog 1, 2=AuxLog
|
||||
START_MODE int(11) 0=Previous, 1=LiveAssist, 2=Automatic,
|
||||
3=Manual
|
||||
|
||||
@@ -6,12 +6,12 @@ table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------
|
||||
NAME char(64)
|
||||
NAME varchar(64)
|
||||
LOG_EXISTS enum('N','Y')
|
||||
TYPE int(11) 0=Log, 1=Event, 2=Clock, 3=Grid
|
||||
SERVICE char(10) From SERVICES.NAME
|
||||
DESCRIPTION char(64)
|
||||
ORIGIN_USER char(255) From USERS.LOGIN_NAME
|
||||
SERVICE varchar(10) From SERVICES.NAME
|
||||
DESCRIPTION varchar(64)
|
||||
ORIGIN_USER varchar(191) From USERS.LOGIN_NAME
|
||||
ORIGIN_DATETIME datetime
|
||||
LINK_DATETIME datetime
|
||||
MODIFIED_DATETIME datetime
|
||||
@@ -27,8 +27,8 @@ MUSIC_LINKED enum('N','Y')
|
||||
TRAFFIC_LINKS int
|
||||
TRAFFIC_LINKED enum('N','Y')
|
||||
NEXT_ID int(11)
|
||||
LOCK_USER_NAME char(255) From USER.LOGIN_NAME
|
||||
LOCK_STATION_NAME char(64) From STATIONS.NAME
|
||||
LOCK_IPV4_ADDRESS char(16)
|
||||
LOCK_USER_NAME varchar(191) From USER.LOGIN_NAME
|
||||
LOCK_STATION_NAME varchar(64) From STATIONS.NAME
|
||||
LOCK_IPV4_ADDRESS varchar(16)
|
||||
LOCK_DATETIME datetime
|
||||
LOCK_GUID char(82)
|
||||
LOCK_GUID varchar(82)
|
||||
|
||||
36
docs/tables/matrices.txt
Normal file
36
docs/tables/matrices.txt
Normal file
@@ -0,0 +1,36 @@
|
||||
MATRICES Table Layout for Rivendell
|
||||
|
||||
The MATRICES table holds data that defines a switcher device.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
-------------------------------------------------------------------
|
||||
ID int(11) Primary key, auto_increment
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
NAME varchar(64)
|
||||
MATRIX int(11)
|
||||
TYPE int(11)
|
||||
LAYER int(11)
|
||||
PORT_TYPE int(11)
|
||||
PORT_TYPE_2 int(11)
|
||||
CARD int(11)
|
||||
PORT int(11)
|
||||
PORT_2 int(11)
|
||||
IP_ADDRESS varchar(16)
|
||||
IP_ADDRESS_2 varchar(16)
|
||||
IP_PORT int(11)
|
||||
IP_PORT_2 int(11)
|
||||
USERNAME varchar(32)
|
||||
USERNAME_2 varchar(32)
|
||||
PASSWORD varchar(32)
|
||||
PASSWORD_2 varchar(32)
|
||||
START_CART int(10) unsigned
|
||||
STOP_CART int(10) unsigned
|
||||
START_CART_2 int(10) unsigned
|
||||
STOP_CART_2 int(10) unsigned
|
||||
GPIO_DEVICE varchar(191)
|
||||
INPUTS int(11)
|
||||
OUTPUTS int(11)
|
||||
GPIS int(11)
|
||||
GPOS int(11)
|
||||
FADERS int(11)
|
||||
DISPLAYS int(11)
|
||||
@@ -1,13 +1,12 @@
|
||||
NOWNEXT_PLUGINS Table Layout for Rivendell
|
||||
|
||||
The NOWNEXT_PLUGINS table holds data concerning each Now & Next
|
||||
plugins configured on the system. Following is the layout
|
||||
of a record in the NOWNEXT_PLUGINS table:
|
||||
plugins configured on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
LOG_MACHINE int(10) unsigned 0=Main, 1=Aux1, 2=Aux2
|
||||
PLUGIN_PATH char(255)
|
||||
PLUGIN_ARG char(255)
|
||||
PLUGIN_PATH varchar(191)
|
||||
PLUGIN_ARG varchar(191)
|
||||
|
||||
17
docs/tables/outputs.txt
Normal file
17
docs/tables/outputs.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
OUTPUTS Table Layout for Rivendell
|
||||
|
||||
The OUTPUTS table holds information regarding switchs outputs.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(11) Primary key, auto increment
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MATRIX int(11)
|
||||
NUMBER int(11)
|
||||
NAME varchar(64)
|
||||
ENGINE_NUM int(11)
|
||||
DEVICE_NUM int(11)
|
||||
NODE_HOSTNAME varchar(176)
|
||||
NODE_TCP_PORT int(11)
|
||||
NODE_SLOT int(11)
|
||||
@@ -1,13 +1,12 @@
|
||||
PANEL_NAMES Table Layout for Rivendell
|
||||
|
||||
The PANEL_NAMES table holds configuration data for the names of the
|
||||
SoundPanels in Rivendell. Following is the layout of a record in the
|
||||
PANEL_NAMES table:
|
||||
SoundPanels in Rivendell.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
TYPE int(11) 0=Station Panel, 1=User Panel
|
||||
OWNER char(64)
|
||||
OWNER varchar(64)
|
||||
PANEL_NO int(11)
|
||||
NAME char(64)
|
||||
NAME varchar(64)
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
PANELS Table Layout for Rivendell
|
||||
|
||||
The PANELS table holds configuration data for all the SoundPanels in
|
||||
Rivendell. Following is the layout of a record in the PANELS table:
|
||||
Rivendell.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
TYPE int(11) 0=Station Panel, 1=User Panel
|
||||
OWNER char(64)
|
||||
OWNER varchar(64)
|
||||
PANEL_NO int(11)
|
||||
ROW_NO int(11)
|
||||
COLUMN_NO int(11)
|
||||
LABEL char(64)
|
||||
LABEL varchar(64)
|
||||
CART int(11)
|
||||
DEFAULT_COLOR char(7) Background color, in hex format
|
||||
DEFAULT_COLOR varchar(7) Background color, in hex format
|
||||
"#RRGGBB".
|
||||
|
||||
23
docs/tables/podcasts.txt
Normal file
23
docs/tables/podcasts.txt
Normal file
@@ -0,0 +1,23 @@
|
||||
PODCASTS Table Layout for Rivendell
|
||||
|
||||
The PODCASTS table holds information about individual RSS posts.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
FEED_ID int(10) unsigned From FEEDS.ID
|
||||
STATUS int(10) unsigned
|
||||
ITEM_TITLE varchar(191)
|
||||
ITEM_DESCRIPTION text
|
||||
ITEM_CATEGORY varchar(64)
|
||||
ITEM_LINK varchar(191)
|
||||
ITEM_COMMENTS varchar(191)
|
||||
ITEM_AUTHOR varchar(191)
|
||||
ITEM_SOURCE_TEXT varchar(64)
|
||||
ITEM_SOURCE_URL varchar(191)
|
||||
AUDIO_FILENAME varchar(191)
|
||||
AUDIO_LENGTH int(10) unsigned
|
||||
AUDIO_TIME int(10) unsigned
|
||||
SHELF_LIFE int(11)
|
||||
ORIGIN_DATETIME datetime
|
||||
EFFECTIVE_DATETIME datetime
|
||||
@@ -1,7 +1,6 @@
|
||||
RDAIRPLAY Table Layout for Rivendell
|
||||
|
||||
The RDAIRPLAY table holds configuration data for the RDAirPlay widget.
|
||||
Following is the layout of a record in the RDAIRPLAY table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
@@ -21,17 +20,17 @@ DEFAULT_TRANS_TYPE int(11)
|
||||
BAR_ACTION int(10) unsigned 0=None, 1=Start Next
|
||||
FLASH_PANEL enum('N','Y')
|
||||
PANEL_PAUSE_ENABLED enum('N','Y')
|
||||
BUTTON_LABEL_TEMPLATE char(32)
|
||||
BUTTON_LABEL_TEMPLATE varchar(32)
|
||||
PAUSE_ENABLED enum('N','Y')
|
||||
DEFAULT_SERVICE char(10) From SERVICES.NAME
|
||||
DEFAULT_SERVICE varchar(10) From SERVICES.NAME
|
||||
HOUR_SELECTOR_ENABLED enum('N','Y')
|
||||
EXIT_CODE int(11) 0=clean, 1=dirty
|
||||
VIRTUAL_EXIT_CODE int(11) 0=clean, 1=dirty
|
||||
EXIT_PASSWORD char(41)
|
||||
SKIN_PATH char(255)
|
||||
EXIT_PASSWORD varchar(41)
|
||||
SKIN_PATH varchar(191)
|
||||
SHOW_COUNTERS enum('N','Y')
|
||||
AUDITION_PREROLL int(11)
|
||||
TITLE_TEMPLATE char(64)
|
||||
ARTIST_TEMPLATE char(64)
|
||||
OUTCUE_TEMPLATE char(64)
|
||||
DESCRIPTION_TEMPLATE char(64)
|
||||
TITLE_TEMPLATE varchar(64)
|
||||
ARTIST_TEMPLATE varchar(64)
|
||||
OUTCUE_TEMPLATE varchar(64)
|
||||
DESCRIPTION_TEMPLATE varchar(64)
|
||||
|
||||
@@ -6,5 +6,5 @@ RDCatch module. Following is the layout of a record in the RDAIRPLAY table:
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION char(64) Workstation, Indexed
|
||||
ERROR_RML char(255)
|
||||
STATION varchar(64) Workstation, Indexed
|
||||
ERROR_RML varchar(191)
|
||||
|
||||
@@ -5,7 +5,7 @@ The RDLIBRARY table holds configuration data for the RDLibrary widget.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION char(40) Workstation, Indexed
|
||||
STATION varchar(64) From STATIONS.NAME
|
||||
INSTANCE int(10) unsigned
|
||||
INPUT_CARD int(11) None=-1
|
||||
INPUT_TYPE enum('A','D')
|
||||
@@ -21,10 +21,10 @@ DEFAULT_RECORD_MODE int(10) unsigned 0 = Manual, 1 = VOX
|
||||
DEFAULT_TRIM_STATE enum('Y','N')
|
||||
MAXLENGTH int(11) Max record length, in sec
|
||||
TAIL_PREROLL int(10) unsigned
|
||||
RIPPER_DEVICE char(64)
|
||||
RIPPER_DEVICE varchar(64)
|
||||
PARANOIA_LEVEL int(11)
|
||||
RIPPER_LEVEL int(11)
|
||||
CDDB_SERVER char(64)
|
||||
CDDB_SERVER varchar(64)
|
||||
READ_ISRC enum('N','Y')
|
||||
ENABLE_EDITOR enum('N','Y')
|
||||
SRC_CONVERTER int(11)
|
||||
|
||||
@@ -1,12 +1,11 @@
|
||||
RDLOGEDIT Table Layout for Rivendell
|
||||
|
||||
The RDLOGEDIT table holds configuration data for the RDLogEdit widget.
|
||||
Following is the layout of a record in the RDLOGEDIT table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION char(64) Workstation, Indexed
|
||||
STATION varchar(64) From STATIONS.NAME
|
||||
INPUT_CARD int(11) None=-1
|
||||
OUTPUT_CARD int(11) None=-1
|
||||
OUTPUT_PORT int(11)
|
||||
|
||||
@@ -6,7 +6,7 @@ channels assignments and related information.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
INSTANCE int(10) unsigned 0 = Main Log Output 1
|
||||
1 = Main Log Output 2
|
||||
2 = Sound Panel Output 1
|
||||
@@ -19,8 +19,8 @@ INSTANCE int(10) unsigned 0 = Main Log Output 1
|
||||
9 = Sound Panel Output 5
|
||||
CARD int(11)
|
||||
PORT int(11)
|
||||
START_RML char(255)
|
||||
STOP_RML char(255)
|
||||
START_RML varchar(191)
|
||||
STOP_RML varchar(191)
|
||||
GPIO_TYPE int unsigned 0 = Edge, 1 = Level
|
||||
START_GPI_MATRIX int(11)
|
||||
START_GPI_LINE int(11)
|
||||
|
||||
12
docs/tables/rdhotkeys.txt
Normal file
12
docs/tables/rdhotkeys.txt
Normal file
@@ -0,0 +1,12 @@
|
||||
RDHOTKEYS Table Layout for Rivendell
|
||||
|
||||
The RDHOTKEYS table holds key mappings.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
MODULE_NAME varchar(64)
|
||||
KEY_ID int(11)
|
||||
KEY_VALUE varchar(64)
|
||||
KEY_LABEL varchar(64)
|
||||
16
docs/tables/rdpanel.txt
Normal file
16
docs/tables/rdpanel.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
RDPANEL Table Layout for Rivendell
|
||||
|
||||
The RDPANEL table holds configuration data for the RDCatch module.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
--------------------------------------------------------------------------------
|
||||
ID int(11) * Primary key, Auto Increment
|
||||
STATION varchar(64) From STATIONS.NAME
|
||||
STATION_PANELS int(11)
|
||||
USER_PANELS int(11)
|
||||
CLEAR_FILTER enum('N','Y')
|
||||
FLASH_PANEL enum('N','Y')
|
||||
PANEL_PAUSE_ENABLED enum('N','Y')
|
||||
BUTTON_LABEL_TEMPLATE varchar(32)
|
||||
DEFAULT_SERVICE varchar(10)
|
||||
SKIN_PATH varchar(191)
|
||||
@@ -6,7 +6,7 @@ channels assignments and related information.
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------------
|
||||
ID int(10) unsigned * Primary key, Auto Increment
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
INSTANCE int(10) unsigned 0 = Main Log Output 1 (Not Used)
|
||||
1 = Main Log Output 2 (Not Used)
|
||||
2 = Sound Panel Output 1
|
||||
@@ -19,8 +19,8 @@ INSTANCE int(10) unsigned 0 = Main Log Output 1 (Not Used)
|
||||
9 = Sound Panel Output 5
|
||||
CARD int(11)
|
||||
PORT int(11)
|
||||
START_RML char(255)
|
||||
STOP_RML char(255)
|
||||
START_RML varchar(255)
|
||||
STOP_RML varchar(255)
|
||||
GPIO_TYPE int unsigned 0 = Edge, 1 = Level
|
||||
START_GPI_MATRIX int(11)
|
||||
START_GPI_LINE int(11)
|
||||
|
||||
@@ -11,9 +11,9 @@ IS_ACTIVE enum('N','Y')
|
||||
TYPE int(11) 0=Recording,1=Macro Event,
|
||||
2=Switch Event,3=Playout,
|
||||
4=Download,5=Upload
|
||||
STATION_NAME char(64) From STATIONS.NAME
|
||||
STATION_NAME varchar(64) From STATIONS.NAME
|
||||
CHANNEL int(10) unsigned
|
||||
CUT_NAME char(12) From CUTS.CUT_NAME
|
||||
CUT_NAME varchar(12) From CUTS.CUT_NAME
|
||||
SUN enum('N','Y')
|
||||
MON enum('N','Y')
|
||||
TUE enum('N','Y')
|
||||
@@ -21,7 +21,7 @@ WED enum('N','Y')
|
||||
THU enum('N','Y')
|
||||
FRI enum('N','Y')
|
||||
SAT enum('N','Y')
|
||||
DESCRIPTION char(64) Remarks
|
||||
DESCRIPTION varchar(64) Remarks
|
||||
|
||||
START_TYPE int(10) 0=Hard Timed,1=GPI
|
||||
START_TIME time
|
||||
@@ -57,8 +57,8 @@ EXIT_CODE int(11) 0 = Ok, 1 = Short Length,
|
||||
2 = Low Level, 3 = High Level
|
||||
EXIT_TEXT text
|
||||
ONE_SHOT enum ('N','Y')
|
||||
URL char(255)
|
||||
URL_USERNAME char(64)
|
||||
URL_PASSWORD char(64)
|
||||
URL varchar(255)
|
||||
URL_USERNAME varchar(64)
|
||||
URL_PASSWORD varchar(64)
|
||||
ENABLE_METADATA enum('N','Y')
|
||||
FEED_ID int From FEEDS.ID
|
||||
|
||||
@@ -7,8 +7,8 @@ FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned auto_increment, not null
|
||||
primary key
|
||||
REPLICATOR_NAME char(32) from REPLICATORS.NAME
|
||||
REPLICATOR_NAME varchar(32) from REPLICATORS.NAME
|
||||
CART_NUMBER int(10) unsigned from CART.NUMBER
|
||||
POSTED_FILENAME char(255)
|
||||
POSTED_FILENAME varchar(191)
|
||||
ITEM_DATETIME datetime
|
||||
REPOST enum('N','Y')
|
||||
|
||||
@@ -7,6 +7,6 @@ FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
ID int(10) unsigned auto_increment, not null
|
||||
primary key
|
||||
REPLICATOR_NAME char(32) from REPLICATORS.NAME
|
||||
CUT_NAME char(12) from CUTS.CUT_NAME
|
||||
REPLICATOR_NAME varchar(32) from REPLICATORS.NAME
|
||||
CUT_NAME varchar(12) from CUTS.CUT_NAME
|
||||
ITEM_DATETIME datetime
|
||||
|
||||
@@ -5,17 +5,17 @@ configuration on the system.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------
|
||||
NAME char(32) not null, primary key
|
||||
DESCRIPTION char(64)
|
||||
NAME varchar(32) not null, primary key
|
||||
DESCRIPTION varchar(64)
|
||||
TYPE_ID int(10) unsigned not null
|
||||
STATION_NAME char(64) from STATIONS.NAME
|
||||
STATION_NAME varchar(64) from STATIONS.NAME
|
||||
FORMAT int(10) unsigned
|
||||
CHANNELS int(10) unsigned
|
||||
SAMPRATE int(10) unsigned
|
||||
BITRATE int(10) unsigned
|
||||
QUALITY int(10) unsigned
|
||||
URL char(255)
|
||||
URL_USERNAME char(64)
|
||||
URL_PASSWORD char(64)
|
||||
URL varchar(255)
|
||||
URL_USERNAME varchar(64)
|
||||
URL_PASSWORD varchar(64)
|
||||
ENABLE_METADATA enum('N','Y')
|
||||
NORMALIZATION_LEVEL int(11) signed
|
||||
|
||||
10
docs/tables/report_groups.txt
Normal file
10
docs/tables/report_groups.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
REPORT_GROUPS Table Layout for Rivendell
|
||||
|
||||
The REPORT_GROUPS table holds data which groups are referenced by
|
||||
a given report configuration.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary Key
|
||||
REPORT_NAME varchar(64)
|
||||
GROUP_NAME varchar(10)
|
||||
10
docs/tables/report_services.txt
Normal file
10
docs/tables/report_services.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
REPORT_SERVICES Table Layout for Rivendell
|
||||
|
||||
The REPORT_SERVICES table holds data which services are referenced by
|
||||
a given report configuration.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary Key
|
||||
REPORT_NAME varchar(64)
|
||||
SERVICE_NAME varchar(10)
|
||||
10
docs/tables/report_stations.txt
Normal file
10
docs/tables/report_stations.txt
Normal file
@@ -0,0 +1,10 @@
|
||||
REPORT_STATIONS Table Layout for Rivendell
|
||||
|
||||
The REPORT_STATIONS table holds data which hosts are referenced by
|
||||
a given report configuration.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary Key
|
||||
REPORT_NAME varchar(64)
|
||||
STATION_NAME varchar(64)
|
||||
@@ -5,24 +5,24 @@ The REPORTS table holds data concerning each report configured on the system.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary Key
|
||||
NAME char(64)
|
||||
DESCRIPTION char(64)
|
||||
NAME varchar(64)
|
||||
DESCRIPTION varchar(64)
|
||||
EXPORT_FILTER int(11)
|
||||
EXPORT_PATH char(255)
|
||||
EXPORT_PATH varchar(191)
|
||||
POST_EXPORT_CMD text
|
||||
WIN_EXPORT_PATH char(255)
|
||||
WIN_EXPORT_PATH varchar(191)
|
||||
WIN_POST_EXPORT_CMD text
|
||||
EXPORT_TFC enum('N','Y')
|
||||
EXPORT_MUS enum('N','Y')
|
||||
FORCE_MUS enum('N','Y')
|
||||
EXPORT_GEN enum('N','Y')
|
||||
STATION_ID char(16)
|
||||
STATION_ID varchar(16)
|
||||
CART_DIGITS int(10) unsigned
|
||||
USE_LEADING_ZEROS enum('N','Y')
|
||||
LINES_PER_PAGE int(11)
|
||||
SERVICE_NAME char(64)
|
||||
SERVICE_NAME varchar(64)
|
||||
STATION_TYPE int(11)
|
||||
STATION_FORMAT char(64)
|
||||
STATION_FORMAT varchar(64)
|
||||
FILTER_ONAIR_FLAG enum('N','Y')
|
||||
FILTER_GROUPS enum('N','Y')
|
||||
START_TIME time
|
||||
|
||||
@@ -7,6 +7,6 @@ to a given hour on a service's grid.
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(11) signed Primary Key
|
||||
SERVICE_NAME char(10) From SERVICES.NAME
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
HOUR int(11) signed
|
||||
CLOCK_NAME char(64) From CLOCKS.NAME
|
||||
CLOCK_NAME varchar(64) From CLOCKS.NAME
|
||||
|
||||
11
docs/tables/service_perms.txt
Normal file
11
docs/tables/service_perms.txt
Normal file
@@ -0,0 +1,11 @@
|
||||
SERVICE_PERMS Table Layout for Rivendell
|
||||
|
||||
The SERVICE_PERMS table holds data concerning which is permitted
|
||||
to run which service.
|
||||
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
ID int(10) unsigned Primary Key
|
||||
STATION_NAME varchar(64) From CLOCKS.NAME
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
@@ -6,25 +6,25 @@ table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
NAME char(10) unsigned Primary Key
|
||||
DESCRIPTION char(255)
|
||||
NAME_TEMPLATE char(255)
|
||||
DESCRIPTION_TEMPLATE char(255)
|
||||
PROGRAM_CODE char(255)
|
||||
NAME varchar(10) unsigned Primary Key
|
||||
DESCRIPTION varchar(191)
|
||||
NAME_TEMPLATE varchar(191)
|
||||
DESCRIPTION_TEMPLATE varchar(191)
|
||||
PROGRAM_CODE varchar(191)
|
||||
CHAIN_LOG enum('N','Y')
|
||||
TRACK_GROUP char(10) From GROUPS.NAME
|
||||
AUTOSPOT_GROUP char(10) From GROUPS.NAME
|
||||
TRACK_GROUP varchar(10) From GROUPS.NAME
|
||||
AUTOSPOT_GROUP varchar(10) From GROUPS.NAME
|
||||
AUTO_REFRESH enum('N','Y')
|
||||
DEFAULT_LOG_SHELFLIFE int(11)
|
||||
LOG_SHELFLIFE_ORIGIN int(11) 0=Air Date, 1=Log Creation
|
||||
ELR_SHELFLIFE int(11)
|
||||
TFC_PATH char(255)
|
||||
TFC_PATH varchar(191)
|
||||
TFC_PREIMPORT_CMD text
|
||||
TFC_WIN_PATH char(255)
|
||||
TFC_WIN_PATH varchar(191)
|
||||
TFC_WIN_PREIMPORT_CMD text
|
||||
TFC_IMPORT_TEMPLATE char(64) From IMPORT_TEMPLATES.NAME
|
||||
TFC_LABEL_CART char(32)
|
||||
TFC_TRACK_CART char(32)
|
||||
TFC_IMPORT_TEMPLATE varchar(64) From IMPORT_TEMPLATES.NAME
|
||||
TFC_LABEL_CART varchar(32)
|
||||
TFC_TRACK_CART varchar(32)
|
||||
TFC_CART_OFFSET int(11)
|
||||
TFC_CART_LENGTH int(11)
|
||||
TFC_TITLE_OFFSET int(11)
|
||||
@@ -35,8 +35,6 @@ TFC_MINUTES_OFFSET int(11)
|
||||
TFC_MINUTES_LENGTH int(11)
|
||||
TFC_SECONDS_OFFSET int(11)
|
||||
TFC_SECONDS_LENGTH int(11)
|
||||
TFC_LENGTH_OFFSET int(11) RETIRED
|
||||
TFC_LENGTH_LENGTH int(11) RETIRED
|
||||
TFC_LEN_HOURS_OFFSET int(11)
|
||||
TFC_LEN_HOURS_LENGTH int(11)
|
||||
TFC_LEN_MINUTES_OFFSET int(11)
|
||||
@@ -49,15 +47,15 @@ TFC_EVENT_ID_OFFSET int(11)
|
||||
TFC_EVENT_ID_LENGTH int(11)
|
||||
TFC_ANNC_TYPE_OFFSET int(11)
|
||||
TFC_ANNC_TYPE_LENGTH int(11)
|
||||
MUS_PATH char(255)
|
||||
MUS_PATH varchar(191)
|
||||
MUS_PREIMPORT_CMD text
|
||||
MUS_WIN_PATH char(255)
|
||||
MUS_WIN_PATH varchar(191)
|
||||
MUS_WIN_PREIMPORT_CMD text
|
||||
MUS_IMPORT_TEMPLATE char(64) From IMPORT_TEMPLATES.NAME
|
||||
MUS_LABEL_CART char(32)
|
||||
MUS_TRACK_CART char(32)
|
||||
MUS_BREAK_STRING char(64)
|
||||
MUS_TRACK_STRING char(64)
|
||||
MUS_IMPORT_TEMPLATE varchar(64) From IMPORT_TEMPLATES.NAME
|
||||
MUS_LABEL_CART varchar(32)
|
||||
MUS_TRACK_CART varchar(32)
|
||||
MUS_BREAK_STRING varchar(64)
|
||||
MUS_TRACK_STRING varchar(64)
|
||||
MUS_CART_OFFSET int(11)
|
||||
MUS_CART_LENGTH int(11)
|
||||
MUS_TITLE_OFFSET int(11)
|
||||
@@ -74,8 +72,6 @@ MUS_LEN_MINUTES_OFFSET int(11)
|
||||
MUS_LEN_MINUTES_LENGTH int(11)
|
||||
MUS_LEN_SECONDS_OFFSET int(11)
|
||||
MUS_LEN_SECONDS_LENGTH int(11)
|
||||
MUS_LENGTH_OFFSET int(11) RETIRED
|
||||
MUS_LENGTH_LENGTH int(11) RETIRED
|
||||
MUS_DATA_OFFSET int(11)
|
||||
MUS_DATA_LENGTH int(11)
|
||||
MUS_EVENT_ID_OFFSET int(11)
|
||||
|
||||
@@ -6,8 +6,8 @@ FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(10) unsigned Primary key, auto_increment
|
||||
SCHED_STACK_ID int(10) unsigned
|
||||
SERVICE_NAME char(10) From SERVICES.NAME
|
||||
SERVICE_NAME varchar(10) From SERVICES.NAME
|
||||
CART int(10) unsigned From CART.NUMBER
|
||||
ARTIST varchar(255) From CART.ARTIST
|
||||
SCHED_CODES varchar(255)
|
||||
ARTIST varchar(191) From CART.ARTIST
|
||||
SCHED_CODES varchar(191)
|
||||
SCHEDULED_AT datetime
|
||||
|
||||
@@ -1,28 +1,27 @@
|
||||
STATIONS Table Layout for Rivendell
|
||||
|
||||
The STATIONS table contains data about each workstation in the system.
|
||||
Following is the layout of a record in the SERVICES table:
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
---------------------------------------------------------------
|
||||
NAME char(64) Primary Key
|
||||
SHORT_NAME char(64)
|
||||
DESCRIPTION char(64) Indexed
|
||||
USER_NAME char(255) Current User
|
||||
DEFAULT_NAME char(255) Default User
|
||||
IPV4_ADDRESS char(15)
|
||||
HTTP_STATION char(64) From STATIONS.NAME
|
||||
CAE_STATION char(64) From STATIONS.NAME
|
||||
NAME varchar(64) Primary Key
|
||||
SHORT_NAME varchar(64)
|
||||
DESCRIPTION varchar(64) Indexed
|
||||
USER_NAME varchar(255) Current User
|
||||
DEFAULT_NAME varchar(255) Default User
|
||||
IPV4_ADDRESS varchar(15)
|
||||
HTTP_STATION varchar(64) From STATIONS.NAME
|
||||
CAE_STATION varchar(64) From STATIONS.NAME
|
||||
TIME_OFFSET int(11)
|
||||
BROADCAST_SECURITY int(10) unsigned 0=HostSec, 1=UserSec
|
||||
HEARTBEAT_CART int(10) unsigned
|
||||
HEARTBEAT_INTERVAL int(10) unsigned
|
||||
STARTUP_CART int(10) unsigned
|
||||
EDITOR_PATH char(255)
|
||||
EDITOR_PATH varchar(255)
|
||||
FILTER_MODE int(11) 0=Synchronous, 1=Asynchronous
|
||||
START_JACK enum('Y','N')
|
||||
JACK_SERVER_NAME char(64)
|
||||
JACK_COMMAND_LINE char(255)
|
||||
JACK_SERVER_NAME varchar(64)
|
||||
JACK_COMMAND_LINE varchar(255)
|
||||
JACK_PORTS int(11) signed
|
||||
CUE_CARD int(11) signed
|
||||
CUE_PORT int(11) signed
|
||||
@@ -41,6 +40,6 @@ HAVE_TWOLAME enum('N','Y')
|
||||
HAVE_LAME enum('N','Y')
|
||||
HAVE_MPG321 enum('N','Y')
|
||||
HAVE_MP4_DECODE enum('N','Y')
|
||||
HPI_VERSION char(16)
|
||||
JACK_VERSION char(16)
|
||||
ALSA_VERSION char(16)
|
||||
HPI_VERSION varchar(16)
|
||||
JACK_VERSION varchar(16)
|
||||
ALSA_VERSION varchar(16)
|
||||
|
||||
15
docs/tables/switcher_nodes.txt
Normal file
15
docs/tables/switcher_nodes.txt
Normal file
@@ -0,0 +1,15 @@
|
||||
SWITCHER_NODES Table Layout for Rivendell
|
||||
|
||||
The SWITCHER_NODES table holds data on Livewire nodes being used
|
||||
as switcher devices.
|
||||
|
||||
FIELD NAME TYPE REMARKS
|
||||
------------------------------------------------------------------------
|
||||
ID int(11) Primary key, auto_increment
|
||||
STATION_NAME varchar(64)
|
||||
MATRIX int(11)
|
||||
BASE_OUTPUT int(11)
|
||||
HOSTNAME varchar(64)
|
||||
PASSWORD varchar(64)
|
||||
TCP_PORT int(11)
|
||||
DESCRIPTION varchar(191)
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user