private void parseDevice(String fileName) {
    if (mCurPath.equals(mRoot) == false) mCurPath = mRoot;
    constructCurPath(fileName, true);
    DLNADevice device = mNameDeviceTable.get(fileName);
    if ((device.getType() != DLNADeviceType.DigitalMediaServer)
        && (device.getType() != DLNADeviceType.MobileDigitalMediaServer)) return;
    DLNATempFile fileins = new DLNATempFile(device);
    mTraceFile.push(fileins);
    mListContentName.clear();

    // mNameContentTable.clear();
    server = (MediaServer) device;
    server.setActionEventListener(mDLNAManager);

    if (localLOGV) NetLog.v(TAG, "start 1 browse : " + System.currentTimeMillis());

    REQUEST_MATCH_NUM = 0;
    currentID = MediaServer.OBJECT_ID;
    mBrowseHandle =
        server.browse(
            MediaServer.OBJECT_ID,
            MediaServer.BrowseFlag.BrowseDirectChildren,
            REQUEST_MATCH_NUM,
            BROWSE_REQUEST,
            MediaServer.FILTER_BASIC_INFO,
            MediaServer.SORT_ASCENDING_CRITERIA_TITLE);

    if (localLOGV) NetLog.v(TAG, "end 1 browse : " + System.currentTimeMillis());
    return;
  }
  private void parseContent(String fileName) throws Exception {
    int contentType = checkContent(fileName);
    Content content = null;
    if (contentType == CONTENT_UNKNOW) {
      if (localLOGV) NetLog.d(TAG, "Invalid parsing file name: " + fileName);
      throw new Exception();
    } else if (contentType == CONTENT_CHILD) {
      constructCurPath(fileName, true);
      content = mNameContentTable.get(fileName);
      DLNATempFile fileins = new DLNATempFile(content);
      mTraceFile.push(fileins);
    } else {
      content = mTraceFile.peek().getContent();
    }

    mListContentName.clear();

    // mNameContentTable.clear();
    server = content.getServer();
    server.setActionEventListener(mDLNAManager);

    if (localLOGV) NetLog.v(TAG, "start 2 browse : " + System.currentTimeMillis());

    REQUEST_MATCH_NUM = 0;
    currentID = content.getObjectId();
    mBrowseHandle =
        server.browse(
            content.getObjectId(),
            MediaServer.BrowseFlag.BrowseDirectChildren,
            REQUEST_MATCH_NUM,
            BROWSE_REQUEST,
            MediaServer.FILTER_BASIC_INFO,
            MediaServer.SORT_ASCENDING_CRITERIA_TITLE);

    if (localLOGV) NetLog.v(TAG, "end 2 browse : " + System.currentTimeMillis());
    return;
  }