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.