/**
 * Gets data information from the data file.
 *
 * @param file &$_fiftyone_degrees_data_file
 *   The data file.
 *
 * @return array
 *   Returns data information.
 */
function fiftyone_degrees_get_data_info(&$_fiftyone_degrees_data_file)
{
    $info = array();
    $info['major_version'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['minor_version'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['build_version'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['revision_version'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['version'] = "{$info['major_version']}.{$info['minor_version']}.{$info['build_version']}.{$info['revision_version']}";
    $info['licence_id'] = array();
    for ($i = 0; $i < 16; $i++) {
        $info['licence_id'][] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    }
    $info['copyright_offset'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['age'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['min_ua_count'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['data_set_name_offset'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['format_version_offset'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['published_year'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['published_month'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['published_day'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['next_update_year'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['next_update_month'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['next_update_day'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['device_combinations'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['max_ua_length'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['min_ua_length'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['lowest_character'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['highest_character'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
    $info['max_signatures'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['signature_profiles_count'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['signature_nodes_count'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['max_values_count'] = fiftyone_degrees_read_short($_fiftyone_degrees_data_file);
    $info['max_csv_length'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['max_json_length'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['max_xml_length'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    $info['max_signatures_closest'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
    return $info;
}
Пример #2
0
function fiftyone_degrees_gallery_get_profiles(&$offset, $limit, $hardware_value_id, $headers)
{
    $end_offset = $headers['profile_length'];
    $profiles = array();
    while ($offset < $end_offset) {
        $_fiftyone_degrees_data_file = fiftyone_degrees_get_data_file($offset + $headers['profile_offset']);
        $profile = array();
        $profile['component_id'] = fiftyone_degrees_read_byte($_fiftyone_degrees_data_file);
        $profile['unique_id'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
        $profile['profile_value_count'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
        $profile['signature_count'] = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
        if ($profile['component_id'] == 0) {
            $_fiftyone_degrees_data_file = fiftyone_degrees_get_data_file($offset + 1 + 4 + 4 + 4 + 4 * 6 + $headers['profile_offset']);
            $profile_hardware_value_id = fiftyone_degrees_read_int($_fiftyone_degrees_data_file);
            if ($profile_hardware_value_id == $hardware_value_id) {
                $profile = fiftyone_degrees_read_profile($offset, $headers);
                //if (in_array($hardware_value_id,  $profile['profile_values'])) {
                $profiles[] = $profile;
                //var_dump($profile['profile_values']);
                if (count($profiles) >= $limit) {
                    break;
                }
                //}
            }
        }
        $offset += 1 + 4 + 4 + 4 + $profile['profile_value_count'] * 4 + 4 * $profile['signature_count'];
    }
    return $profiles;
}