Files
ptouch_label/src/lib/libptouch_internal.h
knb d683bf983a internalヘッダに関数説明コメントを追加
libptouch_internal.h の内部関数宣言に用途と戻り値の簡潔な説明を付け、実装読解時の確認コストを下げる。

Made-with: Cursor
2026-04-16 13:54:36 +09:00

44 lines
1.6 KiB
C

/*
* libptouch — internal declarations (not installed)
*
* Author: knb
* Email: knb@artif.org
*/
#ifndef LIBPTOUCH_INTERNAL_H
#define LIBPTOUCH_INTERNAL_H
#include "libptouch.h"
#include <libusb.h>
#include <stddef.h>
struct libptouch_ctx {
libptouch_err_t last_code;
char last_msg[256];
int usb_open;
struct libusb_context *usb_ctx;
struct libusb_device_handle *usb_handle;
int claimed_interface; /* -1 if none */
uint8_t bulk_out_ep;
uint8_t bulk_in_ep;
uint16_t usb_pid; /* 0 if USB not open; used to pick 128- vs 560-dot raster */
};
/* ctx に最終エラー(コードとメッセージ)を記録する。公開 API のエラー返却前に使う。 */
void ptouch_set_error(libptouch_ctx *ctx, libptouch_err_t code, const char *msg);
/* libusb のエラー番号を人が読めるメッセージにして ptouch_set_error に渡す。 */
void ptouch_set_error_usb(libptouch_ctx *ctx, int libusb_err, const char *what);
/* bulk OUT 転送。成功時 0、失敗時 libusb の負のエラーコード。 */
int ptouch_bulk_out(libusb_device_handle *h, uint8_t ep, const uint8_t *data,
int len, unsigned int timeout_ms);
/* bulk IN で len バイトを揃えるまで読む。成功時 0、失敗時 libusb の負のエラーコード。 */
int ptouch_bulk_in_exact(libusb_device_handle *h, uint8_t ep, uint8_t *buf,
int len, unsigned int timeout_ms);
/* ctx の bulk OUT エンドポイントへ buf を送る。印刷ジョブのチャンク送信用。 */
libptouch_err_t ptouch_bulk_send_job(libptouch_ctx *ctx, const uint8_t *buf,
size_t len, const char *what);
#endif /* LIBPTOUCH_INTERNAL_H */