ইনপুট ডিভাইস কনফিগারেশন ফাইল

ইনপুট ডিভাইস কনফিগারেশন ফাইল ( .idc ফাইল) ডিভাইস-নির্দিষ্ট কনফিগারেশন বৈশিষ্ট্য ধারণ করে যা ইনপুট ডিভাইসের আচরণকে প্রভাবিত করে।

ইনপুট ডিভাইস কনফিগারেশন ফাইলগুলি সাধারণত HID কীবোর্ড এবং মাউসের মতো স্ট্যান্ডার্ড পেরিফেরালগুলির জন্য প্রয়োজনীয় নয় কারণ ডিফল্ট সিস্টেম আচরণ সাধারণত নিশ্চিত করে যে তারা বাক্সের বাইরে কাজ করবে। অন্যদিকে, বিল্ট-ইন এমবেডেড ডিভাইস, বিশেষ করে টাচ স্ক্রিন, প্রায় সবসময়ই তাদের আচরণ নির্দিষ্ট করার জন্য ইনপুট ডিভাইস কনফিগারেশন ফাইলের প্রয়োজন হয়।

যুক্তি

অ্যান্ড্রয়েড স্বয়ংক্রিয়ভাবে বেশিরভাগ ইনপুট ডিভাইসের ক্ষমতা সনাক্ত করে এবং কনফিগার করে ইভেন্টের ধরন এবং বৈশিষ্ট্যের উপর ভিত্তি করে যা সংশ্লিষ্ট Linux কার্নেল ইনপুট ডিভাইস ড্রাইভার দ্বারা রিপোর্ট করা হয়।

উদাহরণস্বরূপ, যদি একটি ইনপুট ডিভাইস EV_REL ইভেন্ট টাইপ সমর্থন করে এবং কোডগুলি REL_X এবং REL_Y পাশাপাশি EV_KEY ইভেন্ট টাইপ এবং BTN_MOUSE , তাহলে Android ইনপুট ডিভাইসটিকে মাউস হিসাবে শ্রেণীবদ্ধ করবে৷ একটি মাউসের জন্য ডিফল্ট আচরণ হল একটি অন-স্ক্রীন কার্সার উপস্থাপন করা যা মাউসের গতিবিধি ট্র্যাক করে এবং মাউস ক্লিক করার সময় স্পর্শ অনুকরণ করে। যদিও মাউস ভিন্নভাবে কনফিগার করা যেতে পারে, ডিফল্ট আচরণ সাধারণত স্ট্যান্ডার্ড মাউস পেরিফেরালের জন্য যথেষ্ট।

ইনপুট ডিভাইসের কিছু শ্রেণী আরো অস্পষ্ট। উদাহরণ স্বরূপ, মাল্টি-টাচ টাচ স্ক্রিন এবং টাচ প্যাড উভয়ই EV_ABS ইভেন্টের ধরন এবং ABS_MT_POSITION_X এবং ABS_MT_POSITION_Y কোডগুলিকে সর্বনিম্ন সমর্থন করে৷ যাইহোক, এই ডিভাইসগুলির উদ্দেশ্যমূলক ব্যবহারগুলি বেশ ভিন্ন এবং সর্বদা স্বয়ংক্রিয়ভাবে নির্ধারণ করা যায় না। এছাড়াও, স্পর্শ ডিভাইস দ্বারা রিপোর্ট করা চাপ এবং আকারের তথ্য বোঝার জন্য অতিরিক্ত তথ্যের প্রয়োজন। তাই টাচ ডিভাইস, বিশেষ করে বিল্ট-ইন টাচ স্ক্রীনে সাধারণত IDC ফাইলের প্রয়োজন হয়।

অবস্থান

ইনপুট ডিভাইস কনফিগারেশন ফাইলগুলি USB বিক্রেতা, পণ্য (এবং ঐচ্ছিকভাবে সংস্করণ) আইডি বা ইনপুট ডিভাইসের নাম দ্বারা অবস্থিত।

নিম্নলিখিত পাথ ক্রমানুসারে পরামর্শ করা হয়.

  • /odm/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX_Version_XXXX.idc
  • /odm/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /vendor/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /system/usr/idc/Vendor_XXXX_Product_XXXX.idc
  • /data/system/devices/idc/Vendor_XXXX_Product_XXXX.idc
  • /odm/usr/idc/ device-name .idc
  • /vendor/usr/idc/ device-name .idc
  • /system/usr/idc/ device-name .idc
  • /data/system/devices/idc/ device-name .idc

ডিভাইসের নাম ধারণ করে এমন একটি ফাইল পাথ তৈরি করার সময়, '0'-'9', 'a'-'z', 'A'-'Z', '-' বা '_' ছাড়া ডিভাইসের নামের সমস্ত অক্ষর '_' দ্বারা প্রতিস্থাপিত হয়।

বাক্য গঠন

একটি ইনপুট ডিভাইস কনফিগারেশন ফাইল হল একটি প্লেইন টেক্সট ফাইল যাতে সম্পত্তি অ্যাসাইনমেন্ট এবং মন্তব্য থাকে।

বৈশিষ্ট্য

প্রপার্টি অ্যাসাইনমেন্ট প্রতিটিতে একটি সম্পত্তির নাম, একটি = , একটি সম্পত্তি মান এবং একটি নতুন লাইন থাকে। এটার মত:

property = value

সম্পত্তির নামগুলি অ-খালি আক্ষরিক পাঠ শনাক্তকারী। তারা সাদা স্থান ধারণ করা উচিত নয়. ইনপুট সিস্টেমের প্রতিটি উপাদান বৈশিষ্ট্যগুলির একটি সেট সংজ্ঞায়িত করে যা এর ফাংশন কনফিগার করতে ব্যবহৃত হয়।

সম্পত্তির মান হল অ-খালি স্ট্রিং লিটারেল, পূর্ণসংখ্যা বা ফ্লোটিং পয়েন্ট সংখ্যা। তাদের অবশ্যই হোয়াইটস্পেস বা সংরক্ষিত অক্ষর \ বা " থাকা উচিত নয়।

সম্পত্তির নাম এবং মানগুলি কেস-সংবেদনশীল৷

মন্তব্য

মন্তব্য লাইন '#' দিয়ে শুরু হয় এবং লাইনের শেষ পর্যন্ত চলতে থাকে। এটার মত:

# A comment!

ফাঁকা লাইন উপেক্ষা করা হয়.

উদাহরণ

# This is an example of an input device configuration file.
# It might be used to describe the characteristics of a built-in touch screen.

# This is an internal device, not an external peripheral attached to the USB
# or Bluetooth bus.
device.internal = 1

# The device should behave as a touch screen, which uses the same orientation
# as the built-in display.
touch.deviceType = touchScreen
touch.orientationAware = 1

# Additional calibration properties...
# etc...

সাধারণ বৈশিষ্ট্য

নিম্নলিখিত বৈশিষ্ট্য সব ইনপুট ডিভাইস ক্লাস সাধারণ.

প্রতিটি ক্লাস দ্বারা ব্যবহৃত বিশেষ বৈশিষ্ট্য সম্পর্কে তথ্যের জন্য প্রতিটি ইনপুট ডিভাইস ক্লাসের ডকুমেন্টেশন পড়ুন।

device.internal

সংজ্ঞা: device.internal = 0 | 1

বাহ্যিকভাবে সংযুক্ত (সম্ভবত অপসারণযোগ্য) পেরিফেরালের বিপরীতে ইনপুট ডিভাইসটি একটি অভ্যন্তরীণ অন্তর্নির্মিত উপাদান কিনা তা নির্দিষ্ট করে।

  • মান 0 হলে, ডিভাইসটি বাহ্যিক।

  • মান 1 হলে, ডিভাইসটি অভ্যন্তরীণ।

  • যদি মান নির্দিষ্ট করা না থাকে, তাহলে USB (BUS_USB) বা ব্লুটুথ (BUS_BLUETOOTH) বাসের সমস্ত ডিভাইসের জন্য ডিফল্ট মান 0 , অন্যথায় 1

এই সম্পত্তি জেগে ওঠা ইভেন্ট সংক্রান্ত ডিফল্ট নীতি সিদ্ধান্ত নির্ধারণ করে।

অভ্যন্তরীণ ইনপুট ডিভাইসগুলি সাধারণত কী লেআউট ফাইলে বা একটি হার্ডকোডেড নীতি নিয়মে এটি করার জন্য স্পষ্টভাবে কনফিগার না করা পর্যন্ত ডিসপ্লেকে ঘুম থেকে জাগিয়ে তোলে না। এই পার্থক্যটি আপনার পকেটে থাকা অবস্থায় আপনার ফোনকে জাগিয়ে তোলা থেকে কী টিপে এবং স্পর্শকে বাধা দেয়। সাধারণত অল্প সংখ্যক ওয়েক কী সংজ্ঞায়িত করা হয়।

বিপরীতভাবে, বাহ্যিক ইনপুট ডিভাইসগুলি সাধারণত ডিভাইসটিকে আরও আক্রমনাত্মকভাবে জাগিয়ে তোলে কারণ পরিবহনের সময় সেগুলি বন্ধ বা প্লাগ ইন করা হয়নি বলে ধরে নেওয়া হয়। উদাহরণস্বরূপ, একটি বাহ্যিক কীবোর্ডে যেকোনো কী টিপলে এটি একটি ভাল সূচক যে ব্যবহারকারী ডিভাইসটি জেগে উঠুক এবং প্রতিক্রিয়া জানাতে চায়।

সমস্ত অভ্যন্তরীণ ইনপুট ডিভাইসের জন্য device.internal সম্পত্তির মান সঠিকভাবে সেট করা হয়েছে তা নিশ্চিত করা গুরুত্বপূর্ণ।

বৈধতা

নিশ্চিত করুন আপনার ইনপুট ডিভাইস কনফিগারেশন ফাইল বৈধতা কীম্যাপ টুল ব্যবহার করে।