If you already use your own CMP, you can of course manage the way your tags will be triggered through your own CMP setup.
a. Manage Tags
The recommended way is to attached a custom trigger to each of your tags and to manage this trigger inside your CMP to launch or not launch tags depending of the user's consent.
Warning : some part of TagCommander code is not inside tags, see below how to manage consent on custom code or core code
b. Manage custom code and internal variables
Of course it will depend of your CMP method, but the recommended way is to wrap your custom code with a conditional instruction (if) that will manage your CMP API or to embed it in a trigger that will be triggered by your CMP.
c. Manage core code
TagCommander contains also core code that is not accessible through the interface. There is one core feature that could put cookies and needs to be manage in your CMP through the management of one global variable : window.tc_disable_cookiesync
Usage : set this variable to true if the user doesn't give his consent
You have to set this variable to false or not set the variable when the user gives his consent