Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b5ee6809 authored by Alex Klyubin's avatar Alex Klyubin Committed by Gerrit Code Review
Browse files

Merge "Make users of MtpServer provide DeviceInfo fields"

parents 36a75eeb 792298f6
Loading
Loading
Loading
Loading
+13 −16
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

#include <android-base/properties.h>
#include <chrono>
#include <cutils/properties.h>
#include <dirent.h>
#include <errno.h>
#include <fcntl.h>
@@ -96,12 +95,20 @@ static const MtpEventCode kSupportedEventCodes[] = {
};

MtpServer::MtpServer(MtpDatabase* database, bool ptp,
                    int fileGroup, int filePerm, int directoryPerm)
                    int fileGroup, int filePerm, int directoryPerm,
                    const MtpString& deviceInfoManufacturer,
                    const MtpString& deviceInfoModel,
                    const MtpString& deviceInfoDeviceVersion,
                    const MtpString& deviceInfoSerialNumber)
    :   mDatabase(database),
        mPtp(ptp),
        mFileGroup(fileGroup),
        mFilePermission(filePerm),
        mDirectoryPermission(directoryPerm),
        mDeviceInfoManufacturer(deviceInfoManufacturer),
        mDeviceInfoModel(deviceInfoModel),
        mDeviceInfoDeviceVersion(deviceInfoDeviceVersion),
        mDeviceInfoSerialNumber(deviceInfoSerialNumber),
        mSessionID(0),
        mSessionOpen(false),
        mSendObjectHandle(kInvalidObjectHandle),
@@ -451,7 +458,6 @@ bool MtpServer::handleRequest() {

MtpResponseCode MtpServer::doGetDeviceInfo() {
    MtpStringBuffer   string;
    char prop_value[PROPERTY_VALUE_MAX];

    MtpObjectFormatList* playbackFormats = mDatabase->getSupportedPlaybackFormats();
    MtpObjectFormatList* captureFormats = mDatabase->getSupportedCaptureFormats();
@@ -483,19 +489,10 @@ MtpResponseCode MtpServer::doGetDeviceInfo() {
    mData.putAUInt16(captureFormats); // Capture Formats
    mData.putAUInt16(playbackFormats);  // Playback Formats

    property_get("ro.product.manufacturer", prop_value, "unknown manufacturer");
    string.set(prop_value);
    mData.putString(string);   // Manufacturer

    property_get("ro.product.model", prop_value, "MTP Device");
    string.set(prop_value);
    mData.putString(string);   // Model
    string.set("1.0");
    mData.putString(string);   // Device Version

    property_get("ro.serialno", prop_value, "????????");
    string.set(prop_value);
    mData.putString(string);   // Serial Number
    mData.putString(mDeviceInfoManufacturer); // Manufacturer
    mData.putString(mDeviceInfoModel); // Model
    mData.putString(mDeviceInfoDeviceVersion); // Device Version
    mData.putString(mDeviceInfoSerialNumber); // Serial Number

    delete playbackFormats;
    delete captureFormats;
+14 −1
Original line number Diff line number Diff line
@@ -49,6 +49,15 @@ private:
    int                 mFilePermission;
    int                 mDirectoryPermission;

    // Manufacturer to report in DeviceInfo
    MtpString           mDeviceInfoManufacturer;
    // Model to report in DeviceInfo
    MtpString           mDeviceInfoModel;
    // Device version to report in DeviceInfo
    MtpString           mDeviceInfoDeviceVersion;
    // Serial number to report in DeviceInfo
    MtpString           mDeviceInfoSerialNumber;

    // current session ID
    MtpSessionID        mSessionID;
    // true if we have an open session and mSessionID is valid
@@ -95,7 +104,11 @@ private:

public:
                        MtpServer(MtpDatabase* database, bool ptp,
                                    int fileGroup, int filePerm, int directoryPerm);
                                    int fileGroup, int filePerm, int directoryPerm,
                                    const MtpString& deviceInfoManufacturer,
                                    const MtpString& deviceInfoModel,
                                    const MtpString& deviceInfoDeviceVersion,
                                    const MtpString& deviceInfoSerialNumber);
    virtual             ~MtpServer();

    MtpStorage*         getStorage(MtpStorageID id);