2018-08-30 Fred Gleason <fredg@paravelsystems.com>

* Integrated the 'Rivendell-C-API'
	[from https://github.com/RadioFreeAsia/rivendell-c-api] in
	'apis/rivwebcapi/'.
	* Added a 'rivendell-webapi' RPM subpackage.
This commit is contained in:
Fred Gleason
2018-08-30 14:06:12 -04:00
parent 28a43eeae2
commit 6a71c397a2
157 changed files with 27894 additions and 16 deletions

View File

@@ -0,0 +1,138 @@
## automake.am
##
## (C) Copyright 2015 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.
##
##
## Use automake to process this into a Makefile.in
AM_CFLAGS = -Wall -I$(top_srcdir)/apis/rivwebcapi
LIBS = -L$(top_srcdir)/apis/rivwebcapi/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 \
addcut_test \
removecart_test \
removecut_test \
audioinfo_test \
createticket_test \
audiostore_test \
trimaudio_test \
listlogs_test \
listservices_test \
addlog_test \
deletelog_test \
listlog_test \
savelog_test \
editcart_test \
editcut_test \
importcart_test \
exportcart_test \
exportpeaks_test \
deleteaudio_test \
copyaudio_test \
getversion_test \
getuseragent_test
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
listlog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
listlogs_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
savelog_test_LDADD = -lrivwebcapi -lexpat -lcurl -lm
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
CLEANFILES = *~\
moc_*
MAINTAINERCLEANFILES = *~\
*.tar.gz\
aclocal.m4\
configure\
Makefile.in\
moc_*

View File

@@ -0,0 +1,341 @@
/* addcart_test.c
*
* Test the addcart library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_addcart.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_removecart.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
struct rd_cart *cart=0;
char buf[BUFSIZ];
char *p;
long int cartnum=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Add ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = 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_AddCart(&cart,
host,
user,
passwd,
ticket,
"TEST",
"audio",
(unsigned)cartnum,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for GROUP or TYPE or Cart Exists\n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Error! \n");
break;
case 404:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Cart! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
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 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);
printf("Cart Metadata year value = %d\n",cart->cart_metadata_datetime.tm_year);
printf("Cart Metadata month value = %d\n",cart->cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value = %d\n",cart->cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value = %d\n",cart->cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value = %d\n",cart->cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value = %d\n",cart->cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value = %d\n",cart->cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst value = %d\n",cart->cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",cart->cart_metadata_datetime);
printf("\n");
free(cart);
// Add test of create_ticket function
int i;
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
strcpy( ticket,myticket[i].ticket);
}
user="USER";
passwd="blah";
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the Remove Cart function
// so we can add it again - using the ticket for both
result=RD_RemoveCart( host,
user,
passwd,
ticket,
(unsigned)cartnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
/*exit(256);*/
}
//
// List the Results
//
printf(" Cart %ld was successfully deleted!\n",cartnum);
printf("\n");
result=RD_AddCart(&cart,
host,
user,
passwd,
ticket,
"TEST",
"audio",
(unsigned)cartnum,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for GROUP or TYPE");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Error! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Group Exists! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Cart! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
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 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);
printf("Cart Metadata year value = %d\n",cart->cart_metadata_datetime.tm_year);
printf("Cart Metadata month value = %d\n",cart->cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value = %d\n",cart->cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value = %d\n",cart->cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value = %d\n",cart->cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value = %d\n",cart->cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value = %d\n",cart->cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst value = %d\n",cart->cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",cart->cart_metadata_datetime);
printf("\n");
free(cart);
exit(0);
}

View File

@@ -0,0 +1,459 @@
/* addcut.c
*
* Test the addcut library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_addcut.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_removecut.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
struct rd_cut *cut=0;
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Add a CUT to==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = 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_AddCut(&cut,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Missing Cart Number");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Cart! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized ! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cut Name: %s\n",cut->cut_name);
printf(" Cut Cart Number: %u\n",cut->cut_cart_number);
printf(" Cut Number: %u\n",cut->cut_cut_number);
printf(" Evergreen: %d\n",cut->cut_evergreen);
printf(" Cut Description: %s\n",cut->cut_description);
printf(" Cut Outcue: %s\n",cut->cut_outcue);
printf(" Cut ISRC: %s\n",cut->cut_isrc);
printf(" Cut ISCI: %s\n",cut->cut_isci);
printf(" Cut Length: %u\n",cut->cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cut->cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cut->cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cut->cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cut->cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cut->cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cut->cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cut->cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cut->cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cut->cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cut->cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cut->cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cut->cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cut->cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cut->cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cut->cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cut->cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cut->cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cut->cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cut->cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cut->cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cut->cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cut->cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cut->cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cut->cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cut->cut_sun);
printf(" Cut Mon: %d\n",cut->cut_mon);
printf(" Cut Tue: %d\n",cut->cut_tue);
printf(" Cut Wed: %d\n",cut->cut_wed);
printf(" Cut Thu: %d\n",cut->cut_thu);
printf(" Cut Fri: %d\n",cut->cut_fri);
printf(" Cut Sat: %d\n",cut->cut_sat);
printf(" Cut Start Daypart: %s\n",cut->cut_start_daypart);
printf(" Cut End Daypart: %s\n",cut->cut_end_daypart);
printf(" Cut Origin Name: %s\n",cut->cut_origin_name);
printf(" Cut Weight: %u\n",cut->cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cut->cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cut->cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cut->cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cut->cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cut->cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cut->cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cut->cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cut->cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cut->cut_play_counter);
printf(" Cut Local Counter: %u\n",cut->cut_local_counter);
printf(" Cut Validity: %u\n",cut->cut_validity);
printf(" Cut Coding Format: %u\n",cut->cut_coding_format);
printf(" Cut Sample Rate: %u\n",cut->cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cut->cut_bit_rate);
printf(" Cut Channels: %u\n",cut->cut_channels);
printf(" Cut Play Gain: %d\n",cut->cut_play_gain);
printf(" Cut Start Point: %d\n",cut->cut_start_point);
printf(" Cut End Point: %d\n",cut->cut_end_point);
printf(" Cut Fade Up Point: %d\n",cut->cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cut->cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cut->cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cut->cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cut->cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cut->cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cut->cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cut->cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cut->cut_talk_end_point);
printf("\n");
cutnum = cut->cut_cut_number;
free(cut);
// Add test of create_ticket function
int i;
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
strcpy( ticket,myticket[i].ticket);
}
user="USER";
passwd="blah";
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the Remove Cut function
// so we can add it again - using the ticket for both
result=RD_RemoveCut( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld Cut Number: %ld was successfully deleted!\n",
cartnum, cutnum);
printf("\n");
//
// Call the function
//
result=RD_AddCut(&cut,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Missing Cart Number");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Cart! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized ! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cut Name: %s\n",cut->cut_name);
printf(" Cut Cart Number: %u\n",cut->cut_cart_number);
printf(" Cut Number: %u\n",cut->cut_cut_number);
printf(" Evergreen: %d\n",cut->cut_evergreen);
printf(" Cut Description: %s\n",cut->cut_description);
printf(" Cut Outcue: %s\n",cut->cut_outcue);
printf(" Cut ISRC: %s\n",cut->cut_isrc);
printf(" Cut ISCI: %s\n",cut->cut_isci);
printf(" Cut Length: %u\n",cut->cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cut->cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cut->cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cut->cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cut->cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cut->cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cut->cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cut->cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cut->cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cut->cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cut->cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cut->cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cut->cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cut->cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cut->cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cut->cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cut->cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cut->cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cut->cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cut->cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cut->cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cut->cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cut->cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cut->cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cut->cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cut->cut_sun);
printf(" Cut Mon: %d\n",cut->cut_mon);
printf(" Cut Tue: %d\n",cut->cut_tue);
printf(" Cut Wed: %d\n",cut->cut_wed);
printf(" Cut Thu: %d\n",cut->cut_thu);
printf(" Cut Fri: %d\n",cut->cut_fri);
printf(" Cut Sat: %d\n",cut->cut_sat);
printf(" Cut Start Daypart: %s\n",cut->cut_start_daypart);
printf(" Cut End Daypart: %s\n",cut->cut_end_daypart);
printf(" Cut Origin Name: %s\n",cut->cut_origin_name);
printf(" Cut Weight: %u\n",cut->cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cut->cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cut->cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cut->cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cut->cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cut->cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cut->cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cut->cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cut->cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cut->cut_play_counter);
printf(" Cut Local Counter: %u\n",cut->cut_local_counter);
printf(" Cut Validity: %u\n",cut->cut_validity);
printf(" Cut Coding Format: %u\n",cut->cut_coding_format);
printf(" Cut Sample Rate: %u\n",cut->cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cut->cut_bit_rate);
printf(" Cut Channels: %u\n",cut->cut_channels);
printf(" Cut Play Gain: %d\n",cut->cut_play_gain);
printf(" Cut Start Point: %d\n",cut->cut_start_point);
printf(" Cut End Point: %d\n",cut->cut_end_point);
printf(" Cut Fade Up Point: %d\n",cut->cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cut->cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cut->cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cut->cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cut->cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cut->cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cut->cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cut->cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cut->cut_talk_end_point);
printf("\n");
cutnum = cut->cut_cut_number;
free(cut);
//
// Call the Remove Cut function
// so we can add it again - using the ticket for both
result=RD_RemoveCut( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld Cut Number: %ld was successfully deleted!\n",
cartnum, cutnum);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,269 @@
/* addlog_test.c
*
* Test the addlog library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_addlog.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_deletelog.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
#include "common.h"
int main(int argc,char *argv[])
{
char logname[BUFSIZ]={0};
char servicename[BUFSIZ]={0};
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 = "";
}
PromptForString("Please enter the Name of the Log that you want to Add ==> ",
logname,BUFSIZ);
PromptForString("Please enter the Name of the Service for the log that you want to Add ==> ",
servicename,BUFSIZ);
// 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_AddLog(host,
user,
passwd,
ticket,
logname,
servicename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME or SERVICE_NAME");
break;
case 404:
fprintf(stderr,"ERROR: No Such Service Exists! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Success\n");
// Add test of create_ticket function - wont be able to add though
// because we already added it!
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
// Delete the log before we try to use a ticket to add it.
//
// Call the function
//
result=RD_DeleteLog(host,
user,
passwd,
ticket,
logname,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Delete Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// Call the function
//
result=RD_AddLog(host,
user,
passwd,
ticket,
logname,
servicename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME or SERVICE_NAME");
break;
case 404:
fprintf(stderr,"ERROR: No Such Service Exists! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Create Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Success\n");
// Remove the log for the final time
//
result=RD_DeleteLog(host,
user,
passwd,
ticket,
logname,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Delete Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
printf("Log was deleted!\n");
exit(0);
}

View File

@@ -0,0 +1,218 @@
/* assignschedcodes.c
*
* Test the assignschedcode library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_assignschedcode.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
char buf[BUFSIZ];
char code[BUFSIZ];
char *p;
long int cart=0;
char *codeptr;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
codeptr = &code[0];
printf("Please enter the Scheduler Code assign to cart# %ld ==>",cart);
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
for (i = 0; i < strlen(buf) ; i++) {
if (buf[i]>32) {
strncpy(codeptr,&buf[i],1);
codeptr++;
}
}
}
strcat(code,"\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_AssignSchedCode( host,
user,
passwd,
ticket,
(unsigned)cart,
code,
user_agent);
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/Code Number! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Code Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
printf(" Scheduler Code %s was successfully added to Cart %ld !\n",code,cart);
printf("\n");
// Add test of create_ticket function
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
// Call the function
//
result= RD_AssignSchedCode( host,
user,
passwd,
ticket,
(unsigned)cart,
code,
user_agent);
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/Code Number! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Code Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
printf(" Scheduler Code %s was successfully added to Cart %ld !\n",code,cart);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,255 @@
/*audioinfo_test.c
*
* Test the audioinfo WEB library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_audioinfo.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_audioinfo *audioinfo=0;
char buf[BUFSIZ];
char *p;
long int cart=0;
long int cut=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
printf("Please enter the Cut Number for the Cart used above ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cut = 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_AudioInfo(&audioinfo,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
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/Cut Number or Unknown Format\n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Audio Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %u\n",audioinfo[i].cart_number);
printf(" Cut Number: %u\n",audioinfo[i].cut_number);
printf(" Format: %d\n",audioinfo[i].format);
printf(" Channels: %d\n",audioinfo[i].channels);
printf(" Sample Rate: %d\n",audioinfo[i].samplerate);
printf(" Frames: %u\n",audioinfo[i].frames);
printf(" Length: %u\n",audioinfo[i].length);
printf("\n");
}
//
// Free the audioinfo list when finished with it
//
free(audioinfo);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_AudioInfo(&audioinfo,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
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/Cut Number or Unknown Format\n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Audio Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %u\n",audioinfo[i].cart_number);
printf(" Cut Number: %u\n",audioinfo[i].cut_number);
printf(" Format: %d\n",audioinfo[i].format);
printf(" Channels: %d\n",audioinfo[i].channels);
printf(" Sample Rate: %d\n",audioinfo[i].samplerate);
printf(" Frames: %u\n",audioinfo[i].frames);
printf(" Length: %u\n",audioinfo[i].length);
printf("\n");
}
//
// Free the audioinfo list when finished with it
//
free(audioinfo);
exit(0);
}

View File

@@ -0,0 +1,204 @@
/*audiostore_test.c
*
* Test the audiostore WEB library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_audiostore.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_audiostore *audiostore=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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_AudioStore(&audiostore,
host,
user,
passwd,
ticket,
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: Internal Error - Exiting!\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Free Bytes: %lu\n",audiostore[i].freebytes);
printf(" Total Bytes: %lu\n",audiostore[i].totalbytes);
printf("\n");
}
//
// Free the audio store list when finished with it
//
free(audiostore);
// Add test of create_ticket function - wont be able to add though
// because we already added it!
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_AudioStore(&audiostore,
host,
user,
passwd,
ticket,
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: Internal Error - Exiting!\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Free Bytes: %lu\n",audiostore[i].freebytes);
printf(" Total Bytes: %lu\n",audiostore[i].totalbytes);
printf("\n");
}
//
// Free the audio store list when finished with it
//
free(audiostore);
exit(0);
}

View File

@@ -0,0 +1,57 @@
/* common.c
*
* Common routines used by test harnesses for the Rivendell C API
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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 <ctype.h>
#include <stdio.h>
#include <string.h>
#include "common.h"
void TrimWhitespace(char *str)
{
int i;
int j;
for(i=0;i<strlen(str);i++) {
if(!isspace(str[i])) {
memmove(str,str+i,strlen(str)+1);
for(j=i+1;j<strlen(str);j++) {
if(isspace(str[j])) {
str[j]=0;
return;
}
}
return;
}
}
}
int PromptForString(const char *prompt,char str[],int len)
{
printf("%s",prompt);
fflush(stdout);
if(fgets(str,len,stdin)==NULL) {
return -1;
}
TrimWhitespace(str);
return strlen(str);
}

View File

@@ -0,0 +1,28 @@
/* common.h
*
* Common routines used by test harnesses for the Rivendell C API
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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 COMMON_H
#define COMMON_H
int PromptForString(const char *prompt,char str[],int len);
#endif /* COMMON_H */

View File

@@ -0,0 +1,257 @@
/* copyaudio_test.c
*
* Test the Copy Audio API library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_copyaudio.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int src_cartnum=0;
long int src_cutnum=0;
long int dest_cartnum=0;
long int dest_cutnum=0;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 of the source audio that you want to copy from: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
src_cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number of the source audio that you want to copy from: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
src_cutnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
//
printf("Please enter the Cart Number of the destination audio that you want to copy to: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
dest_cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number of the destination audio that you want to copy to: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
dest_cutnum = 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_CopyAudio( host,
user,
passwd,
ticket,
(unsigned)src_cartnum,
(unsigned)src_cutnum,
(unsigned)dest_cartnum,
(unsigned)dest_cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Cart/Cut Missing ! \n");
break;
case 404:
fprintf(stderr," ERROR: No Such Cart/Cut Exists! Or \n");
fprintf(stderr, " UnAuthorized! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld Audio was successfully copied to Cart: %ld - Cut: %ld!\n",
src_cartnum, src_cutnum, dest_cartnum, dest_cutnum);
printf("\n");
// Add test of create_ticket function
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_CopyAudio( host,
user,
passwd,
ticket,
(unsigned)src_cartnum,
(unsigned)src_cutnum,
(unsigned)dest_cartnum,
(unsigned)dest_cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Cart/Cut Missing ! \n");
break;
case 404:
fprintf(stderr," ERROR: No Such Cart/Cut Exists! Or \n");
fprintf(stderr, " UnAuthorized! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld Audio was successfully copied to Cart: %ld - Cut: %ld!\n",
src_cartnum, src_cutnum, dest_cartnum, dest_cutnum);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,118 @@
/*createticket_test.c
*
* Test the Create Ticket WEB library.
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_ticketinfo *ticketinfo=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char user_agent[255];
/* 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_CreateTicket(&ticketinfo,
host,
user,
passwd,
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\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Ticket: %s\n",ticketinfo[i].ticket);
printf("Ticket Expire year value = %d\n",ticketinfo->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",ticketinfo->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",ticketinfo->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",ticketinfo->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",ticketinfo->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",ticketinfo->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",ticketinfo->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",ticketinfo->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
//
// Free the ticketinfo list when finished with it
//
free(ticketinfo);
exit(0);
}

View File

@@ -0,0 +1,133 @@
/* deleteaudio_test.c
*
* Test the Delete Audio API library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_deleteaudio.h>
#include <rivwebcapi/rd_getversion.h>
#include <rivwebcapi/rd_getuseragent.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 of the audio that you want to delete: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number of the audio that you want to delete: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = 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_DeleteAudio( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cart: %ld Audio was successfully deleted!\n",cartnum,cutnum);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,107 @@
/* deletelog_test.c
*
* Test the deletelog library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_deletelog.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
#include "common.h"
int main(int argc,char *argv[])
{
char logname[BUFSIZ]={0};
char *host;
char *user;
char *passwd;
char user_agent[255];
char ticket[41]="";
/* 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 = "";
}
PromptForString("Please enter the Name of the Log that you want to Delete ==> ",
logname,BUFSIZ);
// 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_DeleteLog(host,
user,
passwd,
ticket,
logname,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Delete Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Success\n");
exit(0);
}

View File

@@ -0,0 +1,332 @@
/* editcart_test.c
*
* Test the editcart library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_editcart.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getversion.h>
#include <rivwebcapi/rd_getuseragent.h>
int main(int argc,char *argv[])
{
int i;
struct rd_cart *carts=0;
struct edit_cart_values edit_cart;
char buf[BUFSIZ];
char *p;
long int cart=0;
unsigned numrecs;
char mynotes[1024];
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
/* Build the edit_cart_values structure */
memset(&edit_cart,0,sizeof(struct edit_cart_values));
strcpy (mynotes, " This is the first line of notes");
strcat (mynotes,"\n");
strcat (mynotes, " This is the second line of notes");
strcat (mynotes,"\n");
strcat (mynotes, " This is the third line of notes");
strcat (mynotes,"\n");
edit_cart.use_cart_notes=1; /* Set true */
strcpy (edit_cart.cart_notes,mynotes);
edit_cart.use_cart_title=1;
strcpy(edit_cart.cart_title,"This is the new title");
edit_cart.use_cart_composer=1;
strcpy(edit_cart.cart_composer,"Thomas VanderBrook");
// 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_EditCart(&carts,
edit_cart,
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 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 409:
fprintf(stderr,"ERROR: Invalid Cart Number! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf(" Cart Notes: %s\n",carts[i].cart_notes);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
free(carts);
// Add test of create_ticket function - wont be able to add though
// because we already added it!
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
strcpy(edit_cart.cart_title,"This is The title using TICKET ");
strcpy(edit_cart.cart_composer,"Johann Sebastian Bach");
//
// Call the function
//
result= RD_EditCart(&carts,
edit_cart,
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 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 409:
fprintf(stderr,"ERROR: Invalid Cart Number! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf(" Cart Notes: %s\n",carts[i].cart_notes);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
free(carts);
exit(0);
}

View File

@@ -0,0 +1,440 @@
/* editcart_test.c
*
* Test the editcart library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_editcut.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_cut *cuts=0;
struct edit_cut_values edit_cut;
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
memset(&edit_cut,0,sizeof(struct edit_cut_values));
edit_cut.use_cut_description=1; /* Set true */
strcpy (edit_cut.cut_description,"This is a new description for cut");
edit_cut.use_cut_weight=1;
edit_cut.cut_weight = 2;
// start_date = "2017-06-21 08:14;55
edit_cut.cut_start_datetime.tm_year = 117;
edit_cut.cut_start_datetime.tm_mon = 5;
edit_cut.cut_start_datetime.tm_mday = 21;
edit_cut.cut_start_datetime.tm_hour = 8;
edit_cut.cut_start_datetime.tm_min = 14;
edit_cut.cut_start_datetime.tm_sec = 55;
edit_cut.use_cut_start_datetime=1;
// end = "2017-09-01 05:00:00
edit_cut.cut_end_datetime.tm_year = 117;
edit_cut.cut_end_datetime.tm_mon = 8;
edit_cut.cut_end_datetime.tm_mday = 1;
edit_cut.cut_end_datetime.tm_hour = 5;
edit_cut.cut_end_datetime.tm_min = 0;
edit_cut.cut_end_datetime.tm_sec = 0;
edit_cut.use_cut_end_datetime=1;
// 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_EditCut(&cuts,
edit_cut,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
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: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cut list when finished with it
//
free(cuts);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
// start_date = "1999-01-01 00:00:00
edit_cut.cut_start_datetime.tm_year = 99;
edit_cut.cut_start_datetime.tm_mon = 0;
edit_cut.cut_start_datetime.tm_mday = 1;
edit_cut.cut_start_datetime.tm_hour = 0;
edit_cut.cut_start_datetime.tm_min = 0;
edit_cut.cut_start_datetime.tm_sec = 0;
edit_cut.use_cut_start_datetime=1;
// end = "2017-11-01 11:11:11
edit_cut.cut_end_datetime.tm_year = 117;
edit_cut.cut_end_datetime.tm_mon = 10;
edit_cut.cut_end_datetime.tm_mday = 1;
edit_cut.cut_end_datetime.tm_hour = 11;
edit_cut.cut_end_datetime.tm_min = 11;
edit_cut.cut_end_datetime.tm_sec = 11;
edit_cut.use_cut_end_datetime=1;
//
// Call the function
//
result= RD_EditCut(&cuts,
edit_cut,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
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: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cut list when finished with it
//
free(cuts);
exit(0);
}

View File

@@ -0,0 +1,256 @@
/* exportcart_test.c
*
* Test the Export Cart/Cut API Library
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_export.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
char filename[BUFSIZ];
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Export ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number that you want to Export ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Destination File Name ==> ");
if (fgets(filename,sizeof(filename),stdin) != NULL)
{
}
// 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_ExportCart( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
0,
(unsigned)2,
44100,
0,
0,
-1,
-1,
0,
0,
filename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: No Source Audio Exists! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld - Filename: %s was successfully exported!\n",cartnum,cutnum,filename);
printf("\n");
// Add test of create_ticket function - wont be able to add though
// because we already added it!
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_ExportCart( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
0,
(unsigned)2,
44100,
0,
0,
-1,
-1,
0,
0,
filename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld - Filename: %s was successfully exported!\n",cartnum,cutnum,filename);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,236 @@
/* exportpeaks_test.c
*
* Test the Export Peaks API Library
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_exportpeaks.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getversion.h>
#include <rivwebcapi/rd_getuseragent.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
char filename[BUFSIZ];
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Export ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number that you want to Export ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Destination File Name ==> ");
if (fgets(filename,sizeof(filename),stdin) != NULL)
{
}
// 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_ExportPeaks( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
filename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld - Filename: %s Peak File successfully created!\n",cartnum,cutnum,filename);
printf("\n");
// Add test of create_ticket function
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_ExportPeaks( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
filename,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr,"ERROR: Invalid Input Parameters! \n");
break;
case 403:
fprintf(stderr,"ERROR: User Authentification Failed! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cut: %ld - Filename: %s Peak File successfully created!\n",cartnum,cutnum,filename);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,43 @@
/* getuseragent.c
*
* Test the getuseragent library routine.
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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_getuseragent.h>
int main(int argc,char *argv[])
{
char user_agent_string[255];
// Call the function
//
strcpy(user_agent_string,RD_GetUserAgent());
//
//
// List the Result
//
printf(" The User Agent String is: %s\n",user_agent_string);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,43 @@
/* getversion.c
*
* Test the getversion library routine.
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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_getversion.h>
int main(int argc,char *argv[])
{
char api_version[20];
// Call the function
//
strcpy(api_version,RD_GetVersion());
//
//
// List the Result
//
printf(" The Rivendell API Version Number: %s\n",api_version);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,293 @@
/* import_test.c
*
* Test the Impourt Cart/Cut API Library
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_import.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
int create_flag=0;
char filename[BUFSIZ];
char group_name[BUFSIZ]="";
char *host;
char *user;
char *passwd;
char ticket[41]="";
char title[BUFSIZ]="";
struct rd_cartimport *cartimport=0;
unsigned numrecs;
char user_agent[255];
/* 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 that you want to Import To ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number that you want to import To ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the File Name that you want to Import ==> ");
if (fgets(filename,sizeof(filename),stdin) != NULL)
{
}
printf("Do you want to Create Cart If Doesn't Exist - (Yes or No) ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
if (( buf[0] != '\n') && (buf[0] =='Y'))
{
create_flag = 1;
printf("Please enter the Group Name ==> ");
if (fgets(group_name,sizeof(group_name),stdin) != NULL)
{
}
printf("Optional Title Field (Checks Duplicate titles)===> ");
if (fgets(title,sizeof(title),stdin) != NULL)
{
}
}
}
// Add the Rivendell-C-API Version
strcat(user_agent,RD_GetUserAgent());
strcat(user_agent,RD_GetVersion());
strcat(user_agent," (Test Suite)");
//
// Call the function
//
int result= RD_ImportCart(&cartimport,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
(unsigned)2,
0,
0,
0,
create_flag,
group_name,
title,
filename,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: %s \n",cartimport->error_string);
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf("Cart Number: %u\n",cartimport[i].cart_number);
printf("Cut Number: %u\n",cartimport[i].cut_number);
printf("\n");
printf(" Cart: %u - Cut: %u - Filename: %s was successfully imported!\n",cartimport[i].cart_number,
cartimport[i].cut_number,
filename);
printf("\n");
}
//
// Free the cart import info when finished with it
//
free(cartimport);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
result= RD_ImportCart(&cartimport,
host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
(unsigned)2,
0,
0,
0,
create_flag,
group_name,
title,
filename,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Something went wrong! Result Code = %d\n",result);
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: %s \n",cartimport->error_string);
//fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf("Cart Number: %u\n",cartimport[i].cart_number);
printf("Cut Number: %u\n",cartimport[i].cut_number);
printf("\n");
printf(" Cart: %u - Cut: %u - Filename: %s was successfully imported!\n",cartimport[i].cart_number,
cartimport[i].cut_number,
filename);
printf("\n");
}
//
// Free the cart import info when finished with it
//
free(cartimport);
exit(0);
}

View File

@@ -0,0 +1,289 @@
/* listcart_test.c
*
* Test the listcart library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listcart.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
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];
/* 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_ListCart(&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++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %03u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListCart(&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++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %03u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
free(carts);
exit(0);
}

View File

@@ -0,0 +1,277 @@
/* listcarts_test.c
*
* Test the listcarts library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listcarts.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_cart *carts=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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_ListCarts(&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++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %03u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListCarts(&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++) {
printf(" Cart Number: %d\n",carts[i].cart_number);
printf(" Cart Type: %d\n",carts[i].cart_type);
printf(" Group Name: %s\n",carts[i].cart_grp_name);
printf(" Cart Title: %s\n",carts[i].cart_title);
printf(" Cart Artist: %s\n",carts[i].cart_artist);
printf(" Cart Album: %s\n",carts[i].cart_album);
printf(" Cart Year: %d\n",carts[i].cart_year);
printf(" Cart Label: %s\n",carts[i].cart_label);
printf(" Cart Client: %s\n",carts[i].cart_client);
printf(" Cart Agency: %s\n",carts[i].cart_agency);
printf(" Cart Publisher: %s\n",carts[i].cart_publisher);
printf(" Cart Composer: %s\n",carts[i].cart_composer);
printf(" Cart Conductor: %s\n",carts[i].cart_conductor);
printf(" Cart User Defined: %s\n",carts[i].cart_user_defined);
printf(" Cart Usage Code: %d\n",carts[i].cart_usage_code);
printf(" Cart Forced Length: %d\n",carts[i].cart_forced_length);
printf(" Cart Average Length: %d\n",carts[i].cart_average_length);
printf(" Cart Length Deviation: %d\n",carts[i].cart_length_deviation);
printf("Cart Average Segue Length: %d\n",carts[i].cart_average_segue_length);
printf(" Cart Average Hook Length: %d\n",carts[i].cart_average_hook_length);
printf(" Cart Cut Quantity: %u\n",carts[i].cart_cut_quantity);
printf(" Cart Last Cut Played: %03u\n",carts[i].cart_last_cut_played);
printf(" Cart Validity: %u\n",carts[i].cart_validity);
printf(" Cart Enforce Length: %d\n",carts[i].cart_enforce_length);
printf(" Cart Asyncronous: %d\n",carts[i].cart_asyncronous);
printf(" Cart Owner: %s\n",carts[i].cart_owner);
printf("Cart Metadata year value : %d\n",carts[i].cart_metadata_datetime.tm_year);
printf("Cart Metadata mon value : %d\n",carts[i].cart_metadata_datetime.tm_mon);
printf("Cart Metadata day value : %d\n",carts[i].cart_metadata_datetime.tm_mday);
printf("Cart Metadata wday value : %d\n",carts[i].cart_metadata_datetime.tm_wday);
printf("Cart Metadata hour value : %d\n",carts[i].cart_metadata_datetime.tm_hour);
printf("Cart Metadata min value : %d\n",carts[i].cart_metadata_datetime.tm_min);
printf("Cart Metadata sec value : %d\n",carts[i].cart_metadata_datetime.tm_sec);
printf("Cart Metadata isdst : %d\n",carts[i].cart_metadata_datetime.tm_isdst);
//printf(" Cart Metadata Datetime: %s\n",carts[i].cart_metadata_datetime);
printf("\n");
}
//
// Free the cart list when finished with it
//
free(carts);
exit(0);
}

View File

@@ -0,0 +1,224 @@
/* listcartschedulcodes.c
*
* Test the listcartschedulcodes library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listcartschedcodes.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_schedcodes *schedcodes=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];
/* 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_ListCartSchedCodes(&schedcodes,
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
//
printf(" Cart Number: %ld\n", cart);
for(i=0;i<numrecs;i++) {
printf(" Code: %s\n",schedcodes[i].code);
printf(" Description: %s\n",schedcodes[i].description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(schedcodes);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
// Call the function
//
result= RD_ListCartSchedCodes(&schedcodes,
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
//
printf(" Cart Number: %ld\n", cart);
for(i=0;i<numrecs;i++) {
printf(" Code: %s\n",schedcodes[i].code);
printf(" Description: %s\n",schedcodes[i].description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(schedcodes);
exit(0);
}

View File

@@ -0,0 +1,395 @@
/* listcuts_test.c
*
* Test the listcuts library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listcut.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_cut *cuts=0;
char buf[BUFSIZ];
char *p;
long int cart=0;
long int cut=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
printf("Please enter the Cut Number for the Cart used above ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cut = 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_ListCut(&cuts,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
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");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Origin Login Name: %s\n",cuts[i].cut_origin_login_name);
printf(" Source Hostname: %s\n",cuts[i].cut_source_hostname);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cuts list when finished with it
//
free(cuts);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_ListCut(&cuts,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
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");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Origin Login Name: %s\n",cuts[i].cut_origin_login_name);
printf(" Source Hostname: %s\n",cuts[i].cut_source_hostname);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cuts list when finished with it
//
free(cuts);
exit(0);
}

View File

@@ -0,0 +1,375 @@
/* listcuts_test.c
*
* Test the listcuts library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listcuts.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_cut *cuts=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];
/* 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 that you want to List CUTS ==> ");
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_ListCuts(&cuts,
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");
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++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Origin Login Name: %s\n",cuts[i].cut_origin_login_name);
printf(" Source Hostname: %s\n",cuts[i].cut_source_hostname);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cut list when finished with it
//
free(cuts);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_ListCuts(&cuts,
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");
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++) {
printf(" Cut Name: %s\n",cuts[i].cut_name);
printf(" Cut Cart Number: %u\n",cuts[i].cut_cart_number);
printf(" Cut Number: %u\n",cuts[i].cut_cut_number);
printf(" Evergreen: %d\n",cuts[i].cut_evergreen);
printf(" Cut Description: %s\n",cuts[i].cut_description);
printf(" Cut Outcue: %s\n",cuts[i].cut_outcue);
printf(" Cut ISRC: %s\n",cuts[i].cut_isrc);
printf(" Cut ISCI: %s\n",cuts[i].cut_isci);
printf(" Cut Length: %u\n",cuts[i].cut_length);
printf(" Cut Origin Date Time\n");
printf("Cut Origin year value : %d\n",cuts[i].cut_origin_datetime.tm_year);
printf("Cut Origin month value : %d\n",cuts[i].cut_origin_datetime.tm_mon);
printf("Cut Origin day value : %d\n",cuts[i].cut_origin_datetime.tm_mday);
printf("Cut Origin wday value : %d\n",cuts[i].cut_origin_datetime.tm_wday);
printf("Cut Origin hour value : %d\n",cuts[i].cut_origin_datetime.tm_hour);
printf("Cut Origin min value : %d\n",cuts[i].cut_origin_datetime.tm_min);
printf("Cut Origin sec value : %d\n",cuts[i].cut_origin_datetime.tm_sec);
printf("Cut Origin isdst value : %d\n",cuts[i].cut_origin_datetime.tm_isdst);
printf(" Cut Start Date Time\n");
printf("Cut Start year value : %d\n",cuts[i].cut_start_datetime.tm_year);
printf("Cut Start month value : %d\n",cuts[i].cut_start_datetime.tm_mon);
printf("Cut Start day value : %d\n",cuts[i].cut_start_datetime.tm_mday);
printf("Cut Start wday value : %d\n",cuts[i].cut_start_datetime.tm_wday);
printf("Cut Start hour value : %d\n",cuts[i].cut_start_datetime.tm_hour);
printf("Cut Start min value : %d\n",cuts[i].cut_start_datetime.tm_min);
printf("Cut Start sec value : %d\n",cuts[i].cut_start_datetime.tm_sec);
printf("Cut Start isdst value : %d\n",cuts[i].cut_start_datetime.tm_isdst);
printf(" Cut End Date Time\n");
printf("Cut End year value : %d\n",cuts[i].cut_end_datetime.tm_year);
printf("Cut End month value : %d\n",cuts[i].cut_end_datetime.tm_mon);
printf("Cut End day value : %d\n",cuts[i].cut_end_datetime.tm_mday);
printf("Cut End wday value : %d\n",cuts[i].cut_end_datetime.tm_wday);
printf("Cut End hour value : %d\n",cuts[i].cut_end_datetime.tm_hour);
printf("Cut End min value : %d\n",cuts[i].cut_end_datetime.tm_min);
printf("Cut End sec value : %d\n",cuts[i].cut_end_datetime.tm_sec);
printf("Cut End isdst value : %d\n",cuts[i].cut_end_datetime.tm_isdst);
printf(" Cut Sun: %d\n",cuts[i].cut_sun);
printf(" Cut Mon: %d\n",cuts[i].cut_mon);
printf(" Cut Tue: %d\n",cuts[i].cut_tue);
printf(" Cut Wed: %d\n",cuts[i].cut_wed);
printf(" Cut Thu: %d\n",cuts[i].cut_thu);
printf(" Cut Fri: %d\n",cuts[i].cut_fri);
printf(" Cut Sat: %d\n",cuts[i].cut_sat);
printf(" Cut Start Daypart: %s\n",cuts[i].cut_start_daypart);
printf(" Cut End Daypart: %s\n",cuts[i].cut_end_daypart);
printf(" Cut Origin Name: %s\n",cuts[i].cut_origin_name);
printf(" Cut Origin Login Name: %s\n",cuts[i].cut_origin_login_name);
printf(" Source Hostname: %s\n",cuts[i].cut_source_hostname);
printf(" Cut Weight: %u\n",cuts[i].cut_weight);
printf(" Cut Last Play Date Time\n");
printf("Cut LastPlay year value : %d\n",cuts[i].cut_last_play_datetime.tm_year);
printf("Cut LastPlay month value : %d\n",cuts[i].cut_last_play_datetime.tm_mon);
printf("Cut LastPlay day value : %d\n",cuts[i].cut_last_play_datetime.tm_mday);
printf("Cut LastPlay wday value : %d\n",cuts[i].cut_last_play_datetime.tm_wday);
printf("Cut LastPlay hour value : %d\n",cuts[i].cut_last_play_datetime.tm_hour);
printf("Cut LastPlay min value : %d\n",cuts[i].cut_last_play_datetime.tm_min);
printf("Cut LastPlay sec value : %d\n",cuts[i].cut_last_play_datetime.tm_sec);
printf("Cut LastPlay isdst value : %d\n",cuts[i].cut_last_play_datetime.tm_isdst);
printf(" Cut Play Counter: %u\n",cuts[i].cut_play_counter);
printf(" Cut Local Counter: %u\n",cuts[i].cut_local_counter);
printf(" Cut Validity: %u\n",cuts[i].cut_validity);
printf(" Cut Coding Format: %u\n",cuts[i].cut_coding_format);
printf(" Cut Sample Rate: %u\n",cuts[i].cut_sample_rate);
printf(" Cut Bit Rate: %u\n",cuts[i].cut_bit_rate);
printf(" Cut Channels: %u\n",cuts[i].cut_channels);
printf(" Cut Play Gain: %d\n",cuts[i].cut_play_gain);
printf(" Cut Start Point: %d\n",cuts[i].cut_start_point);
printf(" Cut End Point: %d\n",cuts[i].cut_end_point);
printf(" Cut Fade Up Point: %d\n",cuts[i].cut_fadeup_point);
printf(" Cut Fade Down Point: %d\n",cuts[i].cut_fadedown_point);
printf(" Cut Segue Start Point: %d\n",cuts[i].cut_segue_start_point);
printf(" Cut Segue End Point: %d\n",cuts[i].cut_segue_end_point);
printf(" Cut Segue Gain: %d\n",cuts[i].cut_segue_gain);
printf(" Cut Hook Start Point: %d\n",cuts[i].cut_hook_start_point);
printf(" Cut Hook End Point: %d\n",cuts[i].cut_hook_end_point);
printf(" Cut Talk Start Point: %d\n",cuts[i].cut_talk_start_point);
printf(" Cut Talk End Point: %d\n",cuts[i].cut_talk_end_point);
printf("\n");
}
//
// Free the cut list when finished with it
//
free(cuts);
exit(0);
}

View File

@@ -0,0 +1,238 @@
/* listgroup_test.c
*
* Test the listgroups library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listgroup.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
struct rd_group *grp=0;
unsigned numrecs;
char grp_name[BUFSIZ];
char *grpptr;
int i;
char buf[BUFSIZ];
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 = "";
}
grpptr = &grp_name[0];
printf("Please enter the Group Name you want to list ==>");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
for (i = 0; i < strlen(buf) ; i++) {
if (buf[i]>32) {
strncpy(grpptr,&buf[i],1);
grpptr++;
}
}
}
strcat(grp_name,"\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_ListGroup(&grp,
host,
user,
passwd,
ticket,
grp_name,
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 404:
fprintf(stderr,"ERROR: No Such Group Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
if (numrecs==1) {
//
// List the results
//
printf(" Group Name : %s\n",grp[0].grp_name);
printf(" Description: %s\n",grp[0].grp_desc);
printf(" Default cart type: %u\n",grp[0].grp_default_cart_type);
printf(" Low Cart: %06u\n",grp[0].grp_lo_limit);
printf(" High Cart: %06u\n",grp[0].grp_hi_limit);
printf(" Shelf Life: %d\n",grp[0].grp_shelf_life);
printf(" Default Title: %s\n",grp[0].grp_default_title);
printf(" Enforce Cart Range: %u\n",grp[0].grp_enforce_range);
printf(" Incl. in Traffic: %u\n",grp[0].grp_report_tfc);
printf(" Incl. in Music: %u\n",grp[0].grp_report_mus);
printf(" Send Now & Next: %u\n",grp[0].grp_now_next);
printf(" Color: %s\n",grp[0].grp_color);
printf("\n");
}
//
// Free the group list when finished with it
//
free(grp);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListGroup(&grp,
host,
user,
passwd,
ticket,
grp_name,
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 404:
fprintf(stderr,"ERROR: No Such Group Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
if (numrecs==1) {
//
// List the results
//
printf(" Group Name : %s\n",grp[0].grp_name);
printf(" Description: %s\n",grp[0].grp_desc);
printf(" Default cart type: %u\n",grp[0].grp_default_cart_type);
printf(" Low Cart: %06u\n",grp[0].grp_lo_limit);
printf(" High Cart: %06u\n",grp[0].grp_hi_limit);
printf(" Shelf Life: %d\n",grp[0].grp_shelf_life);
printf(" Default Title: %s\n",grp[0].grp_default_title);
printf(" Enforce Cart Range: %u\n",grp[0].grp_enforce_range);
printf(" Incl. in Traffic: %u\n",grp[0].grp_report_tfc);
printf(" Incl. in Music: %u\n",grp[0].grp_report_mus);
printf(" Send Now & Next: %u\n",grp[0].grp_now_next);
printf(" Color: %s\n",grp[0].grp_color);
printf("\n");
}
//
// Free the group list when finished with it
//
free(grp);
exit(0);
}

View File

@@ -0,0 +1,208 @@
/* listgroups_test.c
*
* Test the listgroups library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listgroups.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_group *grps=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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_ListGroups(&grps,
host,
user,
passwd,
ticket,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf("%s:\n",grps[i].grp_name);
printf(" Description: %s\n",grps[i].grp_desc);
printf(" Default cart type: %u\n",grps[i].grp_default_cart_type);
printf(" Low Cart: %06u\n",grps[i].grp_lo_limit);
printf(" High Cart: %06u\n",grps[i].grp_hi_limit);
printf(" Shelf Life: %d\n",grps[i].grp_shelf_life);
printf(" Default Title: %s\n",grps[i].grp_default_title);
printf(" Enforce Cart Range: %u\n",grps[i].grp_enforce_range);
printf(" Incl. in Traffic: %u\n",grps[i].grp_report_tfc);
printf(" Incl. in Music: %u\n",grps[i].grp_report_mus);
printf(" Send Now & Next: %u\n",grps[i].grp_now_next);
printf(" Color: %s\n",grps[i].grp_color);
printf("\n");
}
//
// Free the group list when finished with it
//
free(grps);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListGroups(&grps,
host,
user,
passwd,
ticket,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf("%s:\n",grps[i].grp_name);
printf(" Description: %s\n",grps[i].grp_desc);
printf(" Default cart type: %u\n",grps[i].grp_default_cart_type);
printf(" Low Cart: %06u\n",grps[i].grp_lo_limit);
printf(" High Cart: %06u\n",grps[i].grp_hi_limit);
printf(" Shelf Life: %d\n",grps[i].grp_shelf_life);
printf(" Default Title: %s\n",grps[i].grp_default_title);
printf(" Enforce Cart Range: %u\n",grps[i].grp_enforce_range);
printf(" Incl. in Traffic: %u\n",grps[i].grp_report_tfc);
printf(" Incl. in Music: %u\n",grps[i].grp_report_mus);
printf(" Send Now & Next: %u\n",grps[i].grp_now_next);
printf(" Color: %s\n",grps[i].grp_color);
printf("\n");
}
//
// Free the group list when finished with it
//
free(grps);
exit(0);
}

View File

@@ -0,0 +1,377 @@
/* listlog_test.c
*
* Test the listlog library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listlog.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_logline *logline=0;
char buf[BUFSIZ];
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char starttime_buf[15];
char user_agent[255];
/* 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 Log Name ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
}
// 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_ListLog(&logline,
host,
user,
passwd,
ticket,
buf,
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++) {
printf(" LogLine Line Number: %d\n",logline[i].logline_line);
printf(" LogLine Id: %d\n",logline[i].logline_id);
printf(" LogLine Type: %d\n",logline[i].logline_type);
printf(" LogLine Cart Type: %d\n",logline[i].logline_cart_type);
printf(" LogLine Cart Number: %u\n",logline[i].logline_cart_number);
printf(" LogLine Cut Number: %d\n",logline[i].logline_cut_number);
printf(" LogLine Group Name: %s\n",logline[i].logline_group_name);
printf(" LogLine Group Color: %s\n",logline[i].logline_group_color);
printf(" LogLine Title: %s\n",logline[i].logline_title);
printf(" LogLine Artist: %s\n",logline[i].logline_artist);
printf(" LogLine Album: %s\n",logline[i].logline_album);
printf(" LogLine Year: %d\n",logline[i].logline_year);
printf(" LogLine Label: %s\n",logline[i].logline_label);
printf(" LogLine Client: %s\n",logline[i].logline_client);
printf(" LogLine Agency: %s\n",logline[i].logline_agency);
printf(" LogLine Publisher: %s\n",logline[i].logline_publisher);
printf(" LogLine Composer: %s\n",logline[i].logline_composer);
printf(" LogLine Conductor: %s\n",logline[i].logline_conductor);
printf(" LogLine User Defined: %s\n",logline[i].logline_user_defined);
printf(" LogLine Usage Code: %d\n",logline[i].logline_usage_code);
printf(" LogLine Enforce Length: %d\n",logline[i].logline_enforce_length);
printf(" LogLine Forced Length: %d\n",logline[i].logline_forced_length);
printf(" LogLine Evergreen: %d\n",logline[i].logline_evergreen);
printf(" LogLine Source: %d\n",logline[i].logline_source);
printf(" LogLine Time Type: %d\n",logline[i].logline_time_type);
if(RD_Cnv_msec_to_TString(starttime_buf,14,logline[i].logline_starttime)==0) {
printf(" LogLine Start Time: %d\n",
logline[i].logline_starttime);
}
else {
printf(" LogLine Start Time: %d [%s]\n",
logline[i].logline_starttime,starttime_buf);
}
printf(" LogLine Transition Type: %d\n",logline[i].logline_transition_type);
printf(" LogLine Cut Quantity: %d\n",logline[i].logline_cut_quantity);
printf(" LogLine Last Cut Played: %d\n",logline[i].logline_last_cut_played);
printf(" LogLine Marker Comment: %s\n",logline[i].logline_marker_comment);
printf(" LogLine Marker Label: %s\n",logline[i].logline_marker_label);
printf(" LogLine Origin User: %s\n",logline[i].logline_origin_user);
printf(" LogLine Origin DateTime\n");
printf("LogLine OriginDateTime year value : %d\n",logline[i].logline_origin_datetime.tm_year);
printf("LogLine OriginDateTime mon value : %d\n",logline[i].logline_origin_datetime.tm_mon);
printf("LogLine OriginDateTime mday value : %d\n",logline[i].logline_origin_datetime.tm_mday);
printf("LogLine OriginDateTime day value : %d\n",logline[i].logline_origin_datetime.tm_wday);
printf("LogLine OriginDateTime hour value : %d\n",logline[i].logline_origin_datetime.tm_hour);
printf("LogLine OriginDateTime min value : %d\n",logline[i].logline_origin_datetime.tm_min);
printf("LogLine OriginDateTime sec value : %d\n",logline[i].logline_origin_datetime.tm_sec);
printf("LogLine OriginDateTime isdst : %d\n",logline[i].logline_origin_datetime.tm_isdst);
printf(" LogLine Start Point Cart: %d\n",logline[i].logline_start_point_cart);
printf(" LogLineStart Point Log: %d\n",logline[i].logline_start_point_log);
printf(" LogLine End Point Cart: %d\n",logline[i].logline_end_point_cart);
printf(" LogLine End Point Log: %d\n",logline[i].logline_end_point_log);
printf(" LogLine Segue Start Point Cart: %d\n",logline[i].logline_segue_start_point_cart);
printf(" LogLine Segue Start Point Log: %d\n",logline[i].logline_segue_start_point_log);
printf(" LogLine Segue End Point Cart: %d\n",logline[i].logline_segue_end_point_cart);
printf(" LogLine Segue End Point Log: %d\n",logline[i].logline_segue_end_point_log);
printf(" LogLine Segue Gain: %d\n",logline[i].logline_segue_gain);
printf(" LogLine FadeUp Point Cart: %d\n",logline[i].logline_fadeup_point_cart);
printf(" LogLine FadeUp Point Log: %d\n",logline[i].logline_fadeup_point_log);
printf(" LogLine FadeUp Gain: %d\n",logline[i].logline_fadeup_gain);
printf(" LogLine FadeDown Point Cart: %d\n",logline[i].logline_fadedown_point_cart);
printf(" LogLine FadeDown Point Log: %d\n",logline[i].logline_fadedown_point_log);
printf(" LogLine DuckUp Gain: %d\n",logline[i].logline_duckup_gain);
printf(" LogLine DuckDown Gain: %d\n",logline[i].logline_duckdown_gain);
printf(" LogLine Talk Start Point: %d\n",logline[i].logline_talk_start_point);
printf(" LogLine Talk End Point: %d\n",logline[i].logline_talk_end_point);
printf(" LogLine Hook Mode: %d\n",logline[i].logline_hook_mode);
printf(" LogLine Hook Start Point: %d\n",logline[i].logline_hook_start_point);
printf(" LogLine Hook End Point: %d\n",logline[i].logline_hook_end_point);
printf(" LogLine Event Length: %d\n",logline[i].logline_event_length);
printf(" LogLine Link Event Name: %s\n",logline[i].logline_link_event_name);
printf(" LogLine Link Start Time: %d\n",logline[i].logline_link_starttime);
printf(" LogLine Link Start Slop: %d\n",logline[i].logline_link_start_slop);
printf(" LogLine Link End Slop: %d\n",logline[i].logline_link_end_slop);
printf(" LogLine Link Id: %d\n",logline[i].logline_link_id);
printf(" LogLine Link Embedded: %d\n",logline[i].logline_link_embedded);
printf(" LogLine Ext Start Time: %d\n",logline[i].logline_ext_starttime);
printf(" LogLine Ext Length: %d\n",logline[i].logline_ext_length);
printf(" LogLine Ext Cart Name: %s\n",logline[i].logline_ext_cart_name);
printf(" LogLine Ext Data: %s\n",logline[i].logline_ext_data);
printf(" LogLine Ext Event Id: %s\n",logline[i].logline_ext_event_id);
printf(" LogLine Ext Annc Type: %s\n",logline[i].logline_ext_annc_type);
printf("\n");
}
//
// Free the Log Line list when finished with it
//
free(logline);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListLog(&logline,
host,
user,
passwd,
ticket,
buf,
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++) {
printf(" LogLine Line Number: %d\n",logline[i].logline_line);
printf(" LogLine Id: %d\n",logline[i].logline_id);
printf(" LogLine Type: %d\n",logline[i].logline_type);
printf(" LogLine Cart Type: %d\n",logline[i].logline_cart_type);
printf(" LogLine Cart Number: %u\n",logline[i].logline_cart_number);
printf(" LogLine Cut Number: %d\n",logline[i].logline_cut_number);
printf(" LogLine Group Name: %s\n",logline[i].logline_group_name);
printf(" LogLine Group Color: %s\n",logline[i].logline_group_color);
printf(" LogLine Title: %s\n",logline[i].logline_title);
printf(" LogLine Artist: %s\n",logline[i].logline_artist);
printf(" LogLine Album: %s\n",logline[i].logline_album);
printf(" LogLine Year: %d\n",logline[i].logline_year);
printf(" LogLine Label: %s\n",logline[i].logline_label);
printf(" LogLine Client: %s\n",logline[i].logline_client);
printf(" LogLine Agency: %s\n",logline[i].logline_agency);
printf(" LogLine Publisher: %s\n",logline[i].logline_publisher);
printf(" LogLine Composer: %s\n",logline[i].logline_composer);
printf(" LogLine Conductor: %s\n",logline[i].logline_conductor);
printf(" LogLine User Defined: %s\n",logline[i].logline_user_defined);
printf(" LogLine Usage Code: %d\n",logline[i].logline_usage_code);
printf(" LogLine Enforce Length: %d\n",logline[i].logline_enforce_length);
printf(" LogLine Forced Length: %d\n",logline[i].logline_forced_length);
printf(" LogLine Evergreen: %d\n",logline[i].logline_evergreen);
printf(" LogLine Source: %d\n",logline[i].logline_source);
printf(" LogLine Time Type: %d\n",logline[i].logline_time_type);
if(RD_Cnv_msec_to_TString(starttime_buf,14,logline[i].logline_starttime)==0) {
printf(" LogLine Start Time: %d\n",
logline[i].logline_starttime);
}
else {
printf(" LogLine Start Time: %d [%s]\n",
logline[i].logline_starttime,starttime_buf);
}
printf(" LogLine Transition Type: %d\n",logline[i].logline_transition_type);
printf(" LogLine Cut Quantity: %d\n",logline[i].logline_cut_quantity);
printf(" LogLine Last Cut Played: %d\n",logline[i].logline_last_cut_played);
printf(" LogLine Marker Comment: %s\n",logline[i].logline_marker_comment);
printf(" LogLine Marker Label: %s\n",logline[i].logline_marker_label);
printf(" LogLine Origin User: %s\n",logline[i].logline_origin_user);
printf(" LogLine Origin DateTime\n");
printf("LogLine OriginDateTime year value : %d\n",logline[i].logline_origin_datetime.tm_year);
printf("LogLine OriginDateTime mon value : %d\n",logline[i].logline_origin_datetime.tm_mon);
printf("LogLine OriginDateTime mday value : %d\n",logline[i].logline_origin_datetime.tm_mday);
printf("LogLine OriginDateTime day value : %d\n",logline[i].logline_origin_datetime.tm_wday);
printf("LogLine OriginDateTime hour value : %d\n",logline[i].logline_origin_datetime.tm_hour);
printf("LogLine OriginDateTime min value : %d\n",logline[i].logline_origin_datetime.tm_min);
printf("LogLine OriginDateTime sec value : %d\n",logline[i].logline_origin_datetime.tm_sec);
printf("LogLine OriginDateTime isdst : %d\n",logline[i].logline_origin_datetime.tm_isdst);
printf(" LogLine Start Point Cart: %d\n",logline[i].logline_start_point_cart);
printf(" LogLineStart Point Log: %d\n",logline[i].logline_start_point_log);
printf(" LogLine End Point Cart: %d\n",logline[i].logline_end_point_cart);
printf(" LogLine End Point Log: %d\n",logline[i].logline_end_point_log);
printf(" LogLine Segue Start Point Cart: %d\n",logline[i].logline_segue_start_point_cart);
printf(" LogLine Segue Start Point Log: %d\n",logline[i].logline_segue_start_point_log);
printf(" LogLine Segue End Point Cart: %d\n",logline[i].logline_segue_end_point_cart);
printf(" LogLine Segue End Point Log: %d\n",logline[i].logline_segue_end_point_log);
printf(" LogLine Segue Gain: %d\n",logline[i].logline_segue_gain);
printf(" LogLine FadeUp Point Cart: %d\n",logline[i].logline_fadeup_point_cart);
printf(" LogLine FadeUp Point Log: %d\n",logline[i].logline_fadeup_point_log);
printf(" LogLine FadeUp Gain: %d\n",logline[i].logline_fadeup_gain);
printf(" LogLine FadeDown Point Cart: %d\n",logline[i].logline_fadedown_point_cart);
printf(" LogLine FadeDown Point Log: %d\n",logline[i].logline_fadedown_point_log);
printf(" LogLine DuckUp Gain: %d\n",logline[i].logline_duckup_gain);
printf(" LogLine DuckDown Gain: %d\n",logline[i].logline_duckdown_gain);
printf(" LogLine Talk Start Point: %d\n",logline[i].logline_talk_start_point);
printf(" LogLine Talk End Point: %d\n",logline[i].logline_talk_end_point);
printf(" LogLine Hook Mode: %d\n",logline[i].logline_hook_mode);
printf(" LogLine Hook Start Point: %d\n",logline[i].logline_hook_start_point);
printf(" LogLine Hook End Point: %d\n",logline[i].logline_hook_end_point);
printf(" LogLine Event Length: %d\n",logline[i].logline_event_length);
printf(" LogLine Link Event Name: %s\n",logline[i].logline_link_event_name);
printf(" LogLine Link Start Time: %d\n",logline[i].logline_link_starttime);
printf(" LogLine Link Start Slop: %d\n",logline[i].logline_link_start_slop);
printf(" LogLine Link End Slop: %d\n",logline[i].logline_link_end_slop);
printf(" LogLine Link Id: %d\n",logline[i].logline_link_id);
printf(" LogLine Link Embedded: %d\n",logline[i].logline_link_embedded);
printf(" LogLine Ext Start Time: %d\n",logline[i].logline_ext_starttime);
printf(" LogLine Ext Length: %d\n",logline[i].logline_ext_length);
printf(" LogLine Ext Cart Name: %s\n",logline[i].logline_ext_cart_name);
printf(" LogLine Ext Data: %s\n",logline[i].logline_ext_data);
printf(" LogLine Ext Event Id: %s\n",logline[i].logline_ext_event_id);
printf(" LogLine Ext Annc Type: %s\n",logline[i].logline_ext_annc_type);
printf("\n");
}
//
// Free the Log Line list when finished with it
//
free(logline);
exit(0);
}

View File

@@ -0,0 +1,381 @@
/* listlogs_test.c
*
* Test the listlog library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_createticket.h>
#include <rivwebcapi/rd_listlogs.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_log *logs=0;
char buf[BUFSIZ];
char *p;
char svcname[11]={0};
char logname[65]={0};
long int trackable=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char filter[255];
long int recent=0;
char user_agent[255];
/* 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 Service Name (default is All) ==> ");
if(fgets(buf,sizeof(buf),stdin) != NULL)
{
strncpy(svcname,buf,10);
}
fflush(stdin);
printf("Please enter the Log Name (default is All) ==> ");
if(fgets(buf,sizeof(buf),stdin) != NULL)
{
strncpy(logname,buf,64);
}
fflush(stdin);
printf("Please enter the Filter string (default is none) ==> ");
if(fgets(buf,sizeof(buf),stdin) != NULL)
{
strncpy(filter,buf,255);
}
fflush(stdin);
printf("Please enter 1 if you want trackable logs ==>");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
trackable = strtol(buf,&p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter 1 if you want only recent logs ==>");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
recent = 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_ListLogs(&logs,
host,
user,
passwd,
ticket,
&svcname[0],
&logname[0],
(int)trackable,
filter,
(int)recent,
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 ListLogs call\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d\n",result);
}
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Log Name: %s\n",logs[i].log_name);
printf(" Log Service: %s\n",logs[i].log_service);
printf(" Log Description: %s\n",logs[i].log_description);
printf(" Log Origin User Name: %s\n",logs[i].log_origin_username);
printf(" Log Origin DateTime\n");
printf("Log OriginDate year value : %d\n",logs[i].log_origin_datetime.tm_year);
printf("Log OriginDate mon value : %d\n",logs[i].log_origin_datetime.tm_mon);
printf("Log OriginDate mday value : %d\n",logs[i].log_origin_datetime.tm_mday);
printf("Log OriginDate day value : %d\n",logs[i].log_origin_datetime.tm_wday);
printf("Log OriginDate hour value : %d\n",logs[i].log_origin_datetime.tm_hour);
printf("Log OriginDate min value : %d\n",logs[i].log_origin_datetime.tm_min);
printf("Log OriginDate sec value : %d\n",logs[i].log_origin_datetime.tm_sec);
printf("Log OriginDate isdst : %d\n",logs[i].log_origin_datetime.tm_isdst);
printf(" Log Purge Date\n");
printf("Log PurgeDate year value : %d\n",logs[i].log_purge_date.tm_year);
printf("Log PurgeDate mon value : %d\n",logs[i].log_purge_date.tm_mon);
printf("Log PurgeDate mday value : %d\n",logs[i].log_purge_date.tm_mday);
printf("Log PurgeDate day value : %d\n",logs[i].log_purge_date.tm_wday);
printf("Log PurgeDate hour value : %d\n",logs[i].log_purge_date.tm_hour);
printf("Log PurgeDate min value : %d\n",logs[i].log_purge_date.tm_min);
printf("Log PurgeDate sec value : %d\n",logs[i].log_purge_date.tm_sec);
printf("Log PurgeDate isdst : %d\n",logs[i].log_purge_date.tm_isdst);
printf(" Log Link DateTime\n");
printf(" Log Link year value : %d\n",logs[i].log_link_datetime.tm_year);
printf(" Log Link mon value : %d\n",logs[i].log_link_datetime.tm_mon);
printf(" Log Link mday value : %d\n",logs[i].log_link_datetime.tm_mday);
printf(" Log Link day value : %d\n",logs[i].log_link_datetime.tm_wday);
printf(" Log Link hour value : %d\n",logs[i].log_link_datetime.tm_hour);
printf(" Log Link min value : %d\n",logs[i].log_link_datetime.tm_min);
printf(" Log Link sec value : %d\n",logs[i].log_link_datetime.tm_sec);
printf(" Log Link isdst : %d\n",logs[i].log_link_datetime.tm_isdst);
printf(" Log Modified DateTime\n");
printf("Log Modified year value : %d\n",logs[i].log_modified_datetime.tm_year);
printf("Log Modified mon value : %d\n",logs[i].log_modified_datetime.tm_mon);
printf("Log Modified mday value : %d\n",logs[i].log_modified_datetime.tm_mday);
printf("Log Modified day value : %d\n",logs[i].log_modified_datetime.tm_wday);
printf("Log Modified hour value : %d\n",logs[i].log_modified_datetime.tm_hour);
printf("Log Modified min value : %d\n",logs[i].log_modified_datetime.tm_min);
printf("Log Modified sec value : %d\n",logs[i].log_modified_datetime.tm_sec);
printf("Log Modified isdst : %d\n",logs[i].log_modified_datetime.tm_isdst);
printf(" Log AutoRefresh: %d\n",logs[i].log_autorefresh);
printf(" Log Start Date\n");
printf("Log Start Date year value: %d\n",logs[i].log_startdate.tm_year);
printf("Log Start Date mon value: %d\n",logs[i].log_startdate.tm_mon);
printf("Log Start Date mday value: %d\n",logs[i].log_startdate.tm_mday);
printf("Log Start Date day value: %d\n",logs[i].log_startdate.tm_wday);
printf("Log Start Date hour value: %d\n",logs[i].log_startdate.tm_hour);
printf("Log Start Date min value : %d\n",logs[i].log_startdate.tm_min);
printf("Log Start Date sec value : %d\n",logs[i].log_startdate.tm_sec);
printf("Log Start Date isdst : %d\n",logs[i].log_startdate.tm_isdst);
printf(" Log End Date\n");
printf("Log End Date year value : %d\n",logs[i].log_enddate.tm_year);
printf("Log End Date mon value : %d\n",logs[i].log_enddate.tm_mon);
printf("Log End Date mday value : %d\n",logs[i].log_enddate.tm_mday);
printf("Log End Date day value : %d\n",logs[i].log_enddate.tm_wday);
printf("Log End Date hour value : %d\n",logs[i].log_enddate.tm_hour);
printf("Log End Date min value : %d\n",logs[i].log_enddate.tm_min);
printf("Log End Date sec value : %d\n",logs[i].log_enddate.tm_sec);
printf("Log End Date isdst : %d\n",logs[i].log_enddate.tm_isdst);
printf(" Log Scheduled Tracks: %d\n",logs[i].log_scheduled_tracks);
printf(" Log Completed Tracks: %d\n",logs[i].log_completed_tracks);
printf(" Log Music Links: %d\n",logs[i].log_music_links);
printf(" Log Music Linked: %d\n",logs[i].log_music_linked);
printf(" Log Traffic Links: %d\n",logs[i].log_traffic_links);
printf(" Log Traffic Linked: %d\n",logs[i].log_traffic_linked);
printf("\n");
}
//
// Free the Log list when finished with it
//
free(logs);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
//
//
// Call the function
//
result= RD_ListLogs(&logs,
host,
user,
passwd,
ticket,
&svcname[0],
&logname[0],
(int)trackable,
filter,
recent,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Log Name: %s\n",logs[i].log_name);
printf(" Log Service: %s\n",logs[i].log_service);
printf(" Log Description: %s\n",logs[i].log_description);
printf(" Log Origin User Name: %s\n",logs[i].log_origin_username);
printf(" Log Origin DateTime\n");
printf("Log OriginDate year value : %d\n",logs[i].log_origin_datetime.tm_year);
printf("Log OriginDate mon value : %d\n",logs[i].log_origin_datetime.tm_mon);
printf("Log OriginDate mday value : %d\n",logs[i].log_origin_datetime.tm_mday);
printf("Log OriginDate day value : %d\n",logs[i].log_origin_datetime.tm_wday);
printf("Log OriginDate hour value : %d\n",logs[i].log_origin_datetime.tm_hour);
printf("Log OriginDate min value : %d\n",logs[i].log_origin_datetime.tm_min);
printf("Log OriginDate sec value : %d\n",logs[i].log_origin_datetime.tm_sec);
printf("Log OriginDate isdst : %d\n",logs[i].log_origin_datetime.tm_isdst);
printf(" Log Purge Date\n");
printf("Log PurgeDate year value : %d\n",logs[i].log_purge_date.tm_year);
printf("Log PurgeDate mon value : %d\n",logs[i].log_purge_date.tm_mon);
printf("Log PurgeDate mday value : %d\n",logs[i].log_purge_date.tm_mday);
printf("Log PurgeDate day value : %d\n",logs[i].log_purge_date.tm_wday);
printf("Log PurgeDate hour value : %d\n",logs[i].log_purge_date.tm_hour);
printf("Log PurgeDate min value : %d\n",logs[i].log_purge_date.tm_min);
printf("Log PurgeDate sec value : %d\n",logs[i].log_purge_date.tm_sec);
printf("Log PurgeDate isdst : %d\n",logs[i].log_purge_date.tm_isdst);
printf(" Log Link DateTime\n");
printf(" Log Link year value : %d\n",logs[i].log_link_datetime.tm_year);
printf(" Log Link mon value : %d\n",logs[i].log_link_datetime.tm_mon);
printf(" Log Link mday value : %d\n",logs[i].log_link_datetime.tm_mday);
printf(" Log Link day value : %d\n",logs[i].log_link_datetime.tm_wday);
printf(" Log Link hour value : %d\n",logs[i].log_link_datetime.tm_hour);
printf(" Log Link min value : %d\n",logs[i].log_link_datetime.tm_min);
printf(" Log Link sec value : %d\n",logs[i].log_link_datetime.tm_sec);
printf(" Log Link isdst : %d\n",logs[i].log_link_datetime.tm_isdst);
printf(" Log Modified DateTime\n");
printf("Log Modified year value : %d\n",logs[i].log_modified_datetime.tm_year);
printf("Log Modified mon value : %d\n",logs[i].log_modified_datetime.tm_mon);
printf("Log Modified mday value : %d\n",logs[i].log_modified_datetime.tm_mday);
printf("Log Modified day value : %d\n",logs[i].log_modified_datetime.tm_wday);
printf("Log Modified hour value : %d\n",logs[i].log_modified_datetime.tm_hour);
printf("Log Modified min value : %d\n",logs[i].log_modified_datetime.tm_min);
printf("Log Modified sec value : %d\n",logs[i].log_modified_datetime.tm_sec);
printf("Log Modified isdst : %d\n",logs[i].log_modified_datetime.tm_isdst);
printf(" Log AutoRefresh: %d\n",logs[i].log_autorefresh);
printf(" Log Start Date\n");
printf("Log Start Date year value: %d\n",logs[i].log_startdate.tm_year);
printf("Log Start Date mon value: %d\n",logs[i].log_startdate.tm_mon);
printf("Log Start Date mday value: %d\n",logs[i].log_startdate.tm_mday);
printf("Log Start Date day value: %d\n",logs[i].log_startdate.tm_wday);
printf("Log Start Date hour value: %d\n",logs[i].log_startdate.tm_hour);
printf("Log Start Date min value : %d\n",logs[i].log_startdate.tm_min);
printf("Log Start Date sec value : %d\n",logs[i].log_startdate.tm_sec);
printf("Log Start Date isdst : %d\n",logs[i].log_startdate.tm_isdst);
printf(" Log End Date\n");
printf("Log End Date year value : %d\n",logs[i].log_enddate.tm_year);
printf("Log End Date mon value : %d\n",logs[i].log_enddate.tm_mon);
printf("Log End Date mday value : %d\n",logs[i].log_enddate.tm_mday);
printf("Log End Date day value : %d\n",logs[i].log_enddate.tm_wday);
printf("Log End Date hour value : %d\n",logs[i].log_enddate.tm_hour);
printf("Log End Date min value : %d\n",logs[i].log_enddate.tm_min);
printf("Log End Date sec value : %d\n",logs[i].log_enddate.tm_sec);
printf("Log End Date isdst : %d\n",logs[i].log_enddate.tm_isdst);
printf(" Log Scheduled Tracks: %d\n",logs[i].log_scheduled_tracks);
printf(" Log Completed Tracks: %d\n",logs[i].log_completed_tracks);
printf(" Log Music Links: %d\n",logs[i].log_music_links);
printf(" Log Music Linked: %d\n",logs[i].log_music_linked);
printf(" Log Traffic Links: %d\n",logs[i].log_traffic_links);
printf(" Log Traffic Linked: %d\n",logs[i].log_traffic_linked);
printf("\n");
}
//
// Free the Log list when finished with it
//
free(logs);
exit(0);
}

View File

@@ -0,0 +1,187 @@
/* listschedulcodes.c
*
* Test the listschedulcodes library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listschedcodes.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_schedcodes *schedcodes=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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_ListSchedCodes(&schedcodes,
host,
user,
passwd,
ticket,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Code: %s\n",schedcodes[i].code);
printf(" Description: %s\n",schedcodes[i].description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(schedcodes);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListSchedCodes(&schedcodes,
host,
user,
passwd,
ticket,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Code: %s\n",schedcodes[i].code);
printf(" Description: %s\n",schedcodes[i].description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(schedcodes);
exit(0);
}

View File

@@ -0,0 +1,211 @@
/* listservices_test.c
*
* Test the listservices library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_listservices.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
long int trackable=0;
char buf[BUFSIZ];
char *p;
struct rd_service *services=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 1 if you want trackable logs ==>");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
trackable = 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_ListServices(&services,
host,
user,
passwd,
ticket,
(int)trackable,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Service Name: %s\n",services[i].service_name);
printf(" Service Description: %s\n",services[i].service_description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(services);
if (numrecs == 0)
{
printf(" No Services found\n");
exit(0);
}
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result= RD_ListServices(&services,
host,
user,
passwd,
ticket,
(int)trackable,
user_agent,
&numrecs);
if(result<0) {
fprintf(stderr,"Error: Web function Failure!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
fprintf(stderr, "Unknown Error occurred ==> %d",result);
exit(256);
}
//
// List the results
//
for(i=0;i<numrecs;i++) {
printf(" Service Name: %s\n",services[i].service_name);
printf(" Service Description: %s\n",services[i].service_description);
printf("\n");
}
//
// Free the services list when finished with it
//
free(services);
exit(0);
}

View File

@@ -0,0 +1,210 @@
/* listsystemsettings.c
*
* Test the list system settings WEB library.
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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_listsystemsettings.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_system_settings *system_settings=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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_ListSystemSettings(&system_settings,
host,
user,
passwd,
ticket,
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: Internal Error - Exiting!\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" System Sample Rate : %u\n",system_settings[i].sample_rate);
printf(" Allow Duplicate Cart Titles : %d\n",system_settings[i].dup_cart_titles);
printf(" ISCI Cross Reference_Path : %s\n",system_settings[i].isci_xreference_path);
printf(" Maximum Remote Post Length : %u\n",system_settings[i].max_post_length);
printf(" Temporary Cart Group : %s\n",system_settings[i].temp_cart_group);
printf("\n");
}
//
// Free the system settings list when finished with it
//
free(system_settings);
// Add test of create_ticket function - wont be able to add though
// because we already added it!
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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_ListSystemSettings(&system_settings,
host,
user,
passwd,
ticket,
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: Internal Error - Exiting!\n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" System Sample Rate : %u\n",system_settings[i].sample_rate);
printf(" Allow Duplicate Cart Titles : %d\n",system_settings[i].dup_cart_titles);
printf(" ISCI Cross Reference_Path : %s\n",system_settings[i].isci_xreference_path);
printf(" Maximum Remote Post Length : %u\n",system_settings[i].max_post_length);
printf(" Temporary Cart Group : %s\n",system_settings[i].temp_cart_group);
printf("\n");
}
//
// Free the System Settings list when finished with it
//
free(system_settings);
exit(0);
}

View File

@@ -0,0 +1,207 @@
/* removecart_test.c
*
* Test the removecart library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_removecart.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int cartnum=0;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Remove ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = 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_RemoveCart( host,
user,
passwd,
ticket,
(unsigned)cartnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart %ld was successfully deleted!\n",cartnum);
printf("\n");
// Add test of create_ticket function
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_RemoveCart( host,
user,
passwd,
ticket,
(unsigned)cartnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart %ld was successfully deleted!\n",cartnum);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,220 @@
/* removecut_test.c
*
* Test the remove Cut library.
*
* (C) Copyright 2015 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_removecut.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
char buf[BUFSIZ];
char *p;
long int cartnum=0;
long int cutnum=0;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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 that you want to Remove ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cartnum = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Cut Number that you want to Remove ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cutnum = 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_RemoveCut( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cart: %ld was successfully deleted!\n",cartnum,cutnum);
printf("\n");
// Add test of create_ticket function
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_RemoveCut( host,
user,
passwd,
ticket,
(unsigned)cartnum,
(unsigned)cutnum,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 404:
fprintf(stderr,"ERROR: No Such Cart/Cut Exists! \n");
break;
case 401:
fprintf(stderr, "ERROR: Unauthorized Or Cart out of Range! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Cart: %ld - Cart: %ld was successfully deleted!\n",cartnum,cutnum);
printf("\n");
exit(0);
}

View File

@@ -0,0 +1,201 @@
/* savelog_test.c
*
* Test the savelog library.
*
* (C) Copyright 2017 Todd Baker <bakert@rfa.org>
*
* 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_savelog.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
#include "common.h"
int main(int argc,char *argv[])
{
char logname[BUFSIZ]={0};
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
struct save_loghdr_values hdr_values;
/* 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 = "";
}
PromptForString("Please enter the Name of the Log that you want to Save ==> ",
logname,BUFSIZ);
memset(&hdr_values,0,sizeof(hdr_values));
strcpy(hdr_values.loghdr_service,"Fred");
// 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_SaveLog(&hdr_values,
NULL,0,
host,
user,
passwd,
ticket,
logname,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Save Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Success\n");
// Add test of create_ticket function
int i;
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
// Call the function
//
result=RD_SaveLog(&hdr_values,
NULL,0,
host,
user,
passwd,
ticket,
logname,
user_agent);
if(result<0) {
fprintf(stderr,"Something went wrong!\n");
exit(256);
}
if ((result< 200 || result > 299) &&
(result != 0))
{
switch(result) {
case 400:
fprintf(stderr," ERROR: Invalid Parameter for LOG_NAME! \n");
break;
case 500:
fprintf(stderr, "ERROR: Unable to Save Log! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
printf(" Success\n");
exit(0);
}

View File

@@ -0,0 +1,269 @@
/*audioinfo_test.c
*
* Test the audioinfo WEB library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_trimaudio.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
struct rd_trimaudio *trimaudio=0;
char buf[BUFSIZ];
char *p;
long int cart=0;
long int cut=0;
long int trimlevel=0;
unsigned numrecs;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
printf("Please enter the Cut Number for the Cart used above ==> ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
cut = strtol(buf, &p,10);
if ( (buf[0] != '\n') &&
((*p != '\n') && (*p != '\0')))
{
fprintf(stderr," Illegal Characters detected! Exiting.\n");
exit(0);
}
}
printf("Please enter the Trim Level: ");
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
trimlevel = 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_TrimAudio(&trimaudio,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
(int)trimlevel,
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/Cut Number or \n Unknown Trim Level or \n No Peak Data Available\n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Audio Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %u\n",trimaudio[i].cart_number);
printf(" Cut Number: %d\n",trimaudio[i].cut_number);
printf(" Trim Level: %d\n",trimaudio[i].trimlevel);
printf(" Start Trim Point: %d\n",trimaudio[i].starttrimpoint);
printf(" End Trim Point: %d\n",trimaudio[i].endtrimpoint);
printf("\n");
}
//
// Free the trimaudio list when finished with it
//
free(trimaudio);
// 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
//
//
// Call the function
//
result=RD_TrimAudio(&trimaudio,
host,
user,
passwd,
ticket,
(unsigned)cart,
(unsigned)cut,
(int)trimlevel,
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/Cut Number or \n Unknown Trim Level or \n No Peak Data Available\n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Audio Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the Results
//
for(i=0;i<numrecs;i++) {
printf(" Cart Number: %u\n",trimaudio[i].cart_number);
printf(" Cut Number: %d\n",trimaudio[i].cut_number);
printf(" Trim Level: %d\n",trimaudio[i].trimlevel);
printf(" Start Trim Point: %d\n",trimaudio[i].starttrimpoint);
printf(" End Trim Point: %d\n",trimaudio[i].endtrimpoint);
printf("\n");
}
//
// Free the trimaudio list when finished with it
//
free(trimaudio);
exit(0);
}

View File

@@ -0,0 +1,219 @@
/* unassignschedcodes.c
*
* Test the unassignschedcode library.
*
* (C) Copyright 2015 Todd Baker <bakert@rfa.org>
*
* 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_unassignschedcode.h>
#include <rivwebcapi/rd_createticket.h>
#include <rivwebcapi/rd_getuseragent.h>
#include <rivwebcapi/rd_getversion.h>
int main(int argc,char *argv[])
{
int i;
char buf[BUFSIZ];
char code[BUFSIZ];
char *p;
long int cart=0;
char *codeptr;
char *host;
char *user;
char *passwd;
char ticket[41]="";
char user_agent[255];
/* 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);
}
}
codeptr = &code[0];
printf("Please enter the Scheduler Code Unassign to cart# %ld ==>",cart);
if (fgets(buf,sizeof(buf),stdin) != NULL)
{
for (i = 0; i < strlen(buf) ; i++) {
if (buf[i]>32) {
strncpy(codeptr,&buf[i],1);
codeptr++;
}
}
}
strcat(code,"\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_UnassignSchedCode(
host,
user,
passwd,
ticket,
(unsigned)cart,
code,
user_agent);
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/Code Number! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Code Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
printf(" Scheduler Code %s was successfully unassigned from Cart %ld !\n",code,cart);
printf("\n");
// Add test of create_ticket function
struct rd_ticketinfo *myticket=0;
unsigned 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);
printf("Ticket Expire year value = %d\n",myticket->tkt_expiration_datetime.tm_year);
printf("Ticket Expire month value = %d\n",myticket->tkt_expiration_datetime.tm_mon);
printf("Ticket Expire day value = %d\n",myticket->tkt_expiration_datetime.tm_mday);
printf("Ticket Expire wday value = %d\n",myticket->tkt_expiration_datetime.tm_wday);
printf("Ticket Expire hour value = %d\n",myticket->tkt_expiration_datetime.tm_hour);
printf("Ticket Expire min value = %d\n",myticket->tkt_expiration_datetime.tm_min);
printf("Ticket Expire sec value = %d\n",myticket->tkt_expiration_datetime.tm_sec);
printf("Ticket Expire isdst value = %d\n",myticket->tkt_expiration_datetime.tm_isdst);
printf("\n");
}
user="";
passwd="";
strcpy( ticket,myticket->ticket);
fprintf(stderr, "Ticket was copied - = %s\n",ticket);
// Call the function
//
result= RD_UnassignSchedCode(
host,
user,
passwd,
ticket,
(unsigned)cart,
code,
user_agent);
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/Code Number! \n");
break;
case 404:
fprintf(stderr,"ERROR: No Such Cart/Code Exists! \n");
break;
default:
fprintf(stderr, "Unknown Error occurred ==> %d",result);
}
exit(256);
}
//
// List the results
//
printf(" Scheduler Code %s was successfully unassigned from Cart %ld !\n",code,cart);
printf("\n");
exit(0);
}