প্রকল্প সম্পর্কে

এই প্রকল্পটি হানওয়াং PV60 (Ai Pointer) ভয়েস পেনকে একটি প্রেজেন্টেশন পেজ-টার্নার থেকে ইনপুট ডিভাইসে রূপান্তরিত করে। ডিভাইসটির প্রকৃত নির্মাতা শেনজেন শুয়াংহোউ টেকনোলজি (dosmono), হানওয়াং হলো OEM লেবেল। প্রধান ফাংশন: ছোট প্রেসে আপ/ডাউন কী দিয়ে পেজ পরিবর্তন বা স্ক্রল; লং-প্রেস আপ কী = এন্টার, লং-প্রেস ডাউন কী = ব্যাকস্পেস; একবার ভয়েস কী চাপলে মাইক্রোফোন চালু হয় এবং ইনপুট মেথড ভয়েস হটকি (ডান Alt) ট্রিগার হয়, আবার চাপলে শেষ হয়; ভয়েস কী ধরে রাখলে এয়ার মাউস মোডে প্রবেশ করে (জাইরোস্কোপ দিয়ে কার্সর নিয়ন্ত্রণ); ট্রে-তে ব্যাটারি শতাংশ, সংযোগ অবস্থা ও ইন্টারসেপশন পদ্ধতি দেখায়। হার্ডওয়্যারটি একটি USB কম্পোজিট ডিভাইস (VID_0611 / PID_3001), যাতে রয়েছে USB Audio মাইক্রোফোন, HID কীবোর্ড, HID মাউস এবং ভেন্ডর পেজ 0xFF00-এর ৩৩-বাইট ট্রান্সসিভ চ্যানেল। সব কী ও কনফিগারেশন ভেন্ডর পেজের মাধ্যমে যায়। ডকুমেন্টেশনে কী কোড ও ব্যাটারি রিপোর্ট ফরম্যাট (মিলিভোল্ট লিটল-এন্ডিয়ান, অফিসিয়াল শতাংশ সূত্র) লিপিবদ্ধ আছে এবং উল্লেখ করা হয়েছে যে পেনটি শুধুমাত্র জাগ্রত অবস্থায় প্রতি ১০ সেকেন্ডে একবার ব্যাটারি রিপোর্ট করে। বাস্তবায়ন নির্ভর করে Interception কীবোর্ড ফিল্টার ড্রাইভারের উপর, যাতে পেনের কীগুলো পরিষ্কারভাবে ইন্টারসেপ্ট করা যায়। README-তে স্পষ্ট সতর্কতা রয়েছে যে এই ড্রাইভারটি অনলাইন গেমের অ্যান্টি-চিট সিস্টেম (ACE, Vanguard, VAC/EAC/BattlEye ইত্যাদি) দ্বারা সন্দেহজনক হিসেবে চিহ্নিত হতে পারে; গেম খেলার আগে ড্রাইভার আনইনস্টল করে রিবুট করার পরামর্শ দেওয়া হয়েছে। আনইনস্টলের পর প্রোগ্রামটি নিম্ন-স্তরের কীবোর্ড হুক ডিগ্রেডেড মোডে ফিরে যায়; ফাংশন কাজ করলেও লং-প্রেসে অক্ষর লিক হয়ে যায়। README-তে আরও কিছু পরীক্ষামূলক সিদ্ধান্ত লিপিবদ্ধ আছে: লং-প্রেস আচরণ ফার্মওয়্যার ম্যাক্রো দ্বারা দখলকৃত, ইউজার-মোড হুক দিয়ে পরিষ্কারভাবে ইন্টারসেপ্ট করা যায় না; ভেন্ডর DLL (kwma_x64.dll) প্রসেস হিপ নষ্ট করে, তাই আলাদা চাইল্ড প্রসেসে আইসোলেট করে মনিটরিং রিস্টার্ট প্রয়োজন; SDK স্লিপিং পেনের জন্য মিথ্যা সাফল্য রিপোর্ট করে, তাই কমান্ড পুনঃপ্রেরণ এবং রিড-অনলি রিকোয়েস্ট দিয়ে সক্রিয়তা যাচাই করতে হয়; কিছু ইনপুট মেথড ইনজেকশন ফ্ল্যাগযুক্ত SendInput ইভেন্ট উপেক্ষা করে, তাই ড্রাইভার স্তরে কী পাঠাতে হয় এবং ভার্চুয়াল কী থেকে স্ক্যান কোডে রূপান্তরে MAPVK_VK_TO_VSC_EX ব্যবহার করতে হয়; ফার্মওয়্যার ম্যাক্রো কনফিগারেশনের মাধ্যমে পরিবর্তন করা যায় না এবং কনফিগারেশন রাইট ভোলাটাইল। রিপোজিটরিতে রয়েছে মূল প্রোগ্রাম, অডিও হোস্ট চাইল্ড প্রসেস, একাধিক রিভার্স-ইঞ্জিনিয়ারিং টুল (প্যাকেট ক্যাপচার, A/B তুলনা, কমান্ড এনুমারেশন, সক্রিয়তা স্ট্রেস টেস্ট ইত্যাদি) এবং ডিজাইন ডকুমেন্ট। বিল্ডের জন্য .NET 8 SDK প্রয়োজন, সেলফ-কন্টেইনড সিঙ্গেল ফাইল হিসেবে পাবলিশ করা যায়। থার্ড-পার্টি কম্পোনেন্ট (ভেন্ডর DLL ও Interception) রিপোজিটরির সাথে বিতরণ করা হয় না, নিজে সংগ্রহ করতে হবে; ভেন্ডর DLL না থাকলে ভয়েস ফাংশন কাজ করবে না, বাকি ফাংশন স্বাভাবিক থাকবে। পাথ বর্তমানে D:\pen-hack\ হিসেবে হার্ডকোড করা, কনফিগারেশন সেভের পর হট-রিলোড হয়। লাইসেন্স GNU GPL v3, শুধুমাত্র নিজস্ব কোড কভার করে।