void Control::SetParent(Control *newParent) { HwndWrapper *prevRoot = NULL; if (parent) prevRoot = GetRootHwndWnd(parent); HwndWrapper *newRoot = GetRootHwndWnd(newParent); CrashIf(!newRoot); parent = newParent; if (prevRoot) UnRegisterEventHandlers(prevRoot->evtMgr); RegisterEventHandlers(newRoot->evtMgr); }
int main(int argc, char* argv[]) { bool daemonize = true; bool useICY = false; char* ipaddr = NULL; int port = 0; char* config = NULL; char* playList = NULL; char* workingDir = NULL; char ch; bool preflight = false; bool checkMP3s = false; char* errorlog = NULL; // extern int optind; extern char* optarg; #ifdef __Win32__ // // Start Win32 DLLs WORD wsVersion = MAKEWORD(1, 1); WSADATA wsData; (void)::WSAStartup(wsVersion, &wsData); #endif OS::Initialize(); OSThread::Initialize(); OSMemory::SetMemoryError(ENOMEM); Socket::Initialize(); SocketUtils::Initialize(false); if (SocketUtils::GetNumIPAddrs() == 0) { qtss_printf("Network initialization failed. IP must be enabled to run MP3Broadcaster\n"); ::exit(0); } while ( (ch = getopt(argc,argv, "vdixXa:p:c:l:e:w:")) != EOF ) // opt: means requires option { switch(ch) { case 'v': ::version(); ::usage(); return 0; case 'd': daemonize = false; break; case 'i': useICY = true; break; case 'a': ipaddr = (char*)malloc(strlen(optarg)+1); strcpy(ipaddr, optarg); break; case 'p': port = atoi(optarg); break; case 'c': config = (char*)malloc(strlen(optarg)+1); strcpy(config, optarg); break; case 'l': playList = (char*)malloc(strlen(optarg)+1); strcpy(playList, optarg); break; case 'w': workingDir = (char*)malloc(strlen(optarg)+1); break; case 'x': preflight = true; daemonize = false; break; case 'X': preflight = true; daemonize = false; checkMP3s = true; break; case 'e': errorlog = (char*)malloc(strlen(optarg)+1); strcpy(errorlog, optarg); break; default: ::usage(); return 0; } } if (config == NULL) { qtss_printf("missing -c option\n"); ::usage(); return 0; } if (errorlog != NULL) { if (preflight) freopen(errorlog, "w", stdout); else freopen(errorlog, "a", stdout); ::setvbuf(stdout, (char *)NULL, _IONBF, 0); } gBroadcaster = new MP3Broadcaster(ipaddr, port, config, playList, workingDir, useICY); if (!gBroadcaster->IsValid()) { qtss_printf("Bad config--exiting\n"); qtss_printf("Warnings: 0\nErrors: 1\n"); return 0; } RegisterEventHandlers(); gBroadcaster->PreFlightOrBroadcast(preflight, daemonize, false, false, checkMP3s, errorlog); return 0; }