/**
   * Call back function, implement for com.mediatek.dlna.jar. Application should not use this API.
   *
   * @return.
   */
  public void notifyDeviceFound(FoundDeviceEvent event) {
    if (localLOGV) NetLog.d(TAG, "notifyDeviceFound");
    DLNADevice device = event.getDevice();
    String name = device.getName();

    DLNAFile devicefile = new DLNAFile(device, mRoot, mRoot);

    if (localLOGV) NetLog.d(TAG, "add device to device list");
    mListDLNADeviceName.add(devicefile);

    mNameDeviceTable.put(name, device);
    if (listener != null) {
      listener.onFileFound(new FileEvent(event, mListDLNADeviceName));
    }
  }
  /**
   * Call back function, implement for com.mediatek.dlna.jar. Application should not use this API.
   *
   * @return.
   */
  public void notifyContentSuccessful(NormalContentEvent event) {

    if (localLOGV) NetLog.v(TAG, " notifyContentSuccessful : " + System.currentTimeMillis());

    if (event == null) {
      if (listener != null) {
        listener.onFileFound(new FileEvent(event, mListContentName));
      }
      return;
    }
    if (event.getTotalMatches() <= 0) {
      if (listener != null) {
        listener.onFileFound(new FileEvent(event, mListContentName));
      }
      return;
    }
    int listnum = event.getList().size();
    if (localLOGV)
      NetLog.v(TAG, " Last index is : " + REQUEST_MATCH_NUM + ", List num is: " + listnum);

    if (listnum <= 0) {
      if (localLOGV) NetLog.v(TAG, " List num is 0, return!");
      if (listener != null) {
        listener.onFileFound(new FileEvent(event, mListContentName));
      }
      return;
    }

    REQUEST_MATCH_NUM = REQUEST_MATCH_NUM + listnum;
    ArrayList<Content> items = event.getList();
    for (int i = 0; i < items.size(); i++) {
      Content cnt = items.get(i);
      String parent = null;
      String cname = cnt.getTitle();
      String tempParent = mCurPath;

      int index = tempParent.lastIndexOf("/");
      if (index == 0) {
        parent = mCurPath.substring(1, mCurPath.length());
      } else {
        parent = mCurPath.substring(index + 1, mCurPath.length());
      }

      StringBuffer pathBuf = new StringBuffer();
      pathBuf.append(mCurPath).append('/').append(cname);

      DLNAFile contentfile = new DLNAFile(cnt, pathBuf.toString(), parent);

      mListContentName.add(contentfile);

      mNameContentTable.put(cname, cnt);
    }
    // LinkedList<DLNAFile> cntList = new LinkedList<DLNAFile>();
    // int size = mNameContentTable.size();
    // for (int i = 0; i < size; i++)
    // cntList.add(mNameContentTable.get(mListContentName.get(i)));
    if (listener != null) {
      listener.onFileFound(new FileEvent(event, mListContentName));
    }

    if (localLOGV) NetLog.v(TAG, " notifyContentSuccessful end : " + System.currentTimeMillis());

    int total = event.getTotalMatches();
    mTotalNum = total;
    if (localLOGV)
      NetLog.v(TAG, " Current index is : " + REQUEST_MATCH_NUM + ", Total is: " + total);
    if (REQUEST_MATCH_NUM < total) {
      mBrowseHandle =
          server.browse(
              currentID,
              MediaServer.BrowseFlag.BrowseDirectChildren,
              REQUEST_MATCH_NUM,
              BROWSE_REQUEST,
              MediaServer.FILTER_BASIC_INFO,
              MediaServer.SORT_ASCENDING_CRITERIA_TITLE);
    }
  }
 private void notifyDirect() {
   FoundDeviceEvent event = null;
   if (listener != null) {
     listener.onFileFound(new FileEvent(event, mListDLNADeviceName));
   }
 }