function c = hdlcommblks_control
%

% Copyright 2009-2020 The MathWorks, Inc.

c = hdlnewcontrol(mfilename);

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%                                       %
%COMMUNICATIONS TOOLBOX BINDINGS        %
%                                       %
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

% Modulators & Demodulators
% commdigbbndpm3
% PSK Modulators
c.defaultFor( ...
  ['commdigbbndpm3/QPSK', newline, 'Modulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskModulator');
  
c.defaultFor( ...
  ['commdigbbndpm3/BPSK', newline, 'Modulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskModulator');

c.defaultFor( ...
  ['commdigbbndpm3/M-PSK', newline, 'Modulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskModulator');

% PSK Demodulators
c.defaultFor( ...
  ['commdigbbndpm3/QPSK', newline, 'Demodulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskDemodulator');

c.defaultFor( ...
  ['commdigbbndpm3/BPSK', newline, 'Demodulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskDemodulator');

c.defaultFor( ...
  ['commdigbbndpm3/M-PSK', newline, 'Demodulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.pskDemodulator');

% QAM Modulator
c.defaultFor( ...
  ['commdigbbndam3/Rectangular QAM', newline, 'Modulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.RectQAMModulator');

% QAM Demodulator
c.defaultFor( ...
  ['commdigbbndam3/Rectangular QAM', newline, 'Demodulator', newline, 'Baseband'], ...
  {}, 'hdlcommblks.internal.RectQAMDemodulator');

% Convolutional Encoder and Decoder - commcnvcod2
% Convolutional Encoder 
c.defaultFor(...
    ['commcnvcod2/Convolutional', newline, 'Encoder'],{}, ...
    'hdlcommblks.internal.ConvEncoder');

% Viterbi Decoder 
c.defaultFor(...
    'commcnvcod2/Viterbi Decoder',{}, ...
    'hdlcommblks.internal.ViterbiDecoder');


% Interleavers and Deinterleavers - commcnvintrlv2
% Convolutional Interleaver
c.defaultFor( ...  
  'commcnvintrlv2/Convolutional Interleaver', {}, ...
  'hdlcommblks.internal.ConvIntDeint');

% Convolutional Deinterleaver
c.defaultFor( ...  
  'commcnvintrlv2/Convolutional Deinterleaver', {}, ...
  'hdlcommblks.internal.ConvIntDeint');

% General Multiplexed Interleaver
c.defaultFor( ...  
  'commcnvintrlv2/General Multiplexed Interleaver', {}, ...
  'hdlcommblks.internal.GenMuxIntDeint');

% General Multiplexed Deinterleaver
c.defaultFor( ...  
  'commcnvintrlv2/General Multiplexed Deinterleaver', {}, ...
  'hdlcommblks.internal.GenMuxIntDeint');


% Sources
% commseqgen2, commseqgen3
c.defaultFor( ...
  ['commseqgen2/PN Sequence' newline 'Generator'], {}, ...
  'hdlcommblks.internal.PNGenerator'); 
c.defaultFor( ...
  ['commseqgen3/PN Sequence' newline 'Generator'], {}, ...
  'hdlcommblks.internal.PNGenerator'); 

% Hardware friendly blocks 
% comm.HDLCRCGenerator
c.defaultFor( ...  
  'commcrc2/General CRC Generator HDL Optimized', {}, ...
  'hdlcommblks.internal.HDLCRCGenerator');

% comm.HDLCRCGenerator System object
c.defaultFor( ...  
  'comm.HDLCRCGenerator', {}, ...
  'hdlcommblks.internal.HDLCRCGenerator');

% comm.HDLCRCDetector
c.defaultFor( ...  
  ['commcrc2/General CRC' newline 'Syndrome' newline 'Detector' newline 'HDL Optimized'], {}, ...
  'hdlcommblks.internal.HDLCRCDetector');

% comm.HDLCRCDetector System object
c.defaultFor( ...  
  'comm.HDLCRCDetector', {}, ...
  'hdlcommblks.internal.HDLCRCDetector');

% comm.HDLRSEncoder
c.defaultFor( ...  
  'commblkcod2/Integer-Input RS Encoder HDL Optimized', {}, ...
  'hdlcommblks.internal.RSEncoder');

% comm.HDLRSEncoder System object
c.defaultFor( ...  
  'comm.HDLRSEncoder', {}, ...
  'hdlcommblks.internal.RSEncoder');

% comm.HDLRSDecoder
c.defaultFor( ...  
  'commblkcod2/Integer-Output RS Decoder HDL Optimized', {}, ...
  'hdlcommblks.internal.RSDecoder');

% comm.HDLRSDecoder System object
c.defaultFor( ...  
  'comm.HDLRSDecoder', {}, ...
  'hdlcommblks.internal.RSDecoder');

% Sinks
c.defaultFor( ...
  'commsink2/Error Rate Calculation', {}, ...
  'hdlcommblks.internal.NoHDL');

c.defaultFor( ...
  'commsink2/Discrete-Time Signal Trajectory Scope', {}, ...
  'hdlcommblks.internal.NoHDL');

c.defaultFor( ...
  'built-in/ConstellationDiagram', {}, ...
  'hdlcommblks.internal.NoHDL');

c.defaultFor( ...
  'built-in/EyeDiagram', {}, ...
  'hdlcommblks.internal.NoHDL');
