Finish the code where it says //YOUR CODE HERE

//--- Definition of functions: ---//

// PURPOSE: To:
// (1) Make two pipes:
// (a) the first is for the parent process to talk to the
// child process running 'DECODER_PROG_NAME'
// (b) the second is for the child process running
// 'DECODER_PROG_NAME' to talk to the parent process.
//
// (2) Make the child process and puts its process id in global
// variable 'decoderPid'. The this child process should:
// dup2(somePipeFileDescriptor,STDIN_FILENO)
// to get its input from the "to decoder" pipe, and should:
// dup2(somePipeFileDescriptor,STDOUT_FILENO)
// to send its output to the "to parent" pipe.
// It should close() all unneeded pipe file descriptors and
// execute DECODER_PROG_NAME (a string constant defined in
// the header file).
//
// Meanwhile, the parent should close() the file descriptors
// only used by the child, set 'toDecodeFd' to the pipe file
// descriptor for talking to DECODER_PROG_NAME, and set 'toParentFd',
// to the pipe file descriptor for talking to the parent.
//
// (3) Return true (a C++ constant) on success or false otherwise.
bool didStartDecoders()
{
// I. Application validity check:
// II. Start decoder:
int toDecode[2];
int toParent[2];

// YOUR CODE HERE

// III. Finished:
return(true);
}