DebugRoute.cpp
gehe zur Dokumentation dieser Datei
00001 
00029 #include "Defs.h"
00030 #ifdef DEBUG
00031 #include "DebugRoute.h"
00032 #include "Device.h"
00033 #include "InputDeviceShape.h"
00034 #include "OutputDeviceShape.h"
00035 
00036 static void CheckOutputDevice(OutDevice * Out, MutBoxChannelShape * channel) 
00037 {
00038         DEBUGLOG2(routing,_T("Output device %p, Channel %p"),Out,channel);
00039         MutOutputDeviceShape * shape = (MutOutputDeviceShape *) (Out->getUserData());
00040         wxASSERT ((channel && shape) || !(channel || shape));
00041         if (shape) {
00042                 bool found = false;
00043                 const MutBoxChannelShapeList & list = shape->getRoutesList();
00044                 for (MutBoxChannelShapeList::const_iterator i = list.begin(); i != list.end(); i++)
00045                         if ((*i) == channel) {
00046                                 found = true;
00047                                 break;
00048                         }
00049                 wxASSERT(found);
00050                 DEBUGLOG2(routing,_T("Output device shape %p"),shape);
00051                 wxASSERT(shape->GetDevice() == Out);
00052                 wxASSERT(channel->GetOutput() == shape);
00053         } else {
00054                 DEBUGLOG2(routing,_T("No output device shape"));
00055         }
00056         DEBUGLOG2(routing,_T("Output device %p '%s' Type %d:\n%s"),Out,Out->GetName().c_str(),Out->GetType(),Out->TowxString().c_str());
00057 }
00058 
00059 static void CheckRoute(Route * route, MutInputDeviceShape * In) 
00060 {
00061         DEBUGLOG2(routing,_T("Route %p id %d, Type %d, Input range %d -- %d"),route,route->GetId(),route->GetType(),
00062                   route->GetInputFrom(), route->GetInputTo());
00063         DEBUGLOG2(routing,_T("Box %d, active %d, Output range %d -- %d (no Drum: %d)"),route->GetBox(),
00064                   route->GetActive(),route->GetOutputFrom(), route->GetOutputTo(), route->OutputAvoidDrumChannel());
00065         MutBoxChannelShape * shape = (MutBoxChannelShape *) (route->getUserData());
00066         wxASSERT((In && shape ) || !(In || shape));
00067         if (shape) {
00068                 DEBUGLOG2(routing,_T("Box channel shape %p"), shape);
00069                 MutBoxShape * box = dynamic_cast<MutBoxShape *> (shape->GetParent());
00070                 DEBUGLOG2(routing,_T("Box shape %p box %d"),box,box->GetBoxId());
00071                 wxASSERT(shape->GetRoute() == route);
00072                 wxASSERT(shape->GetInput() == In);
00073                 wxASSERT(box->GetBoxId() == route->GetBox());
00074         } else {
00075                 DEBUGLOG2(routing,_T("No Box Channel shape"));
00076         }
00077         OutDevice * Out = route->GetOutDevice();
00078         if (Out) CheckOutputDevice(Out, shape);
00079 }
00080 
00081 static void CheckInputDevice(InDevice *In)
00082 {
00083         DEBUGLOG2(routing,_T("Input device %p '%s' %d:\n%s"), In,In->GetName().c_str(),In->GetType(),In->TowxString().c_str());
00084         MutInputDeviceShape * shape = (MutInputDeviceShape *) (In->getUserData());
00085         if (shape) {
00086                 DEBUGLOG2(routing,_T("Input device shape %p"),shape);
00087                 wxASSERT (shape->GetDevice() == In);
00088         } else {
00089                 DEBUGLOG2(routing,_T("No input device shape"));
00090         }
00091         for (Route * route = In->GetRoutes();route;route = route->GetNext())
00092                 CheckRoute(route, shape);
00093 }
00094 
00095 void DebugCheckRoutes() {
00096         for (InDevice *In = InDevice::GetDeviceList(); In; In = In->GetNext())
00097                 CheckInputDevice(In);
00098 }
00099 #endif
00100 

Erzeugt am Sun Aug 21 2011 10:51:55 für Mutabor von doxygen 1.7.4