classdef Name
    %NAME Summary of this class goes here
    %   Detailed explanation goes here

    properties(Access=public)


    end

    methods (Access=public)
        function obj = Name(options)
            %NAME Construct an instance of this class
            %   Detailed explanation goes here

            arguments
                options.bla bool = true
            end

            % 
            fn = fieldnames(options);
            for n = 1:numel(fn)
                try
                    obj.(fn{n}) = options.(fn{n});
                end
            end

            % do more stuff 

        end

        function signalclass_out = process(obj,signalclass_in)

            % actual processing of the signal (steps 1. - 3.)
            signalclass_in.signal = obj.process_(signalclass_in.signal);

            % append to logbook
            lbdesc = ['Logbookentry'];
            signalclass_in  = signalclass_in.logbookentry(lbdesc);

            % write to output
            signalclass_out = signalclass_in;

        end

        function data_out = process_(obj,data_in)
            %METHOD1 Summary of this method goes here
            %   Detailed explanation goes here
            arguments(Input)
                obj
                data_in double
            end

            arguments(Output)
                data_out double
            end

          
        end

    end

    methods (Access=private)
    % Cant be seen from outside! So put all your functions here that can/
    % shall not be called from outside


    end
end
