RD_EditCut 7 October 2015 Rivendell C Library Manual rd_editcut Rivendell Edit Cut C Library Function Todd Baker bakert@rfa.org Rivendell C Library Author #include <rivwebcapi/rd_editcut.h> int RD_EditCut struct rd_cut * cut[] struct edit_cut_values edit_cut_values const char hostname[] const char username[] const char passwd[] const char ticket[] const unsigned cartnumber const unsigned cutnumber const char user_agent[] unsigned * numrecs Description RD_EditCut is the function to use to edit the fields within a cut that already exists in the Rivendell Database. This function edits a pre-existing cut. User must provide the cart number, cut number and any fields which they would like to change. The structure edit_cut_values must be used to tell the API which fields will be changed. RD_EditCart function call fields FIELD NAME FIELD TYPE MEANING REMARKS *rd_cut Pointer to rd_cut structure Memory location to store cut information Mandatory edit_cut_values edit_cut_values structure This structure contains the new cut information to update Mandatory hostname Character Array Name Of Rivendell DB Host Mandatory username Character Array Rivendell User Name Mandatory When NO Ticket Provided passwd Character Array Rivendell User Password Mandatory When NO Ticket Provided ticket Character Array Rivendell Authentification Ticket Mandatory When NO User/Password Pair Provided. cartnumber unsigned integer Cart Number Mandatory cutnumber unsigned integer Cut Number Mandatory user_agent Character Array User Agent Value put into HTTP request Optional (default is Rivendell-C-API/x.x.x) *numrecs pointer to integer memory location for number of records returned Mandatory
This routine expects an input structure of type edit_cut_values - listed below. Each field has a boolean flag field (starting with use_) which designates whether to update the field's value or not. One (1) = true - Use the value in the field or Zero (0) - Ignore the field. The edit_cut_values structure must be pre-filled with zeroes and has the following format: struct edit_cut_values { int cut_evergreen; int use_cut_evergreen; char cut_description[257]; int use_cut_description; char cut_outcue[257]; int use_cut_outcue; char cut_isrc[49]; int use_cut_isrc; char cut_isci[129]; int use_cut_isci; struct tm cut_start_datetime; int use_cut_start_datetime; struct tm cut_end_datetime; int use_cut_end_datetime; int cut_sun; int use_cut_sun; int cut_mon; int use_cut_mon; int cut_tue; int use_cut_tue; int cut_wed; int use_cut_wed; int cut_thu; int use_cut_thu; int cut_fri; int use_cut_fri; int cut_sat; int use_cut_sat; char cut_start_daypart[14]; int use_cut_start_daypart; char cut_end_daypart[14]; int use_cut_end_daypart; unsigned cut_weight; int use_cut_weight; unsigned cut_validity; int use_cut_validity; unsigned cut_coding_format; int use_cut_coding_format; unsigned cut_sample_rate; int use_cut_sample_rate; unsigned cut_bit_rate; int use_cut_bit_rate; unsigned cut_channels; int use_cut_channels; int cut_play_gain; int use_cut_play_gain; int cut_start_point; int use_cut_start_point; int cut_end_point; int use_cut_end_point; int cut_fadeup_point; int use_cut_fadeup_point; int cut_fadedown_point; int use_cut_fadedown_point; int cut_segue_start_point; int use_cut_segue_start_point; int cut_segue_end_point; int use_cut_segue_end_point; int cut_segue_gain; int use_cut_segue_gain; int cut_hook_start_point; int use_cut_hook_start_point; int cut_hook_end_point; int use_cut_hook_end_point; int cut_talk_start_point; int use_cut_talk_start_point; int cut_talk_end_point; int use_cut_talk_end_point; }; When successful function will return the number of records sent (numrecs) and a rd_cut structure which is stored in the provided memory locations. The rd_cut structure has the following fields: struct rd_cut { char cut_name[11]; unsigned cut_cart_number; unsigned cut_cut_number; int cut_evergreen; char cut_description[257]; char cut_outcue[257]; char cut_isrc[49]; char cut_isci[129]; unsigned cut_length; struct tm cut_origin_datetime; struct tm cut_start_datetime; struct tm cut_end_datetime; int cut_sun; int cut_mon; int cut_tue; int cut_wed; int cut_thu; int cut_fri; int cut_sat; char cut_start_daypart[9]; char cut_end_daypart[9]; char cut_origin_name[257]; unsigned cut_weight; struct tm cut_last_play_datetime; unsigned cut_play_counter; unsigned cut_local_counter; unsigned cut_validity; unsigned cut_coding_format; unsigned cut_sample_rate; unsigned cut_bit_rate; unsigned cut_channels; int cut_play_gain; int cut_start_point; int cut_end_point; int cut_fadeup_point; int cut_fadedown_point; int cut_segue_start_point; int cut_segue_end_point; int cut_segue_gain; int cut_hook_start_point; int cut_hook_end_point; int cut_talk_start_point; int cut_talk_end_point; }; All character arrays above are the sizes listed and are null-terminated. Character encoding is UTF-8.
RETURN VALUE On success, zero is returned. Using the provided parameters an rd_cut structure is returned and the number of records is returned. If a server error occurs a -1 is returned. If a client error occurs a specific error number is returned. ERRORS 400 Invalid Parameter(s). 403 User Authentification Error. 403 Edit Audio Forbidden. 404 No Such Cart Exists. nnn Unknown Error Occurred.